Uragx Posted July 20, 2016 Share Posted July 20, 2016 ЙЕС. Заработало. Не сразу, с подвисанием, но заработало. Спасибо за помощь! Chopper pilots make History, man. Jetfighters - make movies... © Link to comment Share on other sites More sharing options...
Uragx Posted February 13, 2017 Share Posted February 13, 2017 Ещё вопрос. Вообще-то к Создателю, но может быть кто и так подскажет. Возможно ли воткнуть экран шквала в BSVP? и если да, то каким образом? Или, допустим, "своровать" скины приборов и воткнуть их в Гадрок Хелиос? Подчёркиваю - я ни разу не программер, посему разговаривайте как с очень тупым. Chopper pilots make History, man. Jetfighters - make movies... © Link to comment Share on other sites More sharing options...
jazzymanserg Posted February 20, 2017 Share Posted February 20, 2017 (edited) Кто то разбирался с принимающим сокетом ? А то во всех примерах только передающий. Ну то есть чтоб передать данные в локон через сокет ? пишу host = host or "localhost" port = port or 10604 socket = require("socket") local sck = socket.try(socket.bind(host, port)) и молчёк локон всё отработал но при попытке подкючиться по порту на это адрес соообщение 10061 сокет не существует Edited February 20, 2017 by jazzymanserg Link to comment Share on other sites More sharing options...
BR55Sevas Posted February 21, 2017 Share Posted February 21, 2017 Настройки на приём и на передачу одинаковы. Настройка function LuaExportStart() package.path = package.path..";.\\LuaSocket\\?.lua" package.cpath = package.cpath..";.\\LuaSocket\\?.dll" socket = require("socket") host = host or "localhost" port = port or 8080 Buran = socket.try(socket.connect(host,port)) Buran:setoption("tcp-nodelay",true) end прием DCSом комманд function LuaExportBeforeNextFrame() --получении управляющих комманд rs, err = Buran:receive('*l') if (rs ~= nil) then _, _, pitch, bank = string.find(rs, "(.+) (.+)") LoSetCommand(2001, pitch) LoSetCommand(2002, bank) end end МиГ-29 Fly by wire СДУ Su-27SM second display panel https://www.youtube.com/embed/videoseries?list=PL_2GGwNpWNp_fKXfRtDhIk8s5Jf4a9XHS http://berkuts.ru Пилотажный сервер с роботом | Aerobatic server with PhantomControl Link to comment Share on other sites More sharing options...
jazzymanserg Posted February 23, 2017 Share Posted February 23, 2017 (edited) Дружище - лажу по всем тема - пока результата 0 function LuaExportStart() package.path = package.path..";.\\LuaSocket\\?.lua" package.cpath = package.cpath..";.\\LuaSocket\\?.dll" socket = require("socket") host = host or "localhost" port = port or 8080 c = socket.try(socket.connect(host, port)) c:setoption("tcp-nodelay",true) end function LuaExportBeforeNextFrame() rs, err = с:receive('*l') if (rs ~= nil) then _, _, pitch, bank = string.find(rs, "(.+) (.+)") LoSetCommand(2001, pitch) LoSetCommand(2002, bank) end end У меня крафт Су-25А. при попытке соединения со скриптом в питоне import socket,select host = "localhost" port = 8080 ne = socket.socket() ne.connect((host, port)) ne.send(<комманда>) ne.close() получаю ответ что сокета не существует При этом когда запускаю сиок, то коннект с сиок проходит нормально. соеднение проходит Мне кажется что причина банальная Да , кстати, фаервол отключил Edited February 23, 2017 by jazzymanserg Link to comment Share on other sites More sharing options...
BR55Sevas Posted February 24, 2017 Share Posted February 24, 2017 (edited) Проверь каким-нибудь tcp терминалом, что связь с дкс точно есть. Я с питоном не знаком, но судя по всему проблема в нем на твоей стороне, т.к. экспорт этот работает 100%. Дкс является клиентом, чтобы с ним работать через экспорт твой софт должен быть сервером. Убедись, что твой питоновский скрипт создает tcp сервер. ps погуглил, судя из твоего кода local sck = socket.try(socket.bind(host, port)) ты как раз таки создаешь клиента, а надо сервер Это если я правильно понял тут Calling listen() puts the socket into server mode, and accept() waits for an incoming connection. https://pymotw.com/2/socket/tcp.html Edited February 24, 2017 by BR=55=Sevas МиГ-29 Fly by wire СДУ Su-27SM second display panel https://www.youtube.com/embed/videoseries?list=PL_2GGwNpWNp_fKXfRtDhIk8s5Jf4a9XHS http://berkuts.ru Пилотажный сервер с роботом | Aerobatic server with PhantomControl Link to comment Share on other sites More sharing options...
jazzymanserg Posted February 24, 2017 Share Posted February 24, 2017 ps погуглил, судя из твоего кода local sck = socket.try(socket.bind(host, port)) ты как раз таки создаешь клиента, а надо сервер огромное спасибо за направление мысли При оправки питоном строки "431=1", в СИОК переменная 431 выставляется в 1. Это я проверил. А дальше ЛУА должна прочитать данные методом receive(*l). Но ГС должен сначал в сиок послать запрос на нужныіе переменные. а потом обработать методом receive. И зачем тогда нужен СИОК ? если можнонапрямую в ГС Link to comment Share on other sites More sharing options...
BR55Sevas Posted February 24, 2017 Share Posted February 24, 2017 (edited) Не знаю что есть сиок. Чтобы программно убрать шассии я делаю так function LuaExportBeforeNextFrame() --получении управл¤ющих комманд rs, err = Buran:receive('*l') if (rs ~= nil) then _, _, pitch, bank, dCom = string.find(rs, "(.+) (.+) (.+)") pitch = tonumber(pitch) LoSetCommand(2001, pitch) LoSetCommand(2002, bank) dCom = tonumber(dCom) if dCom ~= -1 then LoSetCommand(dCom) end end Из моего сервера я шлю 3м параметром -1 когда ничего не надо делать, если же надо убрать шасси я однократно отправляю 68. список других комманд есть в exporte Edited February 24, 2017 by BR=55=Sevas МиГ-29 Fly by wire СДУ Su-27SM second display panel https://www.youtube.com/embed/videoseries?list=PL_2GGwNpWNp_fKXfRtDhIk8s5Jf4a9XHS http://berkuts.ru Пилотажный сервер с роботом | Aerobatic server with PhantomControl Link to comment Share on other sites More sharing options...
jazzymanserg Posted February 24, 2017 Share Posted February 24, 2017 (edited) А что за крафт у тебя ? И как полностью строк аекспорта выглядит - ну та \n \s \d ? В су 25 не кликабельнм Losetcommand содержит один параметр LoSetCommand(<command>) убрать шасси 431 Блииин - Севас - реальный чувак ! Таки да - дело было в серваке. его надо было поставить сначала на прослушку, а после коннекта слать И за сайт спасибо !https://pymotw.com Edited February 25, 2017 by jazzymanserg Link to comment Share on other sites More sharing options...
BR55Sevas Posted February 25, 2017 Share Posted February 25, 2017 Крафт - су-27. Строка обычная, через пробел символы-параметры и конец типа такого "1 1 1 1\n" МиГ-29 Fly by wire СДУ Su-27SM second display panel https://www.youtube.com/embed/videoseries?list=PL_2GGwNpWNp_fKXfRtDhIk8s5Jf4a9XHS http://berkuts.ru Пилотажный сервер с роботом | Aerobatic server with PhantomControl Link to comment Share on other sites More sharing options...
jazzymanserg Posted February 27, 2017 Share Posted February 27, 2017 Новый сюрприз. В чём ошибка ? В данном варианте работает, но нужно постоянно слать данные, или -1 или комманду. Если ни чего не слать то на методе с:receive('*l') ГС зависает. Если разорвать соединение с сокетом то опять работает А по идее, если я ни чего не шлю в сокет, то с:receive('*l') должен вернуть nil, а не ждать данных. может еще какой то секрет есть ? function LuaExportBeforeNextFrame() rs, err = с:receive('*l') if (rs ~= nil) then _, _, pitch, bank, dCom = string.find(rs, "(.+) (.+) (.+)") dCom = tonumber(dCom) if dCom ~= -1 then LoSetCommand(dCom) end end Link to comment Share on other sites More sharing options...
BR55Sevas Posted February 27, 2017 Share Posted February 27, 2017 Скорее всего тут ничего не поделать.особенность реализации. МиГ-29 Fly by wire СДУ Su-27SM second display panel https://www.youtube.com/embed/videoseries?list=PL_2GGwNpWNp_fKXfRtDhIk8s5Jf4a9XHS http://berkuts.ru Пилотажный сервер с роботом | Aerobatic server with PhantomControl Link to comment Share on other sites More sharing options...
USSR_Nic Posted November 24, 2017 Share Posted November 24, 2017 (edited) А почему нельзя к этому: c:setoption("tcp-nodelay",true) -- set immediate transmission mode добавить это: c:settimeout(.001) -- set the timeout for reading the socket Edited November 24, 2017 by USSR_Nic Выпитая водка не влияет на ТТХ истребителей!!! Слава ЕД!!! У меня есть АФМ к Су-33!!!!!! Link to comment Share on other sites More sharing options...
USSR_Nic Posted November 24, 2017 Share Posted November 24, 2017 Поробовал так. DCS не виснет. Команда посылаемые 1 раз работают. Данные постоянно слать не надо. Выпитая водка не влияет на ТТХ истребителей!!! Слава ЕД!!! У меня есть АФМ к Су-33!!!!!! Link to comment Share on other sites More sharing options...
Recommended Posts