Jump to content

Export.lua Mig-15BIS


Recommended Posts

Собираю виртуальную кабину этого пупсика. Ни где в инете нет ни одной ветки.

 

До этого собирал Су-25А. 40 кнопок одна ось 4 7 сегментника , ОЛЕД , 3 галетников, 40 светодиодов и 2 платы ардуино, (ни стандартный джой на 12 кн 3 оси и хатка)для получения данных использовал Експорт луа, SIOC и PITHON, для отправки данных о джойстике - PPJoy и pithon.

Есть вариант с управлением тоже через луа

 

Есть у кого то наработки по этой теме?

Есть ли какие то ньюнсы в луа скриптах применительно к Мигу ?

 

Пока что кнопки сделал через вирт джойстик но в планах все таки експорт. Я пока что там не нашел много команд из тех что нужно.


Edited by jazzymanserg
Link to comment
Share on other sites

Попробуйте почитать это и далее.

https://forums.eagle.ru/showpost.php?p=567629&postcount=15

https://freemanru.wordpress.com/category/dcs-lua/

 

Естественно делайте поправку что многое поменялось. Скорее всего сейчас списки команд находятся в другом месте.

Метод тыка наше всё.


Edited by BR=55=Sevas
Link to comment
Share on other sites

  • 3 weeks later...

Пишу вот такой текст:

 

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 by jazzymanserg
Link to comment
Share on other sites

У вас же циклически повторяется код в BeforeNextFrame

переносите в LuaExportStart и пробуйте дальше.

Link to comment
Share on other sites

Даже если в цикле - я всего лишь включаю питание. Выключения там нет.

Но я все же попробовал, результат такой - же.

Такое впечатление что функции не работают как надо ?

Link to comment
Share on other sites

  • 2 weeks later...
  • 5 weeks later...

Ну в общем, все мои скитания по поиску луа увенчались успехом !

Вот базовый текст

 

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.lua

dcs-arduino.zip

dcs-arduino-lamps.zip


Edited by jazzymanserg
Link to comment
Share on other sites

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...