Page 1 sur 2

Comment lier une Lvar avec une output SIOC ?

MessagePosté: Lun 4 Fév 2019 20:23
de tabar57
Bonjour,

Je rencontre une difficulté et je voulais savoir si c'est possible ?
En fait je cherche à lier une Lvar (L:B200CLIgnition) à une output d'un programme SIOC par un script LUA.
Je crois savoir que c'est possible de faire refléter (correspondre ) l'état d'un offset Fsuipc à une Lvar mais pour une output ?
En clair , je cherche à faire correspondre l'état de la Lvar du voyant Lignition avec le voyant physique.
Est ce que quelqu'un a déjà fait et pourrai me guider ?

Ps : les Lvars sont issues du B200 FlightOne

Cordialement

Bernard

Re: Comment lier une Lvar avec une output SIOC ?

MessagePosté: Lun 4 Fév 2019 22:27
de fab
Là, comme ça, sans trop chercher, je dirai que tu copies en LUA la Lvar dans un offset libre et tu le récupère dans SIOC gratgrat

Re: Comment lier une Lvar avec une output SIOC ?

MessagePosté: Mar 5 Fév 2019 00:18
de tabar57
Oui effectivement mais je cherchais à m'affranchir de la recherche et de l'utilisation d'un offset libre

Cordialement

Bernard

Re: Comment lier une Lvar avec une output SIOC ?

MessagePosté: Mar 5 Fév 2019 11:15
de gardan
Bonjour,

[Lua]

LVarSet = "L:B200CLIgnition"

if ipc.readLvar(LVarSet) == 1 then
ipc.writeUB(0x66C0, 10)

end

**********************************************
[Sioc]

Var 99, name VOYANT, Link FSUIPC_IN, Offset $66C0, Length 2 // Voyant Divers
{

IF v99 = 10
{
&led_xx = 1
}

{
*********************************************

Michel

Re: Comment lier une Lvar avec une output SIOC ?

MessagePosté: Mar 5 Fév 2019 11:38
de tabar57
Merci Michel,

Donc effectivement cela confirme qu'on ne peut pas attaquer directement une output (un link IOCARD_OUT) depuis un script Lua et qu'il faut passer par l'intermédiaire d'un offset libre.

merci affiche pour vos réponses

Cordialement

Bernard

Re: Comment lier une Lvar avec une output SIOC ?

MessagePosté: Mar 5 Fév 2019 15:09
de jacquesvde
gardan a écrit:Bonjour,

[Lua]

LVarSet = "L:B200CLIgnition"

if ipc.readLvar(LVarSet) == 1 then
ipc.writeUB(0x66C0, 10)

end

**********************************************
[Sioc]

Var 99, name VOYANT, Link FSUIPC_IN, Offset $66C0, Length 2 // Voyant Divers
{

IF v99 = 10
{
&led_xx = 1
}

{
*********************************************

Michel


Bonjour Michel, merci affiche
Très belle exemple LUA via SIOC.

J’aimerais savoir pour les input comment faire la programmation avec un offset libre récupéré dans SIOC gratgrat
Cordialement,
Jacques

Re: Comment lier une Lvar avec une output SIOC ?

MessagePosté: Mar 5 Fév 2019 19:16
de arcc
Bonsoir Jacques.

Moi je fais comme ca (si j'ai bien compris ta question)
j'attribue un offset libre , le 66C0 pour lire l'etat du switch "Alimentation" sur Batterie sur Off ou sur Externe

Fichier lua nommé pour exemple : TwinOtter_state (ne pas oublier de le declarer)

while 1 do

-- Lecture des LVars
sw_DCsource = ipc.readLvar("L:TW_DC_Source_sw")

-- Lecture des offsets

-- formatage des valeurs

-- Ecriture dans LVars

-- Ecriture dans Offsets Libres
ipc.writeSD(0X66C0, sw_DCsource)


ipc.sleep(100)

end


Dans SIOC pour lire la valeur
Var 0564, name sw_avionic, Link FSUIPC_INOUT, Offset $66C0, Length 1 // Etat du switch Avionic 0 = OFF 1 = Batt 255 = Gp externe


Tu devrais relire ces message.
http://www.aircockpit.com/viewtopic.php?f=89&t=3709

Christian

Re: Comment lier une Lvar avec une output SIOC ?

MessagePosté: Mer 6 Fév 2019 00:51
de stevelep
Salut Christian,

Petite erreur dans ton script LUA

ipc.writeSD(0X66C0, sw_DCsource)
Var 0564, name sw_avionic, Link FSUIPC_INOUT, Offset $66C0, Length 1

si tu utilises un offset de longueur 1 (Length 1) tu dois utiliser ipc.writeSB
SB = signed byte = 8 bits signé = longueur de 1 octet

si tu utilise ipc.writeSD, tu dois mettre longueur 2 mais pour cet exemple c'est pas nécessaire

BOB

Re: Comment lier une Lvar avec une output SIOC ?

MessagePosté: Mer 6 Fév 2019 01:09
de jacquesvde
Merci pour votre réponse, merci affiche
Jacques cligneoeil

Re: Comment lier une Lvar avec une output SIOC ?

MessagePosté: Mer 6 Fév 2019 17:49
de arcc
si tu utilise ipc.writeSD, tu dois mettre longueur 2 mais pour cet exemple c'est pas nécessaire


Merci pour la précision. Qu'est ce que ca peu donné cette erreur dans le déroulement de Sioc ?
J'ai une bonne dizaine de "writeSD" avec un "lenght" de 1. Bizarement ca fonctionne très bien...

Par contre j'ai bien pris soin de séparer les Offset que je prenais.
Un exemple tirer d'un de mes fichiers lua
ipc.writeSD(0X66C0, sw_DCsource)
ipc.writeSD(0X66C4, Door_CaptState)
ipc.writeSD(0X66C8, Door_FOState)
ipc.writeSD(0X66CC, Alt_Set_AP)
ipc.writeSD(0X9100, starter_switch)
ipc.writeSD(0X9104, Battery_State)
ipc.writeSD(0X9108, AnnTest_State)
ipc.writeSD(0X910C, APTest_State)
ipc.writeSD(0X9110, AP_IAS_State)
ipc.writeSD(0X9114, Fire_Test_State)
ipc.writeSD(0X9118, HYD_CB_State)


Tu crois que je devrais modifier le "SD" ou le "lenght" ?

Merci
Christian