je mets à disposition ma programmation SIOC pour un baron 58, je l'ai pas encore fini mais l'essentiel y est déjà !
- Code: Tout sélectionner
- // *****************************************************************************************
 // * Config_SIOC ver 3.2 - By Salmon Christophe - chr69290@hotmail.com
 // *****************************************************************************************
 // * Date : 01/05/2010
 // * Aircraft : Baron 58 modifié ( Flight Simulator 2004 - FS9 )
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ***** File : Swtich / Contact NAV / GPS *****
 Var 2413, name fs_nav_gps, Link FSUIPC_INOUT, Offset $132C, Length 4 // NAV / GPS 1=NAV 0=GPS
 {
 &fs_nav_gps = &sw_nav_gps
 }
 Var 2412, name sw_nav_gps, Link IOCARD_SW, Input 06 // SW NAV / GPS
 {
 &fs_nav_gps = &sw_nav_gps
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ***** File : Swtich / Master Baterrie *****
 Var 2400, name SW_batt, Link IOCARD_SW, Input 15 // Master Battery
 {
 &fs_batt = &SW_batt
 }
 Var 2410, name fs_batt, Link FSUIPC_INOUT, Offset $281C, Length 1 // Batterie 0=OFF 1=ON
 {
 &fs_batt = &SW_batt
 }
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ***** File : Encoder CTS 288 / HDG Bug *****
 Var 1310, Link IOCARD_SW, Input 54 // pusch Heading Bug
 Var 1320, Link IOCARD_ENCODER, Input 61, Aceleration 1, Type 2
 {
 IF V1310 = 1
 {
 IF V1320 > 0 // turn right
 {
 V1350 = V1350 - 1820
 IF V1350 > 65536
 {
 V1350 = V1350 - 65536
 }
 }
 IF V1320 < 0 // turn left
 {
 V1350 = V1350 + 1820
 IF V1350 < 1
 {
 V1350 = V1350 + 65536
 }
 }
 }
 ELSE
 {
 IF V1320 > 0 // turn right
 {
 V1350 = V1350 - 182
 IF V1350 > 65536
 {
 V1350 = 1
 }
 }
 IF V1320 < 0 // turn left
 {
 V1350 = V1350 + 182
 IF V1350 < 1
 {
 V1350 = 65536
 }
 }
 }
 }
 Var 1350, Link FSUIPC_OUT, Offset $07CC, Length 2 // Heading Bug
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ***** File : Switch / Parking Brake *****
 Var 2510, name fs_brake, Link FSUIPC_INOUT, Offset $0BC8, Length 2 // Brake 0=OFF 1=ON
 {
 &fs_brake = &sw_brake
 }
 Var 2500, name sw_brake, Link IOCARD_SW, Input 24 // parking brake
 {
 &fs_brake = &sw_brake
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ***** File : Switch / commande de train d'atterrissage et ses voyants 3verts + In trans *****
 Var 3000 // initialisation du train
 {
 V3001 = 16383
 }
 Var 3001, Link FSUIPC_INOUT, Offset $0BE8, Length 4 // Control train d'atterrissage, 0-16383
 Var 3002, Link IOCARD_OUT, Output 17 // LED rouge train en transit
 Var 3004, Link IOCARD_OUT, Output 20 // train avant sorti
 Var 3003, Link IOCARD_OUT, Output 19 // train droit sorti
 Var 3005, Link IOCARD_OUT, Output 18 // train gauche sorti
 Var 3006, Link IOCARD_SW, Input 35 // inter manette train
 {
 IF V3006 = 1
 {
 V3001 = 16383
 }
 ELSE
 {
 V3001 = 0
 }
 }
 Var 3010, Link FSUIPC_IN, Offset $0BEC, Length 4 // train avant
 {
 IF V3010 = 16383
 {
 V3003 = 1
 V3002 = 0
 }
 ELSE
 {
 IF V3010 >= 1
 {
 V3003 = 0
 V3002 = 1
 }
 ELSE
 {
 IF V3010 = 0
 {
 V3003 = 0
 V3002 = 0
 }
 }
 }
 }
 Var 3020, Link FSUIPC_IN, Offset $0BF0, Length 4 // train droit
 {
 IF V3020 = 16383
 {
 V3004 = DELAY 1 ,50
 V3002 = 0
 }
 ELSE
 {
 IF V3020 >= 1
 {
 V3004 = DELAY 0 ,30
 V3002 = 1
 }
 ELSE
 {
 IF V3020 = 0
 {
 V3004 = DELAY 0 ,30
 V3002 = 0
 }
 }
 }
 }
 Var 3030, Link FSUIPC_IN, Offset $0BF4, Length 4 // train gauche
 {
 IF V3030 = 16383
 {
 V3005 = DELAY 1 ,50
 V3002 = 0
 }
 ELSE
 {
 IF V3030 >= 1
 {
 V3005 = DELAY 0 ,30
 V3002 = 1
 }
 ELSE
 {
 IF V3030 = 0
 {
 V3005 = DELAY 0 ,30
 V3002 = 0
 }
 }
 }
 }
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ****** File : Switch / audio ( identification des moyens radio ) *****
 Var 0535, Link IOCARD_OUT, Output 21 // NAV1 Audio
 Var 0536, Link IOCARD_OUT, Output 20 // NAV2 Audio
 Var 0537, Link IOCARD_OUT, Output 19 // MKR Audio
 Var 0538, Link IOCARD_OUT, Output 18 // ADF Audio
 Var 0579, Link FSUIPC_IN, Offset $3122, Length 1 // Radio Audio Bytes
 {
 V0535 = TESTBIT V0579 ,4 // NAV1
 V0536 = TESTBIT V0579 ,3 // NAV2
 V0537 = TESTBIT V0579 ,2 // MRKR
 V0538 = TESTBIT V0579 ,0 // ADF
 }
 Var 0562, Link FSUIPC_OUT, Offset $3122, Length 1 // Radio Audio Bytes
 Var 0565, Link IOCARD_SW, Input 19, // NAV1 Audio
 {
 V0562 = CHANGEBIT 4 ,V0565
 }
 Var 0063, Link IOCARD_SW, Input 20, // NAV2 Audio
 {
 V0562 = CHANGEBIT 3 ,V0063
 }
 Var 0564, Link IOCARD_SW, Input 26, // MKR Audio
 {
 V0562 = CHANGEBIT 2 ,V0564
 }
 Var 0065, Link IOCARD_SW, Input 22, // ADF Audio
 {
 V0562 = CHANGEBIT 0 ,V0065
 }
 // penser à coupler l'indent DME reste à faire
 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ****** File : Encoder CTS 288 / Bug Alti ( réglage du QNH / 1013 sur le contact ) *****
 //Var 1001, Link IOCARD_SW, Input 59 // pusch
 // réglage du 1013 reste à faire
 Var 1002, Link IOCARD_ENCODER, Input 55, Aceleration 1, Type 2 // ENCODER
 {
 IF V1002 > 0 // turn right
 {
 V1005 = V1005 + 6
 }
 IF V1002 < 0 // turn left
 {
 V1005 = V1005 - 6
 }
 }
 Var 1005, Link FSUIPC_INOUT, Offset $0330, Length 2 // Pression atmosphèrique * 16
 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ****** File:Switch / Panel, STBR, BCN, Nav, Taxi, Landing Light *****
 Var 2200, Link IOCARD_SW, Input 09 // landing light
 {
 V2210 = CHANGEBIT 2, V2200
 }
 Var 2201, Link IOCARD_SW, Input 17 // nav light
 {
 V2210 = CHANGEBIT 0, V2201
 }
 Var 2202, Link IOCARD_SW, Input 16 // taxi light
 {
 V2210 = CHANGEBIT 3, V2202
 }
 Var 2203, Link IOCARD_SW, Input 12 // BCN
 {
 V2210 = CHANGEBIT 1, V2203
 }
 Var 2204, Link IOCARD_SW, Input 13 // STBR
 {
 V2210 = CHANGEBIT 4, V2204
 }
 Var 2205, Link IOCARD_SW, Input 11 // panel
 {
 V2210 = CHANGEBIT 5, V2205
 }
 Var 2210, Link FSUIPC_INOUT, Offset $0D0C, Length 2 // Control des Lights
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ***** File : Encoder CTS 288 / OBS NAV 2 *****
 Var 5201, Link IOCARD_SW, Input 49 // pusch
 Var 5202, Link IOCARD_ENCODER, Input 46, Aceleration 1, Type 2
 {
 IF V5201 = 1
 {
 IF V5202 > 0 // turn right
 {
 V5205 = V5205 + 10
 IF V5205 > 360
 {
 V5205 = 1
 }
 }
 IF V5202 < 0 // turn left
 {
 V5205 = V5205 - 10
 IF V5205 < 1
 {
 V5205 = 360
 }
 }
 }
 ELSE
 {
 IF V5202 > 0 // turn right
 {
 V5205 = V5205 + 1
 IF V5205 > 360
 {
 V5205 = 1
 }
 }
 IF V5202 < 0 // turn left
 {
 V5205 = V5205 - 1
 IF V5205 < 1
 {
 V5205 = 360
 }
 }
 }
 }
 Var 5205, Link FSUIPC_INOUT, Offset $0C5E, Length 2 // OBS NAV2, GRADU 0-359
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ***** File : Encoder CTS 288 / CRS NAV 1 *****
 Var 1301, Link IOCARD_SW, Input 60 // pusch
 Var 1302, Link IOCARD_ENCODER, Input 57, Aceleration 1, Type 2
 {
 IF V1301 = 1
 {
 IF V1302 > 0 // turn right
 {
 V1300 = V1300 + 10
 IF V1300 > 360
 {
 V1300 = 1
 }
 }
 IF V1302 < 0 // turn left
 {
 V1300 = V1300 - 10
 IF V1300 < 1
 {
 V1300 = 360
 }
 }
 }
 ELSE
 {
 IF V1302 > 0 // turn right
 {
 V1300 = V1300 + 1
 IF V1300 > 360
 {
 V1300 = 1
 }
 }
 IF V1302 < 0 // turn left
 {
 V1300 = V1300 - 1
 IF V1300 < 1
 {
 V1300 = 360
 }
 }
 }
 }
 Var 1300, Link FSUIPC_INOUT, Offset $0C4E, Length 2 // CRS NAV1, GRADU 0-359
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ****** File:Switch / icing pitot *****
 Var 2311, name fs_pitot, Link FSUIPC_INOUT, Offset $029C, Length 1 // TUBO PITOT
 {
 &fs_pitot = &sw_pitot
 }
 Var 2301, name sw_pitot, Link IOCARD_SW, Input 04 // pitot heat
 {
 &fs_pitot = &sw_pitot
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ***** File : commande des Volets et ses voyants *****
 Var 0400, name fs_flaps, Link FSUIPC_INOUT, Offset $0BDC, Length 4 // position des volets 0 - 16383
 {
 CALL &init_flaps
 CALL &calc_led_flaps
 }
 Var 0401, name init_flaps, Link SUBRUTINE // init volets
 {
 IF &sw_flaps_up = 1
 {
 &fs_flaps = 0
 }
 ELSE
 {
 IF &sw_flaps_down = 1
 {
 &fs_flaps = 16383
 }
 ELSE
 {
 &fs_flaps = 8191
 }
 }
 }
 Var 0402, name led_trans_flap, Link IOCARD_OUT, Output 13 // Led rouge transit volets
 Var 0403, name led_flaps_APH, Link IOCARD_OUT, Output 12 // Led voelts APP 10°
 Var 0404, name led_flaps_down, Link IOCARD_OUT, Output 11 // Led volets Full 20°
 Var 0406, name sw_flaps_up, Link IOCARD_SW, Input 28 // Inter volets UP
 {
 CALL &init_flaps
 }
 Var 0407, name sw_flaps_down, Link IOCARD_SW, Input 31 // Inter volets Bas
 {
 CALL &init_flaps
 }
 Var 0410, name fs_pos_flaps, Link FSUIPC_IN, Offset $0BE0, Length 4 // position volets 0 - 16383
 {
 CALL &calc_led_flaps
 }
 Var 0430, name calc_led_flaps, Link SUBRUTINE // gère les leds des volets
 {
 IF &fs_pos_flaps = 0 // position volet up
 {
 V0402 = 0 // led rouge
 V0403 = 0 // led app
 V0404 = 0 // led full
 }
 ELSE
 {
 IF &fs_pos_flaps = 16383 // position volet full
 {
 V0402 = 0 // led rouge
 V0403 = 0 // led app
 V0404 = 1 // led full
 }
 ELSE
 {
 IF &fs_pos_flaps = 8191 // position volet App
 {
 V0402 = 0 // led rouge
 V0403 = 1 // led app
 V0404 = 0 // led full
 }
 ELSE
 {
 V0402 = 1 // led rouge
 V0403 = 0 // led app
 V0404 = 0 // led full
 }
 }
 }
 }
 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 // ***** File : voyant markers ******
 Var 1400, Link FSUIPC_INOUT, Offset $0BB0, Length 2 // Commande Outer Marker
 {
 IF V1400 = 1
 {
 V1405 = 1 // OM
 }
 ELSE
 {
 V1405 = 0
 }
 }
 Var 1405, Link IOCARD_OUT, Output 14 // LED Outer Marker
 
 Var 1410, Link FSUIPC_IN, Offset $0BAE, Length 2 // Commande MIDDLE Marker
 {
 IF V1410 = 1
 {
 V1415 = 1 // MM
 }
 ELSE
 {
 V1415 = 0
 }
 }
 Var 1415, Link IOCARD_OUT, Output 15 // LED Middle Marker
 
 Var 1420, Link FSUIPC_IN, Offset $0BAC, Length 2 // Commande INNER Marker
 {
 IF V1420 = 1
 {
 V1425 = 1 // IN
 }
 ELSE
 {
 V1425 = 0
 }
 }
 Var 1425, Link IOCARD_OUT, Output 16 // LED Inner Marker
Bon travail !
Christophe


 
 

 
  Bon c'est sur qu'on doit pouvoir faire mieu en améliorant, mais en tout cas ça marche
  Bon c'est sur qu'on doit pouvoir faire mieu en améliorant, mais en tout cas ça marche   
 
 
   
  
 
  
   
 