Salut Michel,
Heu ?...

juste un truc....

, tes offsets pour COM et NAV sont identiques donc problème !

remplacer par => COM1 ACT offset 034E
remplacer par => COM1 STB offset 311A
Je pense que ton problème est là...
Je ne connais pas l'offset 0351 (pas dans les doc) donc je pense qu'il peut aussi y avoir un bug ici
Offset ADF:A ma connaissance il n'y a pas d'offset pour ADF stb
En fait, on n'a que ADF1 et ADF2 active.
Si tu veux créer un ADF_STB, il faut créer une variable locale pour mettre en mémoire une seconde fréquence (la standby)
- j'utilise :
Var 0865, name FSO_ADF1, Link FSUIPC_OUT, Offset
$034C, Length 2 // ADF
Var 0870, name FSI_ADF1_Ext, Link FSUIPC_IN, Offset
$0356, Length 2 // extension offset_ADF
un peu de code pour t'en inspirer (tout n'est pas à prendre car des particularités à France Cockpit)
- Code: Tout sélectionner
// ***************************
// ** www.francecockpit.com **
// ***************************
// * FileName : FC_Pedestal_ADF.txt
// * Date : 23/03/2011
Var 0000, value 0 // Initialisation
{
CALL &init_ADF
}
Var 0100, name ADF_Active // 888
Var 0200, name ADF_Active_Ext
Var 0500, name ADF_active_1
Var 0510, name ADF_active_2
Var 0520, name ADF_active_3
Var 0530, name ADF_active_4
Var 0540, name ADF_active_5
Var 0550, name ADF_stby
Var 0560, name ADF_stby_1
Var 0570, name ADF_stby_2
Var 0580, name ADF_stby_3
Var 0590, name ADF_stby_4
Var 0600, name ADF_stby_5
Var 0830, name mode_ADF // 0=figer, 1=xxxx.8, 2=xxx8.x, 3=xx8x.x,..
{
IF &mode_ADF = 0
{
&Sub_ADFclignot = 0
}
IF &mode_ADF = 1
{
&D_ADF_stby_1 = &ADF_stby_1
}
IF &mode_ADF = 2
{
&D_ADF_stby_2 = &ADF_stby_2
}
IF &mode_ADF = 3
{
&D_ADF_stby_3 = &ADF_stby_3
}
IF &mode_ADF = 4
{
&D_ADF_stby_4 = &ADF_stby_4
}
IF &mode_ADF = 5
{
&D_ADF_stby_5 = &ADF_stby_5
}
}
Var 0840, name Multi_ADF_BCD // memo SW multi ADF
Var 0860, name FSI_ADF1, Link FSUIPC_IN, Offset $034C, Length 2
{
CALL &ReadFS_ADF
}
Var 0865, name FSO_ADF1, Link FSUIPC_OUT, Offset $034C, Length 2
Var 0870, name FSI_ADF1_Ext, Link FSUIPC_IN, Offset $0356, Length 2
{
CALL &ReadFS_ADF
}
Var 0875, name FSO_ADF1_Ext, Link FSUIPC_OUT, Offset $0356, Length 2
Var 0900, name FS_ADF1_Tone, Link FSUIPC_INOUT, Offset $3107, Length 1
Var 0910, name FS_ADF_Select, Link FSUIPC_INOUT, Offset $3122, Length 1
Var 1000, name D_ADF_Active, Link IOCARD_DISPLAY, Device 1, Digit 101, Numbers 5 // Active 8888.8
Var 1010, name D_ADF_Active_1, Link IOCARD_DISPLAY, Device 1, Digit 101, Numbers 1 // x x x x . 8
Var 1020, name D_ADF_Active_2, Link IOCARD_DISPLAY, Device 1, Digit 102, Numbers 1 // x x x 8 . x
Var 1030, name D_ADF_Active_3, Link IOCARD_DISPLAY, Device 1, Digit 103, Numbers 1 // x x 8 x . x
Var 1040, name D_ADF_Active_4, Link IOCARD_DISPLAY, Device 1, Digit 104, Numbers 1 // x 8 x x . x
Var 1050, name D_ADF_Active_5, Link IOCARD_DISPLAY, Device 1, Digit 105, Numbers 1 // 8 x x x . x
Var 1500, name D_ADF_stby, Link IOCARD_DISPLAY, Device 1, Digit 96, Numbers 5 // Standby 8888.8
Var 1510, name D_ADF_stby_1, Link IOCARD_DISPLAY, Device 1, Digit 96, Numbers 1 // x x x x . 8
Var 1520, name D_ADF_stby_2, Link IOCARD_DISPLAY, Device 1, Digit 97, Numbers 1 // x x x 8 . x
Var 1530, name D_ADF_stby_3, Link IOCARD_DISPLAY, Device 1, Digit 98, Numbers 1 // x x 8 x . x
Var 1540, name D_ADF_stby_4, Link IOCARD_DISPLAY, Device 1, Digit 99, Numbers 1 // x 8 x x . x
Var 1550, name D_ADF_stby_5, Link IOCARD_DISPLAY, Device 1, Digit 100, Numbers 1 // 8 x x x . x
Var 1690, name SW_ADF_TFR, Link IOCARD_SW, Device 1, Input 135
{
IF &SW_ADF_TFR = 1
{
&mode_ADF = 0
CALL &Sub_Writ_ADF
}
}
Var 1700, name I_ADF_Tone, Link IOCARD_SW, Device 1, Input 137
{
&FS_ADF1_Tone = &I_ADF_Tone
}
Var 1800, name BP_ADF_Enc, Link IOCARD_SW, Device 1, Input 138, Type P
{
IF &mode_ADF < 5
{
&mode_ADF = &mode_ADF + 1
}
ELSE
{
&mode_ADF = 0
}
}
Var 1900, name I_ADF_Adf, Link IOCARD_SW, Device 1, Input 139
{
IF &I_ADF_Adf = 1
{
&FS_ADF_Select = SETBIT 0
}
ELSE
{
&FS_ADF_Select = CLEARBIT 0
}
}
Var 2000, name ENC_ADF_CAP, Link IOCARD_ENCODER, Device 1, Input 140, Aceleration 3, Type 2
{
IF &mode_ADF <> 0 // For selected Digit...
{
IF &mode_ADF = 1
{
IF &ENC_ADF_CAP = 1
{
&ADF_stby_1 = ROTATE 0 ,9 ,-1
}
IF &ENC_ADF_CAP = -1
{
&ADF_stby_1 = ROTATE 0 ,9 ,1
}
}
IF &mode_ADF = 2
{
IF &ENC_ADF_CAP = 1
{
&ADF_stby_2 = ROTATE 0 ,9 ,-1
}
IF &ENC_ADF_CAP = -1
{
&ADF_stby_2 = ROTATE 0 ,9 ,1
}
}
IF &mode_ADF = 3
{
IF &ENC_ADF_CAP = 1
{
&ADF_stby_3 = ROTATE 0 ,9 ,-1
}
IF &ENC_ADF_CAP = -1
{
&ADF_stby_3 = ROTATE 0 ,9 ,1
}
}
IF &mode_ADF = 4
{
IF &ENC_ADF_CAP = 1
{
&ADF_stby_4 = ROTATE 0 ,7 ,-1
}
IF &ENC_ADF_CAP = -1
{
&ADF_stby_4 = ROTATE 0 ,7 ,1
}
}
IF &mode_ADF = 5
{
IF &ENC_ADF_CAP = 1
{
&ADF_stby_5 = ROTATE 0 ,1 ,-1
}
IF &ENC_ADF_CAP = -1
{
&ADF_stby_5 = ROTATE 0 ,1 ,1
}
}
}
}
Var 2100, name ENC_ADF_OFF, Link IOCARD_ENCODER, Device 1, Input 142, Aceleration 3, Type 2
{
IF &mode_ADF <> 0 // For selected Digit...
{
IF &mode_ADF = 1
{
IF &ENC_ADF_OFF = 1
{
&ADF_stby_1 = ROTATE 0 ,9 ,-1
}
IF &ENC_ADF_OFF = -1
{
&ADF_stby_1 = ROTATE 0 ,9 ,1
}
}
IF &mode_ADF = 2
{
IF &ENC_ADF_OFF = 1
{
&ADF_stby_2 = ROTATE 0 ,9 ,-1
}
IF &ENC_ADF_OFF = -1
{
&ADF_stby_2 = ROTATE 0 ,9 ,1
}
}
IF &mode_ADF = 3
{
IF &ENC_ADF_OFF = 1
{
&ADF_stby_3 = ROTATE 0 ,9 ,-1
}
IF &ENC_ADF_OFF = -1
{
&ADF_stby_3 = ROTATE 0 ,9 ,1
}
}
IF &mode_ADF = 4
{
IF &ENC_ADF_OFF = 1
{
&ADF_stby_4 = ROTATE 0 ,7 ,-1
}
IF &ENC_ADF_OFF = -1
{
&ADF_stby_4 = ROTATE 0 ,7 ,1
}
}
IF &mode_ADF = 5
{
IF &ENC_ADF_OFF = 1
{
&ADF_stby_5 = ROTATE 0 ,1 ,-1
}
IF &ENC_ADF_OFF = -1
{
&ADF_stby_5 = ROTATE 0 ,1 ,1
}
}
}
}
Var 2200, name DP_ADF, Link IOCARD_OUT, Device 1, Output 80
Var 2300, name Led_Multi_ADF1, Link IOCARD_OUT, Device 1, Output 81
Var 2310, name Led_Multi_ADF2, Link IOCARD_OUT, Device 1, Output 82
Var 2500, name SW_Multi_ADF_a, Link IOCARD_SW, Device 1, Input 73
{
&Multi_ADF_BCD = 0
call &Scan_Multi_ADF
}
Var 2550, name SW_Multi_ADF_b, Link IOCARD_SW, Device 1, Input 74
{
&Multi_ADF_BCD = 0
call &Scan_Multi_ADF
}
Var 2600, name SW_Multi_ADF_c, Link IOCARD_SW, Device 1, Input 75
{
&Multi_ADF_BCD = 0
call &Scan_Multi_ADF
}
Var 2700, name SW_Multi_ADF_d, Link IOCARD_SW, Device 1, Input 76
{
&Multi_ADF_BCD = 0
call &Scan_Multi_ADF
}
Var 3000, name init_ADF, Link SUBRUTINE
{
&DP_ADF = 1
&mode_ADF = 0
CALL &ReadFS_ADF
&Sub_ADFclignot = TIMER 999 ,0 ,20 // Scan le sub tout les 2/10s
// &Scan_Multi_ADF = TIMER 999 ,0 ,30
&mode_ADF = 0
}
Var 4000, name Sub_Writ_ADF, Link SUBRUTINE
{
L0 = &ADF_stby_2
L1 = &ADF_stby_3 * 10
L2 = &ADF_stby_4 * 100
L0 = L0 + L1
L0 = L0 + L2
&FSO_ADF1 = TOBCD L0
L0 = &ADF_stby_1
L1 = &ADF_stby_5 * 10000
L2 = L0 + L1
&FSO_ADF1_Ext = TOBCD L2
}
Var 5000, name Scan_Multi_ADF, Link SUBRUTINE // Select MultiCom=> ADF1 or ADF2
{
IF &Multi_ADF_BCD = 0
{
L0 = &SW_Multi_ADF_a
L1 = &SW_Multi_ADF_b * 10
L2 = &SW_Multi_ADF_c * 100
L0 = L0 + L1
L0 = L0 + L2
L1 = &SW_Multi_ADF_d * 1000
L0 = L0 + L1
&Multi_ADF_BCD = L0
IF L0 = 1001 // ADF1
{
&Led_Multi_ADF1 = 1
&Led_Multi_ADF2 = 0
}
ELSE
{
IF L0 = 100 // ADF 2
{
&Led_Multi_ADF1 = 0
&Led_Multi_ADF2 = 1
}
}
&SW_Multi_ADF_a = 0
&SW_Multi_ADF_b = 0
&SW_Multi_ADF_c = 0
&SW_Multi_ADF_d = 0
}
}
Var 7000, name ReadFS_ADF, Link SUBRUTINE
{
L0 = FROMBCD &FSI_ADF1
&ADF_Active = L0 * 10
L0 = FROMBCD &FSI_ADF1_Ext
L2 = MOD L0 ,10 // .8
L0 = L0 / 10
L1 = TRUNC L0
L1 = L1 * 1000
&ADF_Active_Ext = L1 + L2
&D_ADF_Active = &ADF_Active + &ADF_Active_Ext // 88888
}
Var 9999, name Sub_ADFclignot, Link SUBRUTINE
{
IF &mode_ADF <> 0
{
IF &Sub_ADFclignot = 0
{
IF &mode_ADF = 1
{
&D_ADF_stby_1 = -999999
}
IF &mode_ADF = 2
{
&D_ADF_stby_2 = -999999
}
IF &mode_ADF = 3
{
&D_ADF_stby_3 = -999999
}
IF &mode_ADF = 4
{
&D_ADF_stby_4 = -999999
}
IF &mode_ADF = 5
{
&D_ADF_stby_5 = -999999
}
&Sub_ADFclignot = 1
}
ELSE
{
&D_ADF_stby_1 = &ADF_stby_1
&D_ADF_stby_2 = &ADF_stby_2
&D_ADF_stby_3 = &ADF_stby_3
&D_ADF_stby_4 = &ADF_stby_4
&D_ADF_stby_5 = &ADF_stby_5
&Sub_ADFclignot = 0
}
}
}
Cordialement,