jazzymanserg Posted March 2, 2017 Posted March 2, 2017 (edited) Собираю виртуальную кабину этого пупсика. Ни где в инете нет ни одной ветки. До этого собирал Су-25А. 40 кнопок одна ось 4 7 сегментника , ОЛЕД , 3 галетников, 40 светодиодов и 2 платы ардуино, (ни стандартный джой на 12 кн 3 оси и хатка)для получения данных использовал Експорт луа, SIOC и PITHON, для отправки данных о джойстике - PPJoy и pithon. Есть вариант с управлением тоже через луа Есть у кого то наработки по этой теме? Есть ли какие то ньюнсы в луа скриптах применительно к Мигу ? Пока что кнопки сделал через вирт джойстик но в планах все таки експорт. Я пока что там не нашел много команд из тех что нужно. Edited March 2, 2017 by jazzymanserg
BR55Sevas Posted March 4, 2017 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
jazzymanserg Posted March 24, 2017 Author 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
BR55Sevas Posted March 25, 2017 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
jazzymanserg Posted March 25, 2017 Author Posted March 25, 2017 Даже если в цикле - я всего лишь включаю питание. Выключения там нет. Но я все же попробовал, результат такой - же. Такое впечатление что функции не работают как надо ?
jazzymanserg Posted April 4, 2017 Author Posted April 4, 2017 Ошибка была в строке pit:performClickableAction(3071,1.0)--power ON Первый по счету элемент 3001, а не 3000
jazzymanserg Posted May 4, 2017 Author 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
Recommended Posts