Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2014
157
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 5.32 KB | None | 0 0
  1.  
  2. local log_file = nil
  3. ImportedMIG21Data = {
  4.     [0]=50,     -- Engine RPM Left
  5.     [1]=670,    -- Engine RPM Right
  6.     [2]=9,      -- Gear Nose Up Light
  7.     [3]=12,     -- Gear Nose Down Light
  8.     [4]=10,     -- Gear Left Up Light
  9.     [5]=13,     -- Gear Left Down Light
  10.     [6]=11,     -- Gear Right Up Light
  11.     [7]=14,     -- Gear Right Down Light
  12.     [8]=417,    -- RSBN Distance  
  13.     [9]=548,    -- RSBN Azimut Korekcija Light
  14.     [10]=549,   -- RSBN Dalnos Korekcija Light
  15.     [11]=176,   -- RSBN Switch
  16.     [12]=355,   --RSBN Distance Hundreds
  17.     [13]=356,   --RSBN Distance Tens
  18.     [14]=357,   --RSBN Distance Singles
  19.     [15]=nil,   --Altitude above sea level
  20.     [16]=nil,   --Altitude above ground level
  21.     [17]=541,   --Canopy Warning Light
  22.     [18]=542,   --SORC
  23.     [19]=407,   --Warning lights check state
  24.     [20]=516,   --Marker Light
  25.     [21]=518,   --Stablisator_light
  26.     [22]=520,   --Check Gear Light
  27.     [23]=521,   --Flaps Light
  28.     [24]=522,   --Airbrake Light
  29.     [25]=523,   --Central Pylon Light
  30.     [26]=524,   --RATO L Light
  31.     [27]=525,   --RATO R Light
  32.     [28]=526,   --PYLON 1 ON Light
  33.     [29]=527,   --PYLON 2  ON Light
  34.     [30]=528,   --PYLON 3 ON Light
  35.     [31]=529,   --PYLON 4 ON Light
  36.     [32]=530,   --PYLON 1 OFF Light
  37.     [33]=531,   --PYLON 2 OFF Light
  38.     [34]=532,   --PYLON 3 OFF Light
  39.     [35]=533,   --PYLON 4 OFF Light
  40.     [36]=100,   --IAS Indicator
  41.     [37]=52,        --Fuel Meter
  42.     [38]=110,   --Accelerometer
  43.     [39]=113,   --Max_G
  44.     [40]=114    --Min G
  45.     }
  46. function LuaExportStart()
  47.     MainPanel = GetDevice(0) --Get local player aircraft
  48.     log_file = io.open("C:/Users/Ryan/Saved Games/DCS/Logs/Export.log", "w")
  49.  
  50.     -- 2) Socket
  51.     local lfs = require("lfs")
  52.  
  53.     programPath = lfs.realpath(lfs.currentdir())
  54.     package.path = programPath .. "LuaSocket\\?.lua;" .. package.path  
  55.     socket = require("socket")
  56.     host = "127.0.0.1"
  57.     port = 1625
  58.     c=socket.udp()
  59.     c:setsockname("*", 0)
  60.     c = socket.try(socket.connect(host, port)) -- connect to the listener socket
  61.     c:settimeout(.001)
  62.    
  63.    
  64.     local version = LoGetVersionInfo() --request current version info (as it showed by Windows Explorer for DCS.exe properties)
  65.        
  66.     --local myInfo = LoGetSelfData()
  67.     --gCurrentAircraft = myInfo.Name
  68.    
  69.     --socket.try(c:send(string.format("Flying the %", gCurrentAircraft)))
  70.  
  71.    
  72.     if version and log_file then
  73.         log_file:write("ProductName: "..version.ProductName..'\n')
  74.         log_file:write(string.format("FileVersion: %d.%d.%d.%d\n", version.FileVersion[1],version.FileVersion[2], version.FileVersion[3],version.FileVersion[4]))
  75.         log_file:write(string.format("ProductVersion: %d.%d.%d.%d\n", version.ProductVersion[1],version.ProductVersion[2],version.ProductVersion[3], version.ProductVersion[4]))
  76.     end
  77.  
  78. end
  79.  
  80. function LuaExportBeforeNextFrame()
  81. end
  82. function LuaExportAfterNextFrame()
  83. end
  84.  
  85. function LuaExportStop()
  86. -- 1) File
  87.     if log_file then
  88.         log_file:write("Closing log file.")
  89.         log_file:close()
  90.         log_file = nil
  91.     end
  92. end
  93.  
  94. function LuaExportActivityNextEvent(t)
  95.     local tNext = t
  96.     local para = nil
  97.     local tick = 0.2
  98.     para = update_aircraft_paremeters()
  99.     local data_to_send = string.format("%s %.2f %.2f %.2f %d %d %d %d %d %d %.2f %d %d %d %.2f %.2f %.2f %.2f %.2f %.2f",
  100.     "DCS-Client",
  101.     tick,
  102.     para["engine_rpm_left"],
  103.     para["engine_rpm_right"],
  104.     para["gear_nose_up_light"],
  105.     para["gear_nose_down_light"],
  106.     para["gear_left_up_light"],
  107.     para["gear_left_down_light"],
  108.     para["gear_right_up_light"],
  109.     para["gear_right_down_light"],
  110.     para["RSBN_distance_meter"]*1000,
  111.     para["RSBN_azimut_korekcija_LIGHT"],
  112.     para["RSBN_dalnost_korekcija_LIGHT"],
  113.     para["RSBN_switch"],
  114.     para["altitude_above_sea"],
  115.     para["altitude_above_ground"],
  116.     para["IAS_indicator"]*555.55 * 3.6,
  117.     para["FUEL_meter"] * 6000,
  118.     para["Accelerometer"] * 10,
  119.     para["MAX_G"] * 10)
  120.     socket.try(c:send(data_to_send))
  121.     tNext = tNext + tick -- data collected once every second / change this according to preference
  122. return tNext
  123. end
  124.  
  125. function update_aircraft_paremeters()
  126.     aircraft_parts = {
  127.     ["engine_rpm_left"] = MainPanel:get_argument_value(ImportedMIG21Data[0]) * 110,
  128.     ["engine_rpm_right"] = MainPanel:get_argument_value(ImportedMIG21Data[1]) * 110,
  129.     ["gear_nose_up_light"] = MainPanel:get_argument_value(ImportedMIG21Data[2]),
  130.     ["gear_nose_down_light"] = MainPanel:get_argument_value(ImportedMIG21Data[3]),
  131.     ["gear_left_up_light"] = MainPanel:get_argument_value(ImportedMIG21Data[4]),
  132.     ["gear_left_down_light"] = MainPanel:get_argument_value(ImportedMIG21Data[5]),
  133.     ["gear_right_up_light"] = MainPanel:get_argument_value(ImportedMIG21Data[6]),
  134.     ["gear_right_down_light"] = MainPanel:get_argument_value(ImportedMIG21Data[7]),
  135.     ["RSBN_distance_meter"] = MainPanel:get_argument_value(ImportedMIG21Data[12]) + MainPanel:get_argument_value(ImportedMIG21Data[13])/10 + MainPanel:get_argument_value(ImportedMIG21Data[14])/100,
  136.     ["RSBN_azimut_korekcija_LIGHT"] = MainPanel:get_argument_value(ImportedMIG21Data[9]),
  137.     ["RSBN_dalnost_korekcija_LIGHT"] = MainPanel:get_argument_value(ImportedMIG21Data[10]),
  138.     ["RSBN_switch"] = MainPanel:get_argument_value(ImportedMIG21Data[11]),
  139.     ["altitude_above_sea"] = LoGetAltitudeAboveSeaLevel(),
  140.     ["altitude_above_ground"] = LoGetAltitudeAboveGroundLevel(),
  141.     ["IAS_indicator"] = MainPanel:get_argument_value(ImportedMIG21Data[36]),
  142.     ["FUEL_meter"] = MainPanel:get_argument_value(ImportedMIG21Data[37]),
  143.     ["Accelerometer"] = MainPanel:get_argument_value(ImportedMIG21Data[38]),
  144.     ["MAX_G"] = MainPanel:get_argument_value(ImportedMIG21Data[39])
  145.     }
  146.     return aircraft_parts
  147. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement