Technologies utilisées. Article 3 : export.lua

Le script d’exportation de DCS est simple. Son travail consiste à envoyer des trames IP de type UDP vers l’hôte local, c’est à dire le PC du simulateur lui-même, sur le port UDP 10400, ici choisi.

Le code LUA ci-dessous, non commenté, permet l’envoi des informations du panneau du train d’atterrissage. Les éléments exportables DCS A-10C 653, 659, 660, 661et 737 sont donc considérés. On peut retrouver ces identifiants depuis cette liste.

Les trames envoyées sont formatées pour être écoutées, lues par le programme GetExportDCSA10C_win32.exe.

 

export.lua

host = "127.0.0.1"
 port = 10400
 NextTime = 0
function LuaExportStart()
package.path  = package.path..";.\\LuaSocket\\?.lua"
 package.cpath = package.cpath..";.\\LuaSocket\\?.dll"
socket = require("socket")
 c = socket.udp()
 c:setpeername(host, port)
 
end
function LuaExportAfterNextFrame()
local lArgument , lFormat , lArgumentValue
 local lDevice = GetDevice(0)
 local CurrentTime=LoGetModelTime();
lDevice:update_arguments()
 
if CurrentTime >= NextTime then
NextTime = CurrentTime + 0.25;
 -- GEAR
 --Flap level
 socket.try(c:send( string.format("653 3 %.4f\0", lDevice:get_argument_value(653) ) ) )
  --GEAR lights : NOSE , LEFT , RIGHT , WARNING
 socket.try(c:send( "659 1 "..lDevice:get_argument_value(659).."\0" ) )
 socket.try(c:send( "660 1 "..lDevice:get_argument_value(660).."\0" ) )
 socket.try(c:send( "661 1 "..lDevice:get_argument_value(661).."\0" ) )
 socket.try(c:send( "737 1 "..lDevice:get_argument_value(737).."\0" ) )
end
end
function LuaExportStop()
c:close()
end

Voir aussi :

Leave a Reply