Problème avec le code du selecteur de cap

Questions de programmation / Offset FSUIPC et IOCP

Re: Problème avec le code du selecteur de cap

Messagede FiX » Ven 26 Oct 2012 17:54

Celà dit, je veux bien voir ton code sur les radios quand même...
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Problème avec le code du selecteur de cap

Messagede stevelep » Ven 26 Oct 2012 17:59

Voila, faut peut-être le copier dans un éditeur texte car c'est un peu long ...


Code: Tout sélectionner
//   2000 RADIOS
//   2000 Icom
//   2100 COM 1
//   2200 COM 2
//   2300 NAV 1
//   2400 NAV 2
//   2500 LCD
//   2600 GPS
//   2700 XPD
//   2800 ADF
//   2860 EFIS
//   2900 display & leds

//   2000 INTERCOM

//      * FS Icom Offset *

Var 2010, name fs_icom, Link FSUIPC_INOUT, Offset $3122, Length 1, VALUE 128      // 0=adf, 1=dme, 2=mkr, 3=nav2, 4=nav1; 5=both, 6=com2, 7=com1
 {                                 
   CALL &avionicsys
 }
   
//      * Intercom Switches *

Var 2020, name ic_com1, Link IOCARD_SW, Input 218, TYPE P
 {
   C0 = &fs_avbusvolt > 1700
   C1 = &ic_com1 = 1
   IF C0
    {
      &sound = 117
    }
   &fs_icom = CHANGEBIT 7 &ic_com1            // swap between com1-com2 mode
   &fs_icom = CHANGEBITN 6 &ic_com2
 }
Var 2024, name ic_com2, Link IOCARD_SW, Input 220, TYPE P
 {   
   C0 = &fs_avbusvolt > 1700
   C1 = &ic_com2 = 1
   IF C0
    {
      &sound = 117
    }
   &fs_icom = CHANGEBIT 6 &ic_com2
   &fs_icom = CHANGEBITN 7 &ic_com2
 }
Var 2026, name ic_both, Link IOCARD_SW, Input 217      // both used for testradio
 {
   C0 = &fs_avbusvolt > 1700
   C1 = &ic_both = 1
   IF C0
    {
      &sound = 131
    }
// &fs_icom = CHANGEBIT 5 &ic_both       
 }
Var 2028, name ic_nav1, Link IOCARD_SW, Input 219, TYPE P
 {
   C0 = &fs_avbusvolt > 1700
   C1 = &ic_nav1 = 1
   IF C0
    {
      &sound = 117
    }
   &fs_icom = CHANGEBIT 4 &ic_nav1
 }
Var 2030, name ic_nav2, Link IOCARD_SW, Input 226, TYPE P
 {
   C0 = &fs_avbusvolt > 1700
   C1 = &ic_nav2 = 1
   IF C0
    {
      &sound = 117
    }
   &fs_icom = CHANGEBIT 3 &ic_nav2
 }
Var 2032, name ic_mkr, Link IOCARD_SW, Input 227, TYPE P
 {   
   C0 = &fs_avbusvolt > 1700
   C1 = &ic_mkr = 1
   IF C0
    {
      &sound = 117
    }
   &fs_icom = CHANGEBIT 2 &ic_mkr
 }
Var 2034, name ic_dme, Link IOCARD_SW, Input 229, TYPE P
 {   
   C0 = &fs_avbusvolt > 1700
   C1 = &ic_dme = 1
   IF C0
    {
      &sound = 117
    }
   &fs_icom = CHANGEBIT 1 &ic_dme
 }
Var 2036, name ic_adf, Link IOCARD_SW, Input 228, TYPE P
 {
   C0 = &fs_avbusvolt > 1700
   C1 = &ic_adf = 1
   IF C0
    {
      &sound = 117
    }
   &fs_icom = CHANGEBIT 0 &ic_adf
 }



//    2100 COM 1

Var 2120, name fs_swap, Link FSUIPC_OUT, Offset $3123, Length 1    // FS RADIO active standby swap bits:   0=nav2, 1=nav1, 2=com2, 3=com1


Var 2121, name fs_C1sb_bcd, Link FSUIPC_INOUT, Offset $311A, Length 2    // FS COM1 standby frequency in BCD format
 {
   &d_c1sb_1 = 1
   &d_c1ac_1 = 1
 }
Var 2122, name fs_c1ac_bcd, Link FSUIPC_IN, Offset $034E, Length 2    // FS COM1 active frequency in BCD format
 {
   &d_c1ac = FROMBCD &fs_c1ac_bcd       // Update C1 active freq display (4 digits)
   CALL &c1int_rotval          // Align rotary with new C1 SB integer val
   CALL &c1dec_rotval          // Align rotary with new C1 SB decimal val
   CALL &c1upd_int
   CALL &c1upd_dec
 }
Var 2126, name C1_SB_AS_DEC                   // COM1 standby frequency in decimal format
Var 2128, name c1sb_int                   // COM1 standby frequency integers
Var 2130, name c1sb_dec                   // COM1 standby frequency decimals
Var 2132, name c1int_value                   // COM1 left hand rotary encoder ref value
Var 2134, name c1dec_value                   // COM1 right hand rotary encoder ref value
Var 2136, name ec_c1int, Link IOCARD_ENCODER, Input 230, Aceleration 2, Type 2 // INTEGRER
 {
   &c1int_value = ROTATE 18 ,36 ,&ec_c1int
   CALL &c1upd_int
   CALL &setfs_c1sb
 }
Var 2138, name ec_c1dec, Link IOCARD_ENCODER, Input 232, Aceleration 2, Type 2 // DECIMAL
 {
   &c1dec_value = ROTATE 0 ,39 ,&ec_c1dec
   CALL &c1upd_dec
   CALL &setfs_c1sb
 }
Var 2140, name sw_c1_swap, Link IOCARD_SW, Input 236
 {
      &fs_swap = TOGGLE 3
 }
Var 2142, name d_c1sb_1    // Initial digit 1. Delete if hard wired
 {
   CALL &avionicsys
 }
Var 2144, name d_c1sb_int    // Standby integers
 {
   CALL &avionicsys
 }
Var 2148, name d_c1sb_dec    // Standby decimals
 {
   CALL &avionicsys
 }
Var 2150, name d_c1ac_1    // Initial digit 1. Delete if hard wired
 {
   CALL &avionicsys
 }
Var 2152, name d_c1ac
 {
   CALL &avionicsys
 }
Var 2154, name c1int_rotval, Link SUBRUTINE             // Aligns LH rotary ref with COM1 SB freq
 {
   L0 = FROMBCD &fs_c1sb_bcd
   L1 = L0 / 100
   &c1int_value = TRUNC L1
 }
Var 2156, name c1dec_rotval, Link SUBRUTINE    // Aligns RH rotary ref with COM1 SB freq
 {
   L0 = FROMBCD &fs_c1sb_bcd
   L1 = &c1int_value * 100
   L2 = L0 - L1
   &c1dec_value = L2 / 2.487179
 }
Var 2158, name c1upd_int, Link SUBRUTINE    // Update COM1 stanby integers
 {
     &d_c1sb_int = &c1int_value    // Set COM1 standby integer display
   &c1sb_int = &c1int_value
}
Var 2160, name c1upd_dec, Link SUBRUTINE    // Update COM1 standby decimals
 {
   L0 = &c1dec_value * 2.5
   &c1sb_dec = TRUNC L0
   &d_c1sb_dec = &c1sb_dec
 }
Var 2162, name setfs_c1sb, Link SUBRUTINE    // Update COM1 standby frequency in FS
 {
    L0 = &c1sb_int * 100
   L1 = L0 + &c1sb_dec
   &fs_c1sb_bcd = TOBCD L1
 }


//   2200 COM 2


Var 2220, name fs_C2sb_bcd, Link FSUIPC_INOUT, Offset $311c, Length 2    // FS COM2 standby frequency in BCD format
 {
   &d_c2sb_1 = 1
   &d_c2ac_1 = 1
 }
Var 2222, name fs_c2ac_bcd, Link FSUIPC_INOUT, Offset $3118, Length 2    // FS COM2 active frequency in BCD format
 {
   &d_c2ac = FROMBCD &fs_c2ac_bcd       // Update C2 active freq display (4 digits)
   CALL &c2int_rotval          // Align rotary with new C2 SB integer val
   CALL &c2dec_rotval          // Align rotary with new C2 SB decimal val
   CALL &c2upd_int
   CALL &c2upd_dec
 }
Var 2224, name C2_SB_AS_DEC                   // COM2 standby frequency in decimal format
Var 2226, name c2sb_int                   // COM2 standby frequency integers
Var 2228, name c2sb_dec                   // COM2 standby frequency decimals
Var 2230, name c2int_value                   // COM2 left hand rotary encoder ref value
Var 2232, name c2dec_value                   // COM2 right hand rotary encoder ref value
Var 2234, name ec_c2int, Link IOCARD_ENCODER, Input 248, Aceleration 2, Type 2 // INTEGRER
 {
   &c2int_value = ROTATE 18 ,36 ,&ec_c2int
   CALL &c2upd_int
   CALL &setfs_c2sb
 }
Var 2236, name ec_c2dec, Link IOCARD_ENCODER, Input 250, Aceleration 2, Type 2 // DECIMAL
 {
   &c2dec_value = ROTATE 0 ,39 ,&ec_c2dec
   CALL &c2upd_dec
   CALL &setfs_c2sb
 }
Var 2238, name d_c2sb_1    // Initial digit 1. Delete if hard wired
 {
   CALL &avionicsys
 }
Var 2240, name d_c2sb_int    // Standby integers
 {
   CALL &avionicsys
 }
Var 2242, name d_c2sb_dec    // Standby decimals
 {
   CALL &avionicsys
 }
Var 2244, name d_c2ac_1      // UNUSED
 {
   CALL &avionicsys
 }
Var 2246, name d_c2ac      // UNUSED
 {
   CALL &avionicsys
 }
Var 2248, name c2int_rotval, Link SUBRUTINE             // Aligns LH rotary ref with COM1 SB freq
 {
   L0 = FROMBCD &fs_c2sb_bcd
   L1 = L0 / 100
   &c2int_value = TRUNC L1
 }
Var 2250, name c2dec_rotval, Link SUBRUTINE    // Aligns RH rotary ref with COM1 SB freq
 {
   L0 = FROMBCD &fs_c2sb_bcd
   L1 = &c2int_value * 100
   L2 = L0 - L1
   &c2dec_value = L2 / 2.487179
 }
Var 2252, name c2upd_int, Link SUBRUTINE    // Update COM2 stanby integers
 {
     &d_c2sb_int = &c2int_value       // Set COM2 standby integer display
   &c2sb_int = &c2int_value
}
Var 2254, name c2upd_dec, Link SUBRUTINE    // Update COM2 standby decimals
 {
   L0 = &c2dec_value * 2.5
   &c2sb_dec = TRUNC L0
   &d_c2sb_dec = &c2sb_dec
 }
Var 2256, name setfs_c2sb, Link SUBRUTINE    // Update COM2 standby frequency in FS
 {
    L0 = &c2sb_int * 100
   L1 = L0 + &c2sb_dec
   &fs_c2sb_bcd = TOBCD L1
   &fs_C2ac_bcd = &fs_C2sb_bcd
 }


//   2300 NAV 1


Var 2320, name fs_n1sb_bcd, Link FSUIPC_INOUT, Offset $311e, Length 2    // FS NAV1 standby frequency in BCD format
 {
   &d_n1sb_1 = 1
   &d_n1ac_1 = 1
 }
Var 2322, name fs_n1ac_bcd, Link FSUIPC_IN, Offset $0350, Length 2    // FS NAV1 active frequency in BCD format
 {
   &d_n1ac = FROMBCD &fs_n1ac_bcd       // Update N1 active freq display (4 digits)
   CALL &n1int_rotval          // Align rotary with new N1 SB integer val
   CALL &n1dec_rotval          // Align rotary with new N1 SB decimal val
   CALL &n1upd_int
   CALL &n1upd_dec
 }
Var 2326, name n1_SB_AS_DEC                   // NAV1 standby frequency in decimal format
Var 2328, name n1sb_int                   // NAV1 standby frequency integers
Var 2330, name n1sb_dec                   // NAV1 standby frequency decimals
Var 2332, name n1int_value                   // NAV1 left hand rotary encoder ref value
Var 2334, name n1dec_value                   // NAV1 right hand rotary encoder ref value
Var 2336, name ec_n1int, Link IOCARD_ENCODER, Input 221, Aceleration 2, Type 2 // INTEGRER
 {
   L0 = &ec_n1int * -1
   &n1int_value = ROTATE 8 ,17 ,L0   
   CALL &n1upd_int
   CALL &setfs_n1sb
 }
Var 2338, name ec_n1dec, Link IOCARD_ENCODER, Input 223, Aceleration 2, Type 2 // DECIMAL
 {
   &n1dec_value = ROTATE 0 ,39 ,&ec_n1dec
   CALL &n1upd_dec
   CALL &setfs_n1sb
 }
Var 2340, name sw_n1_swap, Link IOCARD_SW, Input 235      //    bits:   0=nav2, 1=nav1, 2=com2, 3=com1
 {
      &fs_swap = TOGGLE 1
 }
Var 2342, name d_n1sb_1      // Initial digit 1. Delete if hard wired
 {
   CALL &avionicsys
 }
Var 2344, name d_n1sb_int    // Standby integers
 {
   CALL &avionicsys
 }
Var 2346, name d_n1sb_dec    // Standby decimals
 {
   CALL &avionicsys
 }
Var 2348, name d_n1ac_1      // Initial digit 1. Delete if hard wired
 {
   CALL &avionicsys
 }
Var 2350, name d_n1ac
 {
   CALL &avionicsys
 }
Var 2352, name n1int_rotval, Link SUBRUTINE             // Aligns int rotary ref with NAV1 SB freq
 {
   L0 = FROMBCD &fs_n1sb_bcd
   L1 = L0 / 100
   &n1int_value = TRUNC L1
 }
Var 2354, name n1dec_rotval, Link SUBRUTINE    // Aligns dec rotary ref with NAV1 SB freq
 {
   L0 = FROMBCD &fs_n1sb_bcd
   L1 = &n1int_value * 100
   L2 = L0 - L1
   &n1dec_value = L2 / 2.487179
 }
Var 2356, name n1upd_int, Link SUBRUTINE    // Update NAV1 stanby integers
 {
     &d_n1sb_int = &n1int_value       // Set NAV1 standby integer display
   &n1sb_int = &n1int_value
}
Var 2358, name n1upd_dec, Link SUBRUTINE    // Update NAV1 standby decimals
 {
   L0 = &n1dec_value * 2.5
   &n1sb_dec = TRUNC L0
   &d_n1sb_dec = &n1sb_dec
 }
Var 2360, name setfs_n1sb, Link SUBRUTINE    // Update NAV1 standby frequency in FS
 {
    L0 = &n1sb_int * 100
   L1 = L0 + &n1sb_dec
   &fs_n1sb_bcd = TOBCD L1
   
 }


//   2400 NAV 2


Var 2420, name fs_n2sb_bcd, Link FSUIPC_INOUT, Offset $3120, Length 2    // FS NAV2 standby frequency in BCD format
 {
   &d_n2sb_1 = 1
   &d_n2ac_1 = 1
 }
Var 2422, name fs_n2ac_bcd, Link FSUIPC_INOUT, Offset $0352, Length 2    // FS NAV2 active frequency in BCD format
 {
   &d_n2ac = FROMBCD &fs_n2ac_bcd       // Update N2 active freq display (4 digits)
   CALL &n2int_rotval          // Align rotary with new N2 SB integer val
   CALL &n2dec_rotval          // Align rotary with new N2 SB decimal val
   CALL &n2upd_int
   CALL &n2upd_dec
 }
Var 2424, name n2_SB_AS_DEC                   // NAV2 standby frequency in decimal format
Var 2426, name n2sb_int                   // NAV2 standby frequency integers
Var 2428, name n2sb_dec                   // NAV2 standby frequency decimals
Var 2430, name n2int_value                   // NAV2 left hand rotary encoder ref value
Var 2432, name n2dec_value                   // NAV2 right hand rotary encoder ref value
Var 2434, name ec_n2int, Link IOCARD_ENCODER, Input 241, Aceleration 2, Type 2 // INTEGRER
 {
   L0 = &ec_n2int * -1
   &n2int_value = ROTATE 8 ,17 ,L0   
   CALL &n2upd_int
   CALL &setfs_n2sb
 }
Var 2436, name ec_n2dec, Link IOCARD_ENCODER, Input 239, Aceleration 2, Type 2 // DECIMAL
 {
   L0 = &ec_n2dec * -1
   &n2dec_value = ROTATE 0 ,39 ,L0
   CALL &n2upd_dec
   CALL &setfs_n2sb
 }
Var 2438, name d_n2sb_1    // Initial digit 1. Delete if hard wired
 {
   CALL &avionicsys
 }
Var 2440, name d_n2sb_int    // Standby integers
 {
   CALL &avionicsys
 }
Var 2442, name d_n2sb_dec    // Standby decimals
 {
   CALL &avionicsys
 }
Var 2444, name d_n2ac_1      // UNUSED
 {
   CALL &avionicsys
 }
Var 2446, name d_n2ac      // UNUSED
 {
   CALL &avionicsys
 }
Var 2448, name n2int_rotval, Link SUBRUTINE             // Aligns int rotary ref with NAV2 SB freq
 {
   L0 = FROMBCD &fs_n2sb_bcd
   L1 = L0 / 100
   &n2int_value = TRUNC L1
 }
Var 2450, name n2dec_rotval, Link SUBRUTINE    // Aligns dec rotary ref with NAV2 SB freq
 {
   L0 = FROMBCD &fs_n2sb_bcd
   L1 = &n2int_value * 100
   L2 = L0 - L1
   &n2dec_value = L2 / 2.487179
 }
Var 2452, name n2upd_int, Link SUBRUTINE    // Update NAV2 stanby integers
 {
     &d_n2sb_int = &n2int_value       // Set NAV2 standby integer display
   &n2sb_int = &n2int_value
 }
Var 2454, name n2upd_dec, Link SUBRUTINE    // Update NAV2 standby decimals
 {
   L0 = &n2dec_value * 2.5
   &n2sb_dec = TRUNC L0
   &d_n2sb_dec = &n2sb_dec
 }
Var 2456, name setfs_n2sb, Link SUBRUTINE    // Update NAV2 standby frequency in FS
 {
    L0 = &n2sb_int * 100
   L1 = L0 + &n2sb_dec
   &fs_n2sb_bcd = TOBCD L1
   &fs_n2ac_bcd = &fs_n2sb_bcd
 }


//    2500 LCD Multi-Display

//    * LCD System *
//
//      values  0=off  1=ACT  2=VOR  3=GPS  4=ADF  5=FUEL 
//      6=ELE1  7=ELE2  8=MET  9=(A/P) 10=(ENG) 11=
//      12=EMER 13=crash 14=pause


Var 2510, name fs_lcd, Link FSUIPC_OUT, Offset $6620, Length 1, VALUE 0     // FSLCD LCD 1 multi display RW

//      * LCD selector *

Var 2530, name lcdsys LINK SUBRUTINE
 {
   &fs_lcd = &lcdsys
 }

Var 2532, name lcd_adf, Link IOCARD_SW, Input 269
 {
   IF &lcd_adf = 1
    {
      CALL &lcdsys 4
    }
 }
Var 2534, name lcd_vor, Link IOCARD_SW, Input 268
 {
   IF &lcd_vor = 1
    {
      CALL &lcdsys 2
    }
 }
Var 2536, name lcd_gps, Link IOCARD_SW, Input 261
 {
   IF &lcd_gps = 1
    {
      CALL &lcdsys 3
    }
 }
Var 2538, name lcd_actf, Link IOCARD_SW, Input 267
 {
   IF &lcd_actf = 1
    {
      CALL &lcdsys 1
    }
 }
Var 2540, name lcd_fuel, Link IOCARD_SW, Input 266
 {
   IF &lcd_fuel = 1
    {
      CALL &lcdsys 5
    }
 }
Var 2542, name lcd_meteo, Link IOCARD_SW, Input 262
 {
   IF &lcd_meteo = 1
    {
      CALL &lcdsys 8
    }
 }
Var 2544, name lcd_elec1, Link IOCARD_SW, Input 263
 {
   IF &lcd_elec1 = 1
    {
      CALL &lcdsys 6
    }
 }
Var 2546, name lcd_elec2, Link IOCARD_SW, Input 265
 {
   IF &lcd_elec2 = 1
    {
      CALL &lcdsys 7
    }
 }
Var 2548, name lcd_emer, Link IOCARD_SW, Input 264
 {
   IF &lcd_emer = 1
    {
      CALL &lcdsys 12
    }
 }

//   Send values to LCD MULTI-DISPLAY

Var 2551, name lcd_pc_lm, Link FSUIPC_OUT, Offset $7200, Length 2
Var 2552, name lcd_pc_rm, Link FSUIPC_OUT, Offset $7202, Length 2
Var 2553, name lcd_pc_la, Link FSUIPC_OUT, Offset $7204, Length 2
Var 2554, name lcd_pc_ra, Link FSUIPC_OUT, Offset $7206, Length 2
Var 2555, name lcd_ql_lm, Link FSUIPC_OUT, Offset $7208, Length 2
Var 2556, name lcd_ql_rm, Link FSUIPC_OUT, Offset $7210, Length 2
Var 2557, name lcd_ql_la, Link FSUIPC_OUT, Offset $7212, Length 2
Var 2558, name lcd_ql_ra, Link FSUIPC_OUT, Offset $7214, Length 2
Var 2559, name lcd_ql_tot, Link FSUIPC_OUT, Offset $7216, Length 2
Var 2560, name lcd_ff, Link FSUIPC_OUT, Offset $7218, Length 2
Var 2561, name lcd_ftime, Link FSUIPC_OUT, Offset $7220, Length 2
Var 2562, name lcd_winddir, Link FSUIPC_OUT, Offset $7222, Length 2
Var 2563, name lcd_windspd, Link FSUIPC_OUT, Offset $7224, Length 2
Var 2564, name lcd_qnh, Link FSUIPC_OUT, Offset $7226, Length 2
Var 2565, name lcd_oat, Link FSUIPC_OUT, Offset $7228, Length 2
Var 2566, name lcd_dew, Link FSUIPC_OUT, Offset $7230, Length 2
Var 2567, name lcd_visi, Link FSUIPC_OUT, Offset $7232, Length 2
Var 2568, name lcd_iceup, Link FSUIPC_OUT, Offset $7234, Length 2
Var 2569, name lcd_icelw, Link FSUIPC_OUT, Offset $7236, Length 2
Var 2570, name lcd_icets, Link FSUIPC_OUT, Offset $7238, Length 2
Var 2571, name lcd_icecu, Link FSUIPC_OUT, Offset $7240, Length 2
Var 2572, name lcd_battamps, Link FSUIPC_OUT, Offset $7242, Length 2
Var 2573, name lcd_masstot, Link FSUIPC_OUT, Offset $7244, Length 2
Var 2574, name lcd_fuelmass, Link FSUIPC_OUT, Offset $7246, Length 2

Var 2577, name fsl_winddir, Link FSUIPC_IN, Offset $0e92 , Length 2
 {
   L0 = &fsl_winddir * 360
   L0 = L0 / 65536
   L0 = LIMIT 0 360 0
   &lcd_winddir = L0
 }
Var 2578, name fsl_windspd, Link FSUIPC_IN, Offset $0e90 , Length 2
 {
   L0 = &fsl_windspd
   L0 = LIMIT 0 99 0
   &lcd_windspd = L0
 }
Var 2579, name fsl_qnh, Link FSUIPC_IN, Offset $0f48 , Length 2
 {
   L0 = &fsl_qnh
   L0 = L0 / 16
   L0 = LIMIT 0 9999 0
   &lcd_qnh = L0
 }    
Var 2580, name fsl_oat, Link FSUIPC_IN, Offset $0e8c , Length 2, Type 1
 {
   L0 = &fsl_oat
   L0 = L0 / 256
   L0 = TRUNC L0
   L0 = LIMIT -99 99 0
   &lcd_oat = L0
 }

Var 2581, name fsl_dew, Link FSUIPC_IN, Offset $04c8 , Length 2, Type 1
 {
   L0 = &fsl_dew
   L0 = L0 / 256
   L0 = TRUNC L0
   L0 = LIMIT -99 99 0
   &lcd_dew = L0
 }

Var 2582, name fsl_visi, Link FSUIPC_IN, Offset $0e8a , Length 2
 {
   L0 = &fsl_visi
   L0 = L0 / 100
   L0 = L0 * 1.6093
   L0 = TRUNC L0
   L0 = LIMIT 0 20 0
   &lcd_visi = L0
 }   
Var 2583, name fsl_iceup, Link FSUIPC_IN, Offset $0f7c , Length 2
 {
   &lcd_iceup = &fsl_iceup
 }
Var 2584, name fsl_icelw, Link FSUIPC_IN, Offset $0f82 , Length 2
 {
   &lcd_icelw = &fsl_icelw
 }
Var 2585, name fsl_icets, Link FSUIPC_IN, Offset $0f88 , Length 2
 {
   &lcd_icets = &fsl_icets
 }
Var 2586, name fsl_icecu, Link FSUIPC_IN, Offset $c289 , Length 1
 {
   &lcd_icecu = &fsl_icecu
 }
// Var 2587, name fsl_lff, Link FSUIPC_IN, Offset $ , Length
// Var 2588, name fsl_rff, Link FSUIPC_IN, Offset $ , Length

Var 2589, name fsl_masstot, Link FSUIPC_IN, Offset $30c0 , Length 8, Numbers 0
 {
   L0 = &fsl_masstot * 0.45359
   &lcd_masstot = TRUNC L0
 }


//   2600 GPS remote control

//      * FS GPS Offsets *

Var 2610, Name oi_gps_pow, Link IOCP, Offset 1120, Device 0
Var 2612, Name oi_gps_nea, Link IOCP, Offset 1121, Device 0
Var 2614, Name oi_gps_obs, Link IOCP, Offset 1122, Device 0
Var 2616, Name oi_gps_msg, Link IOCP, Offset 1123, Device 0
Var 2618, Name oi_gps_fpl, Link IOCP, Offset 1124, Device 0
Var 2620, Name oi_gps_nav, Link IOCP, Offset 1125, Device 0
Var 2622, Name oi_gps_ter, Link IOCP, Offset 1126, Device 0
Var 2624, Name oi_gps_pro, Link IOCP, Offset 1127, Device 0
Var 2626, Name oi_gps_set, Link IOCP, Offset 1128, Device 0
Var 2628, Name oi_gps_act, Link IOCP, Offset 1129, Device 0
Var 2630, Name oi_gps_zin, Link IOCP, Offset 1130, Device 0
Var 2632, Name oi_gps_zou, Link IOCP, Offset 1131, Device 0
Var 2634, Name oi_gps_dto, Link IOCP, Offset 1132, Device 0
Var 2636, Name oi_gps_men, Link IOCP, Offset 1133, Device 0
Var 2638, Name oi_gps_clr, Link IOCP, Offset 1134, Device 0
Var 2640, Name oi_gps_ent, Link IOCP, Offset 1135, Device 0
Var 2642, Name oi_gps_sel, Link IOCP, Offset 1136, Device 0
Var 2644, Name oi_gps_gup, Link IOCP, Offset 1137, Device 0
Var 2646, Name oi_gps_gdw, Link IOCP, Offset 1138, Device 0
Var 2648, Name oi_gps_pup, Link IOCP, Offset 1139, Device 0
Var 2650, Name oi_gps_pdw, Link IOCP, Offset 1140, Device 0

Var 2660, name gps_zou, Link IOCARD_SW, Input 253            // GPS zoom
 {
   IF &gps_zou = 1
    {
     &oi_gps_zou = CHANGEBITN 0 &oi_gps_zou
     }
 }
Var 2662, name gps_zin, Link IOCARD_SW, Input 254
 {
   IF &gps_zin = 1
    {
     &oi_gps_zin = CHANGEBITN 0 &oi_gps_zin
     }
 }
Var 2670, name gps_pag, Link IOCARD_ENCODER, Input 282, Aceleration 2, Type 2    // GPS encoder 
 {
   IF &gps_pag > 0
    {
        &oi_gps_pup = CHANGEBITN 0 &oi_gps_pup
     }
   IF &gps_pag < 0
    {
        &oi_gps_pdw = CHANGEBITN 0 &oi_gps_pdw
     }
 }
Var 2672, name gps_grp, Link IOCARD_ENCODER, Input 280, Aceleration 2, Type 2 
 {
   IF &gps_grp > 0
    {
        &oi_gps_gup = CHANGEBITN 0 &oi_gps_gup
     }
   IF &gps_grp < 0
    {
       &oi_gps_gdw = CHANGEBITN 0 &oi_gps_gdw
     }
 }
Var 2680, name gps_dto, Link IOCARD_SW, Input 260            // GPS buttons
 {
   IF &gps_dto = 1
    {
     &oi_gps_dto = CHANGEBITN 0 &oi_gps_dto
     }
 }
Var 2681, name gps_nea, Link IOCARD_SW, Input 252
 {
   IF &gps_nea = 1
    {
     &oi_gps_nea = CHANGEBITN 0 &oi_gps_nea
     }
 }
Var 2682, name gps_obs, Link IOCARD_SW, Input 259
 {
   IF &gps_obs = 1
    {
     &oi_gps_obs = CHANGEBITN 0 &oi_gps_obs
     }
 }
Var 2683, name gps_msg, Link IOCARD_SW, Input 258
 {
   IF &gps_msg = 1
    {
     &oi_gps_msg = CHANGEBITN 0 &oi_gps_msg
     }
 }
Var 2684, name gps_men, Link IOCARD_SW, Input 257
 {
   IF &gps_men = 1
    {
     &oi_gps_men = CHANGEBITN 0 &oi_gps_men
     }
 }
// Var 2685, name gps_cdi, Link IOCARD_SW, Input 287   INACTIV
//  {
//   IF &gps_ = 1
//    {
//     &oi_gps_ = CHANGEBITN 0 &oi_gps_
//     }
// }
Var 2686, name gps_pro, Link IOCARD_SW, Input 286
 {
   IF &gps_pro = 1
    {
     &oi_gps_pro = CHANGEBITN 0 &oi_gps_pro
     }
 }
Var 2687, name gps_fpl, Link IOCARD_SW, Input 279
 {
   IF &gps_fpl = 1
    {
     &oi_gps_fpl = CHANGEBITN 0 &oi_gps_fpl
     }
 }
Var 2688, name gps_ter, Link IOCARD_SW, Input 285
 {
   IF &gps_ter = 1
    {
     &oi_gps_ter = CHANGEBITN 0 &oi_gps_ter
     }
 }

Var 2689, name gps_clr, Link IOCARD_SW, Input 284
 {
   IF &gps_clr = 1
    {
     &oi_gps_clr = CHANGEBITN 0 &oi_gps_clr
     }
 }
Var 2690, name gps_sel, Link IOCARD_SW, Input 256
  {
   IF &gps_sel = 1
    {
     &oi_gps_sel = CHANGEBITN 0 &oi_gps_sel
     }
 }
Var 2691, name gps_ent, Link IOCARD_SW, Input 255
  {
   IF &gps_ent = 1
    {
     &oi_gps_ent = CHANGEBITN 0 &oi_gps_ent
     }
 }



//    2700 TRANPONDER

//      * XPD FS Offsets *

Var 2710, name fs_xpd_bcd, Link FSUIPC_INOUT, Offset $0354, Length 2, VALUE 0
 {
   &fs_xpd = FROMBCD &fs_xpd_bcd
 }
Var 2712, name fs_xpd
 {
   CALL &avionicsys
 }
Var 2714, Name oi_xpd_1000, Link IOCP, Offset 1100, Device 0
Var 2716, Name oi_xpd_100, Link IOCP, Offset 1101, Device 0
Var 2718, Name oi_xpd_10, Link IOCP, Offset 1102, Device 0
Var 2720, Name oi_xpd_1, Link IOCP, Offset 1103, Device 0

//      * IVAO *

Var 2722, name fs_xpd_ivao, Link FSUIPC_INOUT, Offset $7b91, Length 1   //    values: 0=charlie, 1=standby
Var 2724, name fs_xpd_ivao_id, Link FSUIPC_INOUT, Offset $7b93, Length 1

// Var , name fs_com1_ivao, Link FSUIPC_INOUT, Offset $7b94, Length 1
// Var , name fs_com2_ivao, Link FSUIPC_INOUT, Offset $7b98, Length 1

//       * XPD Switches *

Var 2730, name xpd_sb, Link IOCARD_SW, Input 277
 {
   &fs_xpd_ivao = 1
   CALL &avionicsys
 }
Var 2732, name xpd_on, Link IOCARD_SW, Input 278
 {
   &fs_xpd_ivao = 0
   CALL &avionicsys
 }
Var 2734, name xpd_1000, Link IOCARD_SW, Input 273
 {
   IF &xpd_1000 = 1
    {
     &oi_xpd_1000 = CHANGEBITN 0 &oi_xpd_1000
    }
 }
Var 2736, name xpd_100, Link IOCARD_SW, Input 274
 {
   IF &xpd_100 = 1
    {
     &oi_xpd_100 = CHANGEBITN 0 &oi_xpd_100
     }
 }
Var 2738, name xpd_10, Link IOCARD_SW, Input 272
 {
   IF &xpd_10 = 1
    {
     &oi_xpd_10 = CHANGEBITN 0 &oi_xpd_10
     }
 }
Var 2740, name xpd_1, Link IOCARD_SW, Input 271
 {
   IF &xpd_1 = 1
    {
     &oi_xpd_1 = CHANGEBITN 0 &oi_xpd_1
     }
 }

Var 2742, name xpd_vfr, Link IOCARD_SW, Input 275   // set Squawk 7000
 {
   &fs_xpd_bcd = 28672
 }
Var 2744, name xpd_id, Link IOCARD_SW, Input 276
 {
   &fs_xpd_ivao_id = &xpd_id
   
   L0 = &xpd_on * &el_xpd
   L0 = L0 * &xpd_id
   C0 = L0 = 1
   C1 = &fs_avbusvolt > 1700
   IF C0 AND C1
    {
      &sound = 128
    }
 }

//   2800 ADF

//      * FS ADF Offset *

Var 2810, name fs_adf_bcd, Link FSUIPC_IN, Offset $034c, Length 2
 {
   &fs_adf_int = FROMBCD &fs_adf_bcd
 }
Var 2812, name fs_adf_ext, Link FSUIPC_IN, Offset $0356, Length 2
 {
   L0 = TESTBIT &fs_adf_ext 8      // extract ADF 1000th
   IF L0 = 1
    {
      &fs_adf_1 = 1
    }
   ELSE
    {
      &fs_adf_1 = -999999      // turn the display of if zero
    }

   IF &fs_adf_1 = 1
    {
      &fs_adf_dec = &fs_adf_ext - 256      // extract ADF decimals
    }
   ELSE
    {
      &fs_adf_dec = &fs_adf_ext
    }
 }
Var 2814, name fs_adf_1
 {
   CALL &avionicsys
 }
Var 2816, name fs_adf_int
 {
   CALL &avionicsys
 }
Var 2818, name fs_adf_dec
 {
   CALL &avionicsys
 }
Var 2830, Name oi_adf_100, Link IOCP, Offset 1110, Device 0
Var 2832, Name oi_adf_10, Link IOCP, Offset 1111, Device 0
Var 2834, Name oi_adf_1, Link IOCP, Offset 1112, Device 0
Var 2836, Name oi_adf_dec, Link IOCP, Offset 1113, Device 0

//      * ADF Switches *

Var 2850, name adf_100, Link IOCARD_SW, Input 244
 {
   IF &adf_100 = 1
    {
     &oi_adf_100 = CHANGEBITN 0 &oi_adf_100
     }
 }
Var 2852, name adf_10, Link IOCARD_SW, Input 245
 {
   IF &adf_10 = 1
    {
     &oi_adf_10 = CHANGEBITN 0 &oi_adf_10
     }
 }
Var 2854, name adf_1, Link IOCARD_SW, Input 247
 {
   IF &adf_1 = 1
    {
     &oi_adf_1 = CHANGEBITN 0 &oi_adf_1
     }
 }
Var 2856, name adf_dec, Link IOCARD_SW, Input 246
 {
   IF &adf_dec = 1
    {
     &oi_adf_dec = CHANGEBITN 0 &oi_adf_dec
     }
 }

//   2860 EFIS trajectory display

Var 2860, name efis_on,  Link FSUIPC_INOUT, Offset $0e5a, Length 2   // EFIS ON/OFF
Var 2861, name efis_alt, Link FSUIPC_INOUT, Offset $0e5c, Length 2   // display max altitude in feet
Var 2862, name efis_den, Link FSUIPC_INOUT, Offset $0e5e, Length 2   // density 0-2
Var 2863, name efis_rng, Link FSUIPC_INOUT, Offset $0e60, Length 2   // range 0-2
Var 2864, name efis_ini, Link FSUIPC_INOUT, Offset $0e62, Length 2   // 0=norm 1=reset 2=plot
Var 2865, name efis_ils, Link FSUIPC_INOUT, Offset $0e64, Length 2   // 2=vor 4=ils
Var 2866, name efis_n12, Link FSUIPC_INOUT, Offset $0e66, Length 2   // 1=nav1 2=nav2
Var 2867, name efis_dys, Link FSUIPC_INOUT, Offset $0e68, Length 2   // shape 0=rect 1=T 2=bricks



//   2900 RADIO DISPLAYS

Var 2910, name dp_c1sb_1, Link IOCARD_DISPLAY, Digit 138, Numbers 1    // Initial digit 1. Delete if hard wired
Var 2912, name dp_c1sb_int, Link IOCARD_DISPLAY, Digit 136, Numbers 2    // Standby integers
Var 2913, name dp_c1sb_dec, Link IOCARD_DISPLAY, Digit 134, Numbers 2    // Standby decimals
Var 2914, name dp_c1ac_1, Link IOCARD_DISPLAY, Digit 133, Numbers 1    // Initial digit 1. Delete if hard wired
Var 2915, name dp_c1ac, Link IOCARD_DISPLAY, Digit 129, Numbers 4
Var 2920, name dp_c2sb_1, Link IOCARD_DISPLAY, Digit 143, Numbers 1    // Initial digit 1. Delete if hard wired
Var 2922, name dp_c2sb_int, Link IOCARD_DISPLAY, Digit 141, Numbers 2    // Standby integers
Var 2924, name dp_c2sb_dec, Link IOCARD_DISPLAY, Digit 139, Numbers 2    // Standby decimals
Var 2930, name dp_n1sb_1, Link IOCARD_DISPLAY, Digit 149, Numbers 1    // Initial digit 1. Delete if hard wired
Var 2932, name dp_n1sb_int, Link IOCARD_DISPLAY, Digit 147, Numbers 2    // Standby integers
Var 2934, name dp_n1sb_dec, Link IOCARD_DISPLAY, Digit 145, Numbers 2    // Standby decimals
Var 2936, name dp_n1ac_1, Link IOCARD_DISPLAY, Digit 154, Numbers 1    // Initial digit 1. Delete if hard wired
Var 2938, name dp_n1ac, Link IOCARD_DISPLAY, Digit 150, Numbers 4
Var 2940, name dp_n2sb_1, Link IOCARD_DISPLAY, Digit 159, Numbers 1    // Initial digit 1. Delete if hard wired
Var 2942, name dp_n2sb_int, Link IOCARD_DISPLAY, Digit 157, Numbers 2    // Standby integers
Var 2944, name dp_n2sb_dec, Link IOCARD_DISPLAY, Digit 155, Numbers 2    // Standby decimals
Var 2950, name dp_xpd, Link IOCARD_DISPLAY, Digit 25, Numbers 4
Var 2960, name dp_adf_1, Link IOCARD_DISPLAY, Digit 24, Numbers 1
Var 2962, name dp_adf_int, Link IOCARD_DISPLAY, Digit 21, Numbers 3
Var 2964, name dp_adf_dec, Link IOCARD_DISPLAY, Digit 20, Numbers 1

Var 2980, name l_icom1, Link IOCARD_OUT, Output 90
Var 2981, name l_icom2, Link IOCARD_OUT, Output 88
Var 2982, name l_icboth, Link IOCARD_OUT, Output 86
Var 2983, name l_icnav1, Link IOCARD_OUT, Output 84
Var 2984, name l_icnav2, Link IOCARD_OUT, Output 82
Var 2985, name l_icmkr, Link IOCARD_OUT, Output 80
Var 2986, name l_icdme, Link IOCARD_OUT, Output 78
Var 2987, name l_icadf, Link IOCARD_OUT, Output 76
Var 2988, name l_dpcom1, Link IOCARD_OUT, Output 178
Var 2989, name l_dpcom2, Link IOCARD_OUT, Output 179
Var 2990, name l_dpadf, Link IOCARD_OUT, Output 184
Var 2991, name l_xpd_g, Link IOCARD_OUT, Output 181
Var 2992, name l_xpd_y, Link IOCARD_OUT, Output 180
Var 2993, name l_kts, Link IOCARD_OUT, Output 182
Var 2994, name l_mach, Link IOCARD_OUT, Output 177
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: Problème avec le code du selecteur de cap

Messagede FiX » Ven 26 Oct 2012 18:08

Oh my god...
Rien que les radios, ça fait la taille de mon code complet jusqu'à maintenant... peurefrayé

Et sinon,pour que je comprenne tes radios sont comment d'un point de vue hardware?
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Problème avec le code du selecteur de cap

Messagede stevelep » Ven 26 Oct 2012 18:51

Les COM 1 & NAV 1 sont standard avec double encodeur concentrique, freq stand-by et bouton swap

Les COM 2 & NAV 2 idem mais pas de fréq stand-by, on règle directement la fréquence active (pas de swap)

Le XPD a seulement 4 boutons, chaque bouton augmente les unités resp. les dizaines, centaines, milliers.
Il a un off-standby et mode charlie qui commute dans IVAO

L'ADF a aussi de simples boutons pour incrémenter les chiffres

L'ICOM switch les COM 1-2, ecoute les NAV DME, ADF Marker ...

Le GPS programme les bouton du GPS de FS (je l'utilise plus, j'ai un emuteq...)

Le LCD est un module LCD qui m'affiche pleins de donnée avec différentes pages
voltages, ampèrage, paramètres moteurs, météo, nom avion, VOR& ADF noms des stations ... etc
(PS je n'utilise pas la carte LCD OC mais il est branché sur le port parallèle et commandé par
un vieux programme qui marche toujours FSLCD)

EFIS c'est l'affichage par FS de carrés de trajectoire pour l'atterrissage

Voila

BOB

PS J'ai aussi un code radio pour utiliser un seul encoder avec switch, si jamais
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: Problème avec le code du selecteur de cap

Messagede FiX » Ven 26 Oct 2012 22:48

Merci!
Pour le code avec switch, oui c'est exactement ça que je dois faire.
J'ai 4 encodeurs avec switch (NAV1/2 COM1/2), le but étant de régler les unités, dizaine, centaines avec l'encodeur seul et de régler les décimales avec switch enfoncé + encodeur.
Donc si t'as ça, je veux bien voir à quoi ça ressemble.
i7 2600k/P8P67pro/16Go PC3 17000/RX 580/SSD 250 Go et 120Go/W10x64
https://www.facebook.com/cessna150.sim
Avatar de l’utilisateur
FiX
 
Messages: 4664
Inscription: 8/01/10
Localisation: Reims/Maubeuge

Re: Problème avec le code du selecteur de cap

Messagede stevelep » Sam 27 Oct 2012 01:22

Mon code fonctionne pas comme ça.
Quand tu presses une fois le switch ça sélectionne les entiers 000.-- (et ça éteint les décimales)
quand tu represses ça selectionne les décimales et quand tu represses ça affiche tout.

Je trouve pas pratique de devoir appuyer sur l'encodeur et le tourner en même temps ...

BOB
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Précédente

Retourner vers Programmation Sioc





Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 51 invités