Restrictions au sein de la variable INIT ?

Questions de programmation / Offset FSUIPC et IOCP

Restrictions au sein de la variable INIT ?

Messagede A320 hérétique » Sam 9 Fév 2013 19:39

Bonjour,

je suis en train de programmer mon panel RADIO, toute la partie interaction avec les poussoirs, inter, encodeurs et afficheurs fonctionne, j'écris correctement les fréquences dans FSX via FSUIPC, et je lis bien les fréquences FSX via FSUIPC lorsque je suis dans le corps de mon programme.

En revanche, je n'arrive pas à lire la fréquence de NAV1 STDBY de FSX si je le fais dans la variable INIT (var 0000) : je récupère 0000 ! alors que toutes les autres initialisations que j'y ai placées fonctionnent.

Ma variable est déclarée ainsi :
Var 2001, name VORSTBFR_FS, Link FSUIPC_INOUT, Offset $311E, Length 2 // freq stby NAV1

et elle fonctionne très bien dans le reste du pgm ...

Je suis néophite en SIOC, quelle grosse annerie fais-je ?

Merçi pour votre aide, Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 4070 Ti Super sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3360
Inscription: 2/09/12
Localisation: Pornic

Re: Restrictions au sein de la variable INIT ?

Messagede stevelep » Dim 10 Fév 2013 12:48

Tu peux poster le txt de ta variable init ?

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

Re: Restrictions au sein de la variable INIT ?

Messagede chtipilot » Dim 10 Fév 2013 13:03

A320 hérétique a écrit:
...Var 2001, name VORSTBFR_FS, Link FSUIPC_INOUT, Offset $311E, Length 2 // freq stby NAV1



Bonjour Michel,

2 choses :
-1- séparer les fonctions de lecture/écriture avec des variables différentes évite que la variable soit modifiée intempestivement, exemple :

pour lire la fréquence : Var 2001, name FSO_VORSTBFR, Link FSUIPC_OUT, Offset $311E, Length 2 // freq stby_read NAV1
pour écrire la fréquence : Var 2002, name FSI_VORSTBFR, Link FSUIPC_IN, Offset $311E, Length 2 // freq stby_write NAV1

-2- l''appel d'un sub dans la variable init est "élégant"
l'exemple ci-dessous montre l'affectation des fréquences au lancement du simu (en autre...)

Code: Tout sélectionner

Var 0000, Value 0
{
  CALL &init_NAV
}
....
....
Var 0380, name init_NAV, Link SUBRUTINE
{
  &DP_NAV = 1         // Decimal Point Digit
  &Dis_NAV_A1 = 1         // Display Active  = 1xx.xx
  &DIS_NAV_S1 = 1         // Display Standby = 1xx.xx
  &mode_NAV = 0         // mode 0
  &Sub_NAVclignot = 0         // 0=Allumage 1=Extinction
  &Sub_NAVclignot = TIMER 999 ,0 ,30     // Timer 0 à 999 incrément 0   
  &NAV1_Active = 1135   
  &NAV1_Stby = 1300   
  &NAV2_Active = 1060   
  &NAV2_Stby = 1265   
  &NAV_Active = &NAV1_Active   
  &NAV_Stby = &NAV1_Stby   
  &NAV_Stby_ent = 13   
  &NAV_Stby_dec = 0   
  CALL &WriteFS_NAV // mettre à jour fréquences dans FS
  &NAV_Memo = 1   
  &Scan_Multi_NAV = TIMER 999 ,0 ,30
}
Chtipilot Image

Image
Avatar de l’utilisateur
chtipilot
 
Messages: 371
Inscription: 2/04/11
Localisation: Lille (Nord)

Re: Restrictions au sein de la variable INIT ?

Messagede A320 hérétique » Dim 10 Fév 2013 13:36

Bob, voiçi le bout de code :
Code: Tout sélectionner
Var 0000, name INIT, Value 0   
{
&NAVSEL = 0            // extinction led NAV
&LED1_LED = &NAVSEL
&VORSEL = 0            // extinction led VOR
&LED2_LED = &VORSEL   
CALL &GETFRSTB            // init afficheurs avec freq NAV1 stdby FSX
CALL &AFFFR         
}

Code: Tout sélectionner
Var 9803, name GETFRSTB, Link subrutine
{
L0 = &VORSTBFR_FS      // récupère freq COM1 stdby FSX
L0 = FROMBCD L0
L1 = L0 / 100
L1 = TRUNC L1
&VORFRHI = L1 + 100
L1 = L1 * 100
L2 = L0 - L1
L2 = L2 * 10
&VORFRLO = L2
}


La séquence
CALL &GETFRSTB // init afficheurs avec freq NAV1 stdby FSX
CALL &AFFFR
fonctionne bien hors de la variable 0 !


Chtipilot, je vais essayer de séparer les fonctions in et out.

Merçi pour votre aide.
Cordialement, Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 4070 Ti Super sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3360
Inscription: 2/09/12
Localisation: Pornic

Re: Restrictions au sein de la variable INIT ?

Messagede stevelep » Dim 10 Fév 2013 16:19

Essaye de remplacer le CALL &GETFRSTB par &GETFRSTB = 1
ou même &GETFRSTB = DELAY 1 10
ou sinon &GETFRSTB = TOGGLE 1

C'est juste une idée sans garantie etonneyeux

Ca devrait aussi lancer le code de la variable

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

Re: Restrictions au sein de la variable INIT ?

Messagede A320 hérétique » Dim 10 Fév 2013 17:59

Chtipilot, j'ai différencié IN et OUT, pas de changement !

Bob, aucune des formules n'amène de changement ; mais en fait le GETFRSTB est bien lancé, c'est vraiment l'accès à la variable VORSTBFR_FSIN qui ne fonctionne pas dans la var 0 : j'ai supprimé le GETFRSTB et l'ai simplement remplacé par la lecture de VORSTBFR, surveillance avec IOCPconsole, reste à 0 !!!

Pour confirmer, voilà un petit bout de code qui met plus clairement en évidence le phénomène :
FSX et SIOC démarrés
1) Lecture des offsets au sein de la var 0, et écriture dans varaible xxxx_INIT
2) Appui bouton poussoir pour déclencher une seconde lecture, et écriture dans variable xxxx_NEXT
3) Lancement IOCPconsole, connection :
Les variables xxxx_INIT sont à 0
Les variables xxxx_NEXT sont bien renseignées

Où est le bug ?

Au détours, je n'arrive pas à trouver les offsets des freq ADF stdby, qqu'un pourrait-il m'aiguiller ?


Code: Tout sélectionner
// *****************************************************************************
// * Simu MC
// *   Test lecture offset FSUIPC au sein de la variable 0
// *****************************************************************************
// * FileName : MC_boitier_test_3.txt
// * Date : 10/02/2013
//
// Log :
// 10/02/2013:


//
// *******************************
// DEFINITIONS
// *******************************
// Variables FSUIPC
Var 10, name COMACTFR_FS, Link FSUIPC_IN, Offset $0350, Length 2 // freq active COM1   
Var 11, name COMSTBFR_FS, Link FSUIPC_IN, Offset $311E, Length 2 // freq stdby COM1
Var 12, name NAVACTFR_FS, Link FSUIPC_IN, Offset $0350, Length 2 // freq active NAV1   
Var 13, name NAVSTBFR_FS, Link FSUIPC_IN, Offset $311E, Length 2 // freq stdby NAV1
Var 14, name ADFACTFR1_FS, Link FSUIPC_IN, Offset $034C, Length 2 // freq active ADF High
Var 15, name ADFACTFR2_FS, Link FSUIPC_IN, Offset $0351, Length 2 // freq active ADF High
// Var 16, name ADFSTBFR1_FS, Link FSUIPC_IN, Offset $????, Length 2 // freq stdby ADF High
// Var 17, name ADFSTBFR2_FS, Link FSUIPC_IN, Offset $????, Length 2 // freq stdby ADF High

// Variables d'état
Var 20, name COMACTFR_INIT
Var 21, name COMSTBFR_INIT
Var 22, name NAVACTFR_INIT
Var 23, name NAVSTBFR_INIT
Var 24, name ADFACTFR1_INIT
Var 25, name ADFACTFR2_INIT
// Var 26, name ADFSTBFR1_INIT
// Var 27, name ADFSTBFR2_INIT

Var 30, name COMACTFR_NEXT
Var 31, name COMSTBFR_NEXT
Var 32, name NAVACTFR_NEXT
Var 33, name NAVSTBFR_NEXT
Var 34, name ADFACTFR1_NEXT
Var 35, name ADFACTFR2_NEXT
// Var 36, name ADFSTBFR1_NEXT
// Var 37, name ADFSTBFR2_NEXT

// *******************************
// INIT
// *******************************
Var 0000, name INIT, value 0
{
&COMACTFR_INIT = &COMACTFR_FS
&COMSTBFR_INIT = &COMSTBFR_FS
&NAVACTFR_INIT = &NAVACTFR_FS
&NAVSTBFR_INIT = &NAVSTBFR_FS
&ADFACTFR1_INIT = &ADFACTFR1_FS
&ADFACTFR2_INIT = &ADFACTFR2_FS
// &ADFSTBFR1_INIT = &ADFSTBFR1_FS
// &ADFSTBFR2_INIT = &ADFSTBFR2_FS
}

// *******************************
// POURSUITE DU CODE
// *******************************
Var 0001, name NEXT, Link IOCARD_SW, Input 0, Type P
{
&COMACTFR_NEXT = &COMACTFR_FS
&COMSTBFR_NEXT = &COMSTBFR_FS
&NAVACTFR_NEXT = &NAVACTFR_FS
&NAVSTBFR_NEXT = &NAVSTBFR_FS
&ADFACTFR1_NEXT = &ADFACTFR1_FS
&ADFACTFR2_NEXT = &ADFACTFR2_FS
// &ADFSTBFR1_NEXT = &ADFSTBFR1_FS
// &ADFSTBFR2_NEXT = &ADFSTBFR2_FS
}



Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 4070 Ti Super sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3360
Inscription: 2/09/12
Localisation: Pornic

Re: Restrictions au sein de la variable INIT ?

Messagede chtipilot » Mar 12 Fév 2013 06:29

Salut Michel,

Heu ?... gratgrat juste un truc.... gratgrat , tes offsets pour COM et NAV sont identiques donc problème ! tapebaton

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,
Chtipilot Image

Image
Avatar de l’utilisateur
chtipilot
 
Messages: 371
Inscription: 2/04/11
Localisation: Lille (Nord)

Re: Restrictions au sein de la variable INIT ?

Messagede A320 hérétique » Mar 12 Fév 2013 10:11

Bonjour Chtipilot, merçi de t'être penché sur mon pb !

Dans le genre copier-coller foireux, je me pose vraiment là - j'avais rectifié la freq ADF, mais le doublon VOR/NAV ...

Cela étant, une fois rectifié, cela ne change rien, vois ci dessous le code rectifié, et ce que ça donne dans IOCP_console : d'abord la vision directe sur les offsets, puis la lecture dans la var 0, puis la même lecture hors de la var 0 ...

Pas bien grave pour mon simu, je peux faire autrement, mais je suis quand même bien intrigué.
Code: Tout sélectionner
// *****************************************************************************
// * Simu MC
// *   Test lecture offset FSUIPC au sein de la variable 0
// *****************************************************************************
// * FileName : MC_boitier_test_3.txt
// * Date : 10/02/2013
//
// Log :
// 12/02/2013 : correction freq COM et ADF, modif numérotation var, supp ADF stdby


//
// *******************************
// DEFINITIONS
// *******************************
// Variables FSUIPC
Var 10, name COMACTFR_FS, Link FSUIPC_IN, Offset $034E, Length 2 // freq active COM1   
Var 11, name COMSTBFR_FS, Link FSUIPC_IN, Offset $311A, Length 2 // freq stdby COM1
Var 12, name NAVACTFR_FS, Link FSUIPC_IN, Offset $0350, Length 2 // freq active NAV1   
Var 13, name NAVSTBFR_FS, Link FSUIPC_IN, Offset $311E, Length 2 // freq stdby NAV1
Var 14, name ADFACTFR1_FS, Link FSUIPC_IN, Offset $034C, Length 2 // freq active ADF High
Var 15, name ADFACTFR2_FS, Link FSUIPC_IN, Offset $0356, Length 2 // freq active ADF High

// Variables d'état
Var 17, name COMACTFR_INIT
Var 18, name COMSTBFR_INIT
Var 19, name NAVACTFR_INIT
Var 20, name NAVSTBFR_INIT
Var 21, name ADFACTFR1_INIT
Var 22, name ADFACTFR2_INIT

Var 24, name COMACTFR_NEXT
Var 25, name COMSTBFR_NEXT
Var 26, name NAVACTFR_NEXT
Var 27, name NAVSTBFR_NEXT
Var 28, name ADFACTFR1_NEXT
Var 29, name ADFACTFR2_NEXT

// *******************************
// INIT
// *******************************
Var 0000, name INIT, value 0
{
&COMACTFR_INIT = &COMACTFR_FS
&COMSTBFR_INIT = &COMSTBFR_FS
&NAVACTFR_INIT = &NAVACTFR_FS
&NAVSTBFR_INIT = &NAVSTBFR_FS
&ADFACTFR1_INIT = &ADFACTFR1_FS
&ADFACTFR2_INIT = &ADFACTFR2_FS
}

// *******************************
// POURSUITE DU CODE
// *******************************
Var 0001, name NEXT, Link IOCARD_SW, Input 0, Type P
{
&COMACTFR_NEXT = &COMACTFR_FS
&COMSTBFR_NEXT = &COMSTBFR_FS
&NAVACTFR_NEXT = &NAVACTFR_FS
&NAVSTBFR_NEXT = &NAVSTBFR_FS
&ADFACTFR1_NEXT = &ADFACTFR1_FS
&ADFACTFR2_NEXT = &ADFACTFR2_FS
}

Image

Pour ce qui concerne la freq ADF stdby, pas de pb, de toutes les façons je programme façon "objet", et l'état de mon panel est donc complètement décrit avec des variables internes.

Cordialement, Michel
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 4070 Ti Super sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3360
Inscription: 2/09/12
Localisation: Pornic

Re: Restrictions au sein de la variable INIT ?

Messagede chtipilot » Mer 13 Fév 2013 10:28

Bonjour Michel,

Bon encore un truc...la variable 0000, name INIT ... il faut la mettre en PREMIERE LIGNE du script comme de la chaire à canon murrouge !! car lors de la compilation, SIOC renumérote ton script et donc Var 0000 se retrouve on ne sait où ? ecroulerire

Aller encore un effort sourirebis
Chtipilot Image

Image
Avatar de l’utilisateur
chtipilot
 
Messages: 371
Inscription: 2/04/11
Localisation: Lille (Nord)

Re: Restrictions au sein de la variable INIT ?

Messagede A320 hérétique » Mer 13 Fév 2013 12:36

Bonjour Chtipilot,

voilà le nouveau code, ça ne change rien ! bizarre, bizarre ...

Cordialement, Michel

Code: Tout sélectionner
// *****************************************************************************
// * Simu MC
// *   Test lecture offset FSUIPC au sein de la variable 0
// *****************************************************************************
// * FileName : MC_boitier_test_3.txt
// * Date : 10/02/2013
//
// * Log :
// 12/02/2013 : correction freq COM et ADF, modif numérotation var, supp ADF stdby
// 13/02/2013 : Var 0000 en toute première ligne

// *******************************
// INIT
// *******************************
Var 0000, name INIT, value 0
{
&COMACTFR_INIT = &COMACTFR_FS
&COMSTBFR_INIT = &COMSTBFR_FS
&NAVACTFR_INIT = &NAVACTFR_FS
&NAVSTBFR_INIT = &NAVSTBFR_FS
&ADFACTFR1_INIT = &ADFACTFR1_FS
&ADFACTFR2_INIT = &ADFACTFR2_FS
}

// *******************************
// DEFINITIONS
// *******************************
// Variables FSUIPC
Var 10, name COMACTFR_FS, Link FSUIPC_IN, Offset $034E, Length 2 // freq active COM1   
Var 11, name COMSTBFR_FS, Link FSUIPC_IN, Offset $311A, Length 2 // freq stdby COM1
Var 12, name NAVACTFR_FS, Link FSUIPC_IN, Offset $0350, Length 2 // freq active NAV1   
Var 13, name NAVSTBFR_FS, Link FSUIPC_IN, Offset $311E, Length 2 // freq stdby NAV1
Var 14, name ADFACTFR1_FS, Link FSUIPC_IN, Offset $034C, Length 2 // freq active ADF High
Var 15, name ADFACTFR2_FS, Link FSUIPC_IN, Offset $0356, Length 2 // freq active ADF High

// Variables d'état
Var 17, name COMACTFR_INIT
Var 18, name COMSTBFR_INIT
Var 19, name NAVACTFR_INIT
Var 20, name NAVSTBFR_INIT
Var 21, name ADFACTFR1_INIT
Var 22, name ADFACTFR2_INIT

Var 24, name COMACTFR_NEXT
Var 25, name COMSTBFR_NEXT
Var 26, name NAVACTFR_NEXT
Var 27, name NAVSTBFR_NEXT
Var 28, name ADFACTFR1_NEXT
Var 29, name ADFACTFR2_NEXT

// *******************************
// POURSUITE DU CODE
// *******************************
Var 0001, name NEXT, Link IOCARD_SW, Input 0, Type P
{
&COMACTFR_NEXT = &COMACTFR_FS
&COMSTBFR_NEXT = &COMSTBFR_FS
&NAVACTFR_NEXT = &NAVACTFR_FS
&NAVSTBFR_NEXT = &NAVSTBFR_FS
&ADFACTFR1_NEXT = &ADFACTFR1_FS
&ADFACTFR2_NEXT = &ADFACTFR2_FS
}
http://www.myA320sim.com
Simu mixte P3D/FS2020, serveur P3Dv4/A320 FMGS (7700k et GTX 1070 sous W10 64), client P3Dv4/FS2020 (i9-12900K et RTX 4070 Ti Super sous W10 64), 3 vdp Optoma GT1080E, client A320 FMGS (2600k sous W10 64).
Avatar de l’utilisateur
A320 hérétique
 
Messages: 3360
Inscription: 2/09/12
Localisation: Pornic

Suivante

Retourner vers Programmation Sioc





Qui est en ligne

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