lol oui il fonctionne encore ! j ai teste avec sioc monitor pas de souci.
En attendant que je trouve le vieux script mcp pmdg de opencockpit , j ai essaye chatgpt qui m a genere:
--- MCP OpenCockpits <-> PMDG 737 via FSUIPC7
--- Template SIOC ; remplacer les <PLACEHOLDERS> par les offsets/events réels
--- Variables FSUIPC (lecture/écriture)
Var 1000, name AP_HEADING, Link FSUIPC_INOUT, Offset $<OFF_HEADING>, Length 2 // valeur heading AP (0..359)
Var 1001, name AP_ALTITUDE, Link FSUIPC_INOUT, Offset $<OFF_ALTITUDE>, Length 2 // altitude selected (ft)
Var 1002, name AP_SPEED, Link FSUIPC_INOUT, Offset $<OFF_SPEED>, Length 2 // IAS / MACH value
Var 1003, name AP_VS, Link FSUIPC_INOUT, Offset $<OFF_VS>, Length 2 // vertical speed
Var 1004, name AP_MODE_FLAGS, Link FSUIPC_IN, Offset $<OFF_MODEFLAGS>, Length 2 // flags / bits (AP on/off etc) - lecture
Var 1005, name PMDG_STATUS, Link FSUIPC_IN, Offset $<OFF_STATUS>, Length 2 // exemple : ready/bits
--- Encodeur Heading (exemple)
--- suppose : IOCARD encoder gives increments on Var 2000 (rotate +1 / -1)
Var 2000, name ENC_HDG, Link IOCARD_ENC 1 // adapter numéro d'IOCard / type
{
IF &ENC_HDG > 0 { // clockwise
v1 = &AP_HEADING + 1
IF v1 >= 360 { v1 = v1 - 360 }
&AP_HEADING = v1
}
IF &ENC_HDG < 0 { // counterclockwise
v1 = &AP_HEADING - 1
IF v1 < 0 { v1 = v1 + 360 }
&AP_HEADING = v1
}
}
--- Encodeur ALT (exemple, incr par 100 ft)
Var 2001, name ENC_ALT, Link IOCARD_ENC 2
{
IF &ENC_ALT > 0 {
&AP_ALTITUDE = &AP_ALTITUDE + 100
}
IF &ENC_ALT < 0 {
&AP_ALTITUDE = &AP_ALTITUDE - 100
IF &AP_ALTITUDE < 0 { &AP_ALTITUDE = 0 }
}
}
--- Bouton AP MASTER toggle (exemple via Event ou via offset)
--- Option A: si tu as l'offset bit pour AP master -> écriture directe
Var 3000, name BTN_AP_MASTER, Link IOCARD_SW Input 1 Type P // bouton AP on/off
{
IF &BTN_AP_MASTER == 1 {
--- Ecrire 1 ou toggler bit selon l'offset PMDG
--- Exemple (si l'offset accepte 1/0) :
&AP_MODE_FLAGS = &AP_MODE_FLAGS XOR <MASK_AP_MASTER> // <-- remplacer MASK_AP_MASTER par le masque de bit
}
}
--- Option B: si PMDG attend un EVENT / LVAR -> envoyer l'event via un offset "virtual joystick" (méthode workaround)
--- NOTE : remplacer <EVENT_CONTROL_NUMBER> par la valeur controlID définie dans FSUIPC event file si tu en a créé un.
Var 3001, name BTN_AP_MASTER_EVT, Link IOCARD_SW Input 2 Type P
{
IF &BTN_AP_MASTER_EVT == 1 {
--- écriture d'un bouton virtuel FSUIPC (plage boutons virtuels) :
--- la plage des "virtual joystick buttons" peut être écrasée dans FSUIPC ; ici on utilise un exemple générique
--- écrire 1 dans l'offset bouton virtuel, puis 0 (pulsation)
VarTemp = 1
WriteOffset $<OFF_VJOY_BUTTON>, VarTemp Length 1
Wait 50
VarTemp = 0
WriteOffset $<OFF_VJOY_BUTTON>, VarTemp Length 1
}
}
--- LNAV / VNAV / FD / CWS etc : boutons simples -> map à des offsets ou events
Var 3100, name BTN_LNAV, Link IOCARD_SW Input 3 Type P
{
IF &BTN_LNAV == 1 {
--- soit toggle bit d'offset, soit envoyer event SimConnect/FSUIPC
--- Exemple : toggle bit LNAV
&AP_MODE_FLAGS = &AP_MODE_FLAGS XOR <MASK_LNAV>
}
}
--- Affichage des valeurs sur 7-seg / displays (exemple)
Var 4000, name DISP_HDG, Link DISPLAY_7SEG 1
{
v1 = TRUNC(&AP_HEADING)
&DISP_HDG = v1
}
--- End of script
la je suis en train de regarder les offsets ss fsuipc 7