Announcement

Collapse
No announcement yet.

Export.lua Mig-15BIS

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Export.lua Mig-15BIS

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

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

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

    Пока что кнопки сделал через вирт джойстик но в планах все таки експорт. Я пока что там не нашел много команд из тех что нужно.
    Last edited by jazzymanserg; 03-02-2017, 06:17 PM.

    #2
    Попробуйте почитать это и далее.
    https://forums.eagle.ru/showpost.php...9&postcount=15
    https://freemanru.wordpress.com/category/dcs-lua/

    Естественно делайте поправку что многое поменялось. Скорее всего сейчас списки команд находятся в другом месте.
    Метод тыка наше всё.
    Last edited by BR=55=Sevas; 03-04-2017, 11:06 AM.
    МиГ-29 Fly by wire СДУ
    Su-27SM second display panel
    DCS Mig-29 OVT/TVC mod playlist
    Пилотажный сервер с роботом | Aerobatic server with PhantomControl

    Comment


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

      HTML Code:
      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
      Для теста написал - надо включить тумблер на старте.
      Ну и соответственно оно не включает. В чем ошибка не пойму.
      Вот отрывки из системных файлов
      HTML Code:
      ---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]
      В логах ни каких ошибок
      Last edited by jazzymanserg; 03-24-2017, 01:19 AM.

      Comment


        #4
        У вас же циклически повторяется код в BeforeNextFrame
        переносите в LuaExportStart и пробуйте дальше.
        МиГ-29 Fly by wire СДУ
        Su-27SM second display panel
        DCS Mig-29 OVT/TVC mod playlist
        Пилотажный сервер с роботом | Aerobatic server with PhantomControl

        Comment


          #5
          Даже если в цикле - я всего лишь включаю питание. Выключения там нет.
          Но я все же попробовал, результат такой - же.
          Такое впечатление что функции не работают как надо ?

          Comment


            #6
            Ошибка была в строке pit:performClickableAction(3071,1.0)--power ON
            Первый по счету элемент 3001, а не 3000

            Comment


              #7
              Ну в общем, все мои скитания по поиску луа увенчались успехом !
              Вот базовый текст

              Code:
              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 в архиве
              Пользуйтесь, модифицируйте, спрашивайте
              Attached Files
              Last edited by jazzymanserg; 05-04-2017, 12:18 PM.

              Comment

              Working...
              X