ce matin, après un bon café je me suis remis au travail, a force de debug et de bidouille, j'ai trouvé !
Et mieux encore : SANS modifier le lua de razbam, il suffit de mettre un peu d'intelligence dans notre propre M2000C.lua !
Je vous libre ici les 6 fonctions qui me permette de récupérer :
- Ce qui s'affiche en haut à droite en lieu et place de la latitude (8 caractère forcement)
- Ce qui s'affiche en haut à gauche en lieu et place de la longitude (9 caractère forcement)
- Le +/-/N/S, dans mon utilisation je dois les afficher sur le même digit, donc j'ai réduit à un seul caractère et c'est une étoile qui s'affiche quand ils s'affiche tous
- Le +/-/E/W, dans mon utilisation je dois les afficher sur le même digit, donc j'ai réduit à un seul caractère et c'est une étoile qui s'affiche quand ils s'affiche tous
- Le numero du PREP, qu'on soit en édition ou non
- Le numero du DEST, qu'on soit en édition ou non
Au passage certaine de ces fonctions ont été bidouillé pour consommer un minimum de ressource mémoire et de temps de calcul. C'est peut être anodin, mais si on fait attention à ca, on peut s'éviter quelque lag plus tard.
Je vous laisse faire ce qui va bien dans les defineString ensuite
Code : Tout sélectionner
local function getPCNDispL()
local li = list_indication(10)
--if li == "" then return nil end
local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n")
while true do
local name, value = m()
if not name then break end
if name:sub(0,10) == "text_PCN_L"
then
value = " "..value
return value:sub(-8)
end
end
return " "
end
local function getPCNDispR()
local li = list_indication(10)
--if li == "" then return nil end
local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n")
while true do
local name, value = m()
if not name then break end
if name:sub(0,10) == "text_PCN_R"
then
value = " "..value
return value:sub(-9)
end
end
return " "
end
local function getPCNDigitR()
local li = list_indication(10)
--if li == "" then return nil end
local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n")
local count = 0
local ret = " "
while true do
local name, value = m()
if not name then break end
if name == "text_PCN_EST"
then
count = count + 1
ret="E"
end
if name == "text_PCN_OUEST"
then
count = count + 1
ret="W"
end
if name == "text_PCN_PLUS_R"
then
count = count + 1
ret="+"
end
if name == "text_PCN_MOINS_R"
then
count = count + 1
ret="-"
end
end
if count > 1 then ret = "*" end
return ret
end
local function getPCNDigitL()
local li = list_indication(10)
--if li == "" then return nil end
local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n")
local count = 0
local ret = " "
while true do
local name, value = m()
if not name then break end
if name == "text_PCN_NORD"
then
count = count + 1
ret="N"
end
if name == "text_PCN_SUD"
then
count = count + 1
ret="S"
end
if name == "text_PCN_PLUS_L"
then
count = count + 1
ret="+"
end
if name == "text_PCN_MOINS_L"
then
count = count + 1
ret="-"
end
end
if count > 1 then ret = "*" end
return ret
end
local function getPCNDispD()
local li = list_indication(11)
--if li == "" then return nil end
local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n")
while true do
local name, value = m()
if not name then break end
if name == "text_PCN_BR2"
then
value = " "..value
return value:sub(-2)
end
if name == "text_PCN_eBR2"
then
value = " "..value
return value:sub(-2)
end
end
return " "
end
local function getPCNDispP()
local li = list_indication(11)
--if li == "" then return nil end
local m = li:gmatch("-----------------------------------------\n([^\n]+)\n([^\n]*)\n")
while true do
local name, value = m()
if not name then break end
if name == "text_PCN_BR1"
then
value = " "..value
return value:sub(-2)
end
if name == "text_PCN_eBR1"
then
value = " "..value
return value:sub(-2)
end
end
return " "
end