jazzymanserg Posted March 2, 2017 Share Posted March 2, 2017 (edited) Собираю виртуальную кабину этого пупсика. Ни где в инете нет ни одной ветки. До этого собирал Су-25А. 40 кнопок одна ось 4 7 сегментника , ОЛЕД , 3 галетников, 40 светодиодов и 2 платы ардуино, (ни стандартный джой на 12 кн 3 оси и хатка)для получения данных использовал Експорт луа, SIOC и PITHON, для отправки данных о джойстике - PPJoy и pithon. Есть вариант с управлением тоже через луа Есть у кого то наработки по этой теме? Есть ли какие то ньюнсы в луа скриптах применительно к Мигу ? Пока что кнопки сделал через вирт джойстик но в планах все таки експорт. Я пока что там не нашел много команд из тех что нужно. Edited March 2, 2017 by jazzymanserg Link to comment Share on other sites More sharing options...
BR55Sevas Posted March 4, 2017 Share Posted March 4, 2017 (edited) Попробуйте почитать это и далее. https://forums.eagle.ru/showpost.php?p=567629&postcount=15 https://freemanru.wordpress.com/category/dcs-lua/ Естественно делайте поправку что многое поменялось. Скорее всего сейчас списки команд находятся в другом месте. Метод тыка наше всё. Edited March 4, 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 March 24, 2017 Author Share Posted March 24, 2017 (edited) Пишу вот такой текст: dofile(lfs.currentdir().."mods/aircraft/Mig-15bis/Cockpit/Scripts/devices.lua") dofile(lfs.currentdir().."mods/aircraft/Mig-15bis/Cockpit/Scripts/command_defs.lua") function LuaExportStart() end function LuaExportBeforeNextFrame() local pit = GetDevice(2) if pit then pit:performClickableAction(3071,1.0)--power ON end local pit = GetDevice(devices.ELEC_INTERFACE) if pit then pit:performClickableAction(electric_commands.Mig15_Command_BatterySw,1.0)--power ON end end function LuaExportAfterNextFrame() end function LuaExportStop() end function LuaExportActivityNextEvent(t) end Для теста написал - надо включить тумблер на старте. Ну и соответственно оно не включает. В чем ошибка не пойму. Вот отрывки из системных файлов ---clicable function default_2_position_tumb11(hint_, device_, command_, arg_) return { class = {class_type.TUMB,class_type.TUMB}, hint = hint_, device = device_, action = {command_,command_}, arg = {arg_,arg_}, arg_value = {2,-2}, arg_lim = {{-1,1},{-1,1}}, updatable = true, use_OBB = true } end -----------------------//////////////////////// --comman_defs count = start_command electric_commands = { Mig15_Command_BatterySw = counter(); Mig15_Command_GeneratorSw = counter(); [b] ---device.lua[/b] local count = 0 local function counter() count = count + 1 return count end -------DEVICE ID------- devices = {} -- moved forward for correct initialization of another devices -- do not changed following sequence for sim devices["FM_PROXY"] = counter() devices["ELEC_INTERFACE"] = counter() devices["CONTROL_INTERFACE"] = counter() devices["WEAPON_SYSTEM"] = counter() devices["STANDBY_COMPASS"] = counter() devices["KNEEBOARD"] = counter() devices["CLOCK"] = counter() de[/html] В логах ни каких ошибок Edited March 24, 2017 by jazzymanserg Link to comment Share on other sites More sharing options...
BR55Sevas Posted March 25, 2017 Share Posted March 25, 2017 У вас же циклически повторяется код в BeforeNextFrame переносите в LuaExportStart и пробуйте дальше. МиГ-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 March 25, 2017 Author Share Posted March 25, 2017 Даже если в цикле - я всего лишь включаю питание. Выключения там нет. Но я все же попробовал, результат такой - же. Такое впечатление что функции не работают как надо ? Link to comment Share on other sites More sharing options...
jazzymanserg Posted April 4, 2017 Author Share Posted April 4, 2017 Ошибка была в строке pit:performClickableAction(3071,1.0)--power ON Первый по счету элемент 3001, а не 3000 Link to comment Share on other sites More sharing options...
jazzymanserg Posted May 4, 2017 Author Share Posted May 4, 2017 (edited) Ну в общем, все мои скитания по поиску луа увенчались успехом ! Вот базовый текст dofile(lfs.currentdir().."mods/aircraft/MiG-15bis/Cockpit/Scripts/devices.lua") dofile(lfs.currentdir().."mods/aircraft/MiG-15bis/Cockpit/Scripts/command_defs.lua") function LuaExportStart() package.path = package.path..";.\\LuaSocket\\?.lua" package.cpath = package.cpath..";.\\LuaSocket\\?.dll" socket = require("socket") host = host or "localhost" port = port or 7777 c = socket.try(socket.connect(host, port)) c:setoption("tcp-nodelay",true) end function LuaExportBeforeNextFrame() GetDevice(2):performClickableAction(3001,1.0)--power ON end function LuaExportAfterNextFrame() local panel = GetDevice(0) if panel then panel:update_arguments() local AC_GEN_LAMP = panel:get_argument_value(57) socket.try(c:send(string.format())) end end function LuaExportStop() socket.try(c:send("quit")) -- to close the listener socket c:close() end function LuaExportActivityNextEvent(t) local tNext = t -- local o = LoGetWorldObjects() -- for k,v in pairs(o) do -- socket.try(c:send(string.format("t = %.2f, ID = %d, name = %s, country = %s(%s), LatLongAlt = (%f, %f, %f), heading = %f\n", t, k, v.Name, v.Country, v.Coalition, v.LatLongAlt.x, v.LatLongAlt.Long, v.LatLongAlt.Alt, v.Heading))) -- end -- tNext = tNext + 1.0 return tNext end НО! все это меркнет, по сравнению с проектом DCS-BIOS Качнул, разобрался, поспрашивал Ian (Это автор проекта) https://github.com/dcs-bios Спасибо ему большое, хороший человек ! У них там из советских только миг был написан. Оказалось очень простое решение Нужно только сделать модуль своего самолета на основе clickabledata.lua и mainpanel_init.lua Заняло время не мало - , и в основном время ушло на то, что б разобраться с технологией https://forums.eagle.ru/showthread.php?t=141095 В результате написан готовый модуль Mig-15Bis.Lua Качаешь ядро Качаешь библиотеки для ардуино Закидываешь новый модуль в папку с модулями и правишь 2 файла Aircraft.lua и BIOS.lua Запускаешь controll-referenc. Он сгенерит код для ардуино Ну и потом код для ардуино, просто копируется в среду. компилируется и заливается. Запукаем скрипт для Socat . Потом кто во что горазд клепаем к ардуино кнопки тумблеры энкодеры потенциометры русы руды стрелочники на сервомашинках или шаговиках, лампочки и т.д. На Мегу можно повесить до 70 -и тумблеров! Запускаем сим и вуаля полетели Моя реализация Кабины Миг-15 состоит не только из проекта DCS-BIOS, но,еще и из прямого ввода, то-есть делаем джой , подключаем по протоолу FMS PIC9600/ Делаем виртуальный джой и добавляем его в PPJOY, таким методом с одной ардуины можно выжать 16 осей и 8 кнопок или 24 кнопки или 32 кнопки(пр помощи механизма модификатора)). Преимущество такого метода в том, что можно использовать AutoHotKey, но кнопках джоя, ну и потенциометры легче делать (как по мне). Недостаток малая проводимость протокола Реализация той части что на DCS-BIOS в ардуино: 6 энкодеров 41 тумблер, 5 кнопок, один трехпозиционник (кран Шасси), 3 трехпозиционника с возвратом, так называемые, springload И одна Ардуино МЕГА Единственное, чего нет в модуле, так это осей, мне не понадобись, но если кто хочет может добавить из clickabledata.lua А в общем, в проекте еще не подключены стрелочники и табло радио-частот. Код ардуино и модуль Миг-15 в архиве Пользуйтесь, модифицируйте, спрашивайтеMiG-15bis.luadcs-arduino.zipdcs-arduino-lamps.zip Edited May 4, 2017 by jazzymanserg Link to comment Share on other sites More sharing options...
Recommended Posts