Vous l'avez peut être déjà vue, je bosse en ce moment sur une application Android pour le Mirage 2000C, mais j'ai deux problèmes techniques qui commencent à m'user, du coup je fais appel à communauté pour savoir si vous pouvez m'aider.
Thread du projet : http://www.checksix-forums.com/viewtopi ... 5&t=197212
Problème N°1 : J'arrive à récupérer l'état de bouton du PCA/PPA, mais pas forcément la valeur à coté
Voici un extrait de ce que j'arrive à faire, récupérer l'était d'un switch (0 ou 1) et l'envoyer à mon application pour afficher le bouton sur l'appli' dans la bonne position.
Code : Tout sélectionner
function LuaExportAfterNextFrame()
local selfData = LoGetSelfData()
if selfData then
local MainPanel = GetDevice(0)
masterArm = math.floor(MainPanel:get_argument_value(234)) --J'arrive à lire l'état du masterArm
gearNow = math.floor(MainPanel:get_argument_value(404)) -- J'arrive à lire l'état de la manette du train
msgOut = HEAD_MSG..","..masterArm..","..gearNow.." \n" -- j'édite ma commande
c:sendto(msgOut, clientIP, ANDROID_PORT) -- je l'envoie à mon application mobile
end
end
Code : Tout sélectionner
log_file:write("\n")
log_file:write(MainPanel:get_argument_value(236))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(238))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(240))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(242))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(244))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(246))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(247))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(251))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(252))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(254))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(255))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(257))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(258))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(260))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(261))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(263))
log_file:write(",")
log_file:write(MainPanel:get_argument_value(264))
log_file:write("\n")
Du coup j'arrive bien à récupérer les états des boutons du PCA, mais je ne sais pas comment récupérer les valeurs des cadrans, vous avez une idée ?0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0
Problème N°2 : je n'arrive pas à envoyer des actions au PCA/PPA
Voici les fichiers d'où j'essaie d'extraire les commandes pour intéragir avec le PCA/PPA
..\DCS World\Mods\aircraft\M-2000C\Cockpit\clickabledata.lua
..\DCS World\Mods\aircraft\M-2000C\Cockpit\command_defs.lua
..\DCS World\Mods\aircraft\M-2000C\Cockpit\devices.lua
D'après ces fichiers, on devrait avoir ces codes pour intéragir avec les instruments :
Code : Tout sélectionner
start_command = 3000
device_commands =
{
...
--PCA/PPA
Button_234 = start_command + 234;
Button_235 = start_command + 235;
Button_237 = start_command + 237;
Button_239 = start_command + 239;
Button_241 = start_command + 241;
Button_243 = start_command + 243;
Button_245 = start_command + 245;
Button_247 = start_command + 247;
Button_248 = start_command + 248;
Button_249 = start_command + 249;
Button_250 = start_command + 250;
Button_253 = start_command + 253;
Button_256 = start_command + 256;
Button_259 = start_command + 259;
Button_262 = start_command + 262;
Button_265 = start_command + 265;
Button_266 = start_command + 266;
Button_269 = start_command + 269;
Button_272 = start_command + 272;
Button_275 = start_command + 275;
Button_276 = start_command + 276;
Button_277 = start_command + 277;
Button_278 = start_command + 278;
Button_279 = start_command + 279;
Button_409 = start_command + 409;
...
}
Code : Tout sélectionner
function LuaExportBeforeNextFrame()
data, ip, port = c:receivefrom()
if data then
log_file:write("---------------------------------------------------\n")
log_file:write("Received: ", data)
log_file:write("\n")
clientIP = ip
local dataArray = string.gmatch(data, '([^,]+)')
if dataArray(0)==HEAD_MSG then
LoSetCommand(dataArray(1))
end
end
end
Dans mes logs j'ai :
Mais lorsque j'envoie un code pour le PCA/PPA, je n'ai rien qui se passe... 235,3235,...---------------------------------------------------
Received: M2KCASS,283
Si jamais vous avez des pistes, je suis preneur
@ très vite
Asta