OFFSET RADIO

Questions de programmation / Offset FSUIPC et IOCP

OFFSET RADIO

Messagede nuno14 » Dim 13 Fév 2011 23:41

J'ai ecrit le script ci-dessous mais quand je passe de COM1 à COM2 ou vice et versa le changement ne s'effectue pas dans FSX. Par contre si j'effectue le changement manuellement sur FSX ça fonctionne. Existe-t-il un offset pour effectuer ce changement.

merci affiche

Code: Tout sélectionner


// *****************************************************************************
// * Config_SIOC ver 3.5   -     By Manolo Vélez    -    http://www.opencockpits.com
// *****************************************************************************
// * FileName : com-1.txt
// * Date : 13/02/2011



Var 1009, name FS_C1_SB_BCD, Link FSUIPC_INOUT, Offset $311A, Length 2     // FS COM1 standby frequency in BCD format

Var 1010, name FS_C1_ACT_BCD, Link FSUIPC_IN, Offset $034E, Length 2     // FS COM1 active frequency in BCD format
{
  L0 = FROMBCD &FS_C1_ACT_BCD     // Update C1 active freq display (4 digits)
  &DISP_ACTIVE = L0 + 10000     // plus fixed digit 1
  CALL &C1_LH_ROT_VAL     // Align rotary with new C1 SB integer val
  CALL &C1_RH_ROT_VAL     // Align rotary with new C1 SB decimal val
  CALL &C1_UPDATE_LHS
  CALL &C1_UPDATE_RHS
}

Var 1011, name FS_RADIO_SWAP, Link FSUIPC_OUT, Offset $3123, Length 1     // FS Radio active standby swap

Var 1017, name FS_C2_SB_BCD, Link FSUIPC_INOUT, Offset $311C, Length 2     // FS COM 2 standby frequency in BCD format

Var 1018, name FS_C2_ACT_BCD, Link FSUIPC_IN, Offset $3118, Length 2     // FS COM2 active frequency in BCD format
{
  L0 = FROMBCD &FS_C2_ACT_BCD
  &DISP_ACTIVE = L0 + 10000     // plus fixed digit 1
  CALL &C2_LH_ROT_VAL     // Align rotary with new C2 SB integer val
  CALL &C2_RH_ROT_VAL     // Align rotary with new C2 SB decimal val
  CALL &C2_UPDATE_LHS
  CALL &C2_UPDATE_RHS
}

Var 1300, name C1_LH_ROT_VAL, Link SUBRUTINE     // Aligns LH rotary ref with COM1 SB freq
{
  L0 = FROMBCD &FS_C1_SB_BCD
  L1 = L0 / 100
  &C1_LHS_ROT_VAL = TRUNC L1
}

Var 1301, name C1_RH_ROT_VAL, Link SUBRUTINE     // Aligns RH rotary ref with COM1 SB freq
{
  L0 = FROMBCD &FS_C1_SB_BCD
  L1 = &C1_LHS_ROT_VAL * 100
  L2 = L0 - L1
  &C1_RHS_ROT_VAL = L2 / 2.487179
}

Var 1302, name C1_UPDATE_LHS, Link SUBRUTINE     // Update COM1 stanby integers
{
  &DISP_INTE_STBY = &C1_LHS_ROT_VAL         // Set COM1 standby integer display
  &C1_SB_LHS = &C1_LHS_ROT_VAL + 100     // plus fixed digit 1
}

Var 1303, name C1_UPDATE_RHS, Link SUBRUTINE     // Update COM1 standby decimals
{
  L0 = &C1_RHS_ROT_VAL * 2.5
  &C1_SB_RHS = TRUNC L0
  &DISP_DECI_STBY = &C1_SB_RHS   
}

Var 1304, name SET_FS_C1_SB, Link SUBRUTINE     // Update COM1 standby frequency in FS
{
  L0 = &C1_SB_LHS * 100
  L1 = L0 + &C1_SB_RHS
  &FS_C1_SB_BCD = TOBCD L1
}

Var 1306, name C2_LH_ROT_VAL, Link SUBRUTINE     // Aligns LH rotary ref with COM2 SB freq
{
  L0 = FROMBCD &FS_C2_SB_BCD
  L1 = L0 / 100
  &C2_LHS_ROT_VAL = TRUNC L1
}

Var 1307, name C2_RH_ROT_VAL, Link SUBRUTINE     // Aligns RH rotary ref with COM2 SB freq
{
  L0 = FROMBCD &FS_C2_SB_BCD
  L1 = &C2_LHS_ROT_VAL * 100
  L2 = L0 - L1
  &C2_RHS_ROT_VAL = L2 / 2.487179
}

Var 1308, name C2_UPDATE_LHS, Link SUBRUTINE     // Update COM2 stanby integers
{
  &DISP_INTE_STBY = &C2_LHS_ROT_VAL         // Set COM2 standby integer display
  &C2_SB_LHS = &C2_LHS_ROT_VAL + 100     // plus fixed digit 1
}

Var 1309, name C2_UPDATE_RHS, Link SUBRUTINE     // Update COM2 standby decimals
{
  L0 = &C2_RHS_ROT_VAL * 2.5
  &C2_SB_RHS = TRUNC L0
  &DISP_DECI_STBY = &C2_SB_RHS   
}

Var 1310, name SET_FS_C2_SB, Link SUBRUTINE     // Update COM2 standby frequency in FS
{
  L0 = &C2_SB_LHS * 100
  L1 = L0 + &C2_SB_RHS
  &FS_C2_SB_BCD = TOBCD L1
}

Var 1406, name BP_RADIO_SWAP, Link IOCARD_SW, Input 46, Type P
{
  IF &SW_RADIO_COM1 = 1
  {
    &FS_RADIO_SWAP = TOGGLE 3
  }
  IF &SW_RADIO_COM2 = 1
  {
    &FS_RADIO_SWAP = TOGGLE 2
  }
}

Var 1442, name SW_RADIO_COM1, Link IOCARD_SW, Input 45, Type P     // BP Radio COM 1
{
  IF &SW_RADIO_COM1 = 1
  {
    &IND_RADIO_COM1 = 1   
    &SW_RADIO_COM2 = 0   
  }
  IF &SW_RADIO_COM1 = 0
  {
    &IND_RADIO_COM1 = 0   
  }
}

Var 1443, name SW_RADIO_COM2, Link IOCARD_SW, Input 47, Type P     // BP Radio COM 2
{
  IF &SW_RADIO_COM2 = 1
  {
    &IND_RADIO_COM2 = 1   
    &SW_RADIO_COM1 = 0   
  }
  IF &SW_RADIO_COM2 = 0
  {
    &IND_RADIO_COM2 = 0   
  }
}

Var 1500, name ENCO_FREQ_INTE, Link IOCARD_ENCODER, Input 36, Aceleration 1, Type 2
{
  IF &SW_RADIO_COM1 = 1
  {
    &C1_LHS_ROT_VAL = ROTATE 18 ,36 ,&ENCO_FREQ_INTE
    CALL &C1_UPDATE_LHS
    CALL &SET_FS_C1_SB
  }
  IF &SW_RADIO_COM2 = 1
  {
    &C2_LHS_ROT_VAL = ROTATE 18 ,36 ,&ENCO_FREQ_INTE
    CALL &C2_UPDATE_LHS
    CALL &SET_FS_C2_SB
  }
}

Var 1501, name ENCO_FREQ_DECI, Link IOCARD_ENCODER, Input 54, Aceleration 2, Type 2
{
  IF &SW_RADIO_COM1 = 1
  {
    &C1_RHS_ROT_VAL = ROTATE 0 ,39 ,&ENCO_FREQ_DECI
    CALL &C1_UPDATE_RHS
    CALL &SET_FS_C1_SB
  }
  IF &SW_RADIO_COM2 = 1
  {
    &C2_RHS_ROT_VAL = ROTATE 0 ,39 ,&ENCO_FREQ_DECI
    CALL &C2_UPDATE_RHS
    CALL &SET_FS_C2_SB
  }
}

Var 1600, name DISP_INTE_STBY, Link IOCARD_DISPLAY, Device 2, Digit 7, Numbers 3     // Standby integers

Var 1601, name DISP_DECI_STBY, Link IOCARD_DISPLAY, Device 2, Digit 10, Numbers 2     // Standby decimals

Var 1602, name DISP_ACTIVE, Link IOCARD_DISPLAY, Device 2, Digit 0, Numbers 5

Var 1727, name IND_RADIO_COM1, Link IOCARD_OUT, Output 53     // LED radio com 1

Var 1728, name IND_RADIO_COM2, Link IOCARD_OUT, Output 54     // LED radio COM2

Var 1900, name C1_SB_AS_DEC     // COM1 standby frequency in decimal format

Var 1901, name C1_SB_LHS     // COM1 standby frequency integers

Var 1902, name C1_SB_RHS     // COM1 standby frequency decimals

Var 1903, name C1_RHS_ROT_VAL     // COM1 right hand rotary encoder ref value

Var 1904, name C1_LHS_ROT_VAL     // COM1 left hand rotary encoder ref value

Var 1906, name C2_SB_AS_DEC     // COM2 standby frequency in decimal format

Var 1907, name C2_SB_LHS     // COM2 standby frequency integers

Var 1908, name C2_SB_RHS     // COM2 standby frequency decimals

Var 1909, name C2_RHS_ROT_VAL     // COM2 right hand rotary encoder ref value

Var 1910, name C2_LHS_ROT_VAL     // COM2 left hand rotary encoder ref value
Image
Avatar de l’utilisateur
nuno14
 
Messages: 175
Inscription: 14/09/10
Localisation: Près de Lisieux, Normandie

Re: OFFSET RADIO

Messagede worldhugo » Lun 14 Fév 2011 07:34

Salut,
Code: Tout sélectionner
Var 0009, name CHANGE, Link FSUIPC_INOUT, Offset $3123, Length 1 // change frequence active/standby


Après, va voir dans la liste des offsets pour le fonctionnement.
Tu peux aussi aller voir sur mon site, rubrique "Modules/SIOC" (le modules RADIO et son code est tout en bas).

A+

Hugo
worldhugo
 
Messages: 279
Inscription: 28/03/10
Localisation: Reims 51100

Re: OFFSET RADIO

Messagede nuno14 » Lun 14 Fév 2011 23:06

Merci pour ta réponse Worldhugo, mais le bouton swap fonctionne bien. J'ai mal formuler ma question, je voulais dire le passage de COM1 vers COM2 ou vers NAV1 etc ... que je n'arrive pas à faire changer dans FSX. Il faut que je clique sur le bouton que je souhaite avec la souris pour que cela fonctionne.
Image
Avatar de l’utilisateur
nuno14
 
Messages: 175
Inscription: 14/09/10
Localisation: Près de Lisieux, Normandie

Re: OFFSET RADIO

Messagede stevelep » Mar 15 Fév 2011 00:09

Tu parles de l'intercom COM1, COM2 BOTH, NAV1, NAV2, DME MKR , etc ?

si oui c'est ça

Var xxxx, name fs_icom, Link FSUIPC_INOUT, Offset $3122, Length 1, VALUE 128

// bit: 0=adf, 1=dme, 2=mkr, 3=nav2, 4=nav1; 5=both, 6=com2, 7=com1

Attention codé en bit
il faut utiliser les SETBIT, CLEARBIT, CHANGEBIT, TESTBIT ... etc
Avatar de l’utilisateur
stevelep
Administrateur du site
 
Messages: 2075
Inscription: 27/03/09
Localisation: LSGN Neuchâtel, Suisse

Re: OFFSET RADIO

Messagede nuno14 » Mar 15 Fév 2011 14:31

Image
Avatar de l’utilisateur
nuno14
 
Messages: 175
Inscription: 14/09/10
Localisation: Près de Lisieux, Normandie

Re: OFFSET RADIO

Messagede stevelep » Mar 15 Fév 2011 14:47

Ce module n'est pas modèlisé dans FSX.

Il faut le programmer toi-même avec le SIOC.

En gros, il faut un programme de Radio com, nav, adf en SIOC normal.
Mais il faut faire des modifications en ajoutant un mode 1= com1 2=com2 3=com3 etc.

Les bouton de selection du module VHF1 2 3 vont selectioner le mode.

Ensuite il faudra un afficheur display commun qui prendra la valeur correspondante suivant
le mode en cours. Si tu presse VHF1 l'afficheur doit afficher le COM1.
Idem pour les encodeurs de réglage de fréquences, si tu est en VHF1, l'encodeur doit
modifier le freq com1 ...etc

C'est faisable avec SIOC, mais c'est déjà de la programmation un peu avancée

Si tu veux t'exercer avant avec une programmation un peu plus simple
tu peux essayer de prendre 3 variables SIOC non reliée à FS X Y Z
de leur donner 3 valeurs différentes, de programmer 3 modes avec 3 bouton
et de contrôler avec un encodeur la modification de la variable selectionnée.
Une fois que tu aura réussis tu pourras integrer ce bout de programme à
un programme radio existant et l'adapter

Bonne chance

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

Re: OFFSET RADIO

Messagede nuno14 » Mar 15 Fév 2011 22:18

Comme je l'ai mis dans mon 1er message le programme est déja fait et il fonctionne, Le module fonctionne correctement, mais je n'ai aucune réaction dans FSX. Je m'explique, mon module et FSX sont sur COM1 tout fonctionne correctement, Je passe sur COM2 sur mon module, le module fonctionne correctement mais FSX ne fonctionne pas murrouge . Je clique sur COM2 dans FSX et la tout fonctionne. furieuxfumée gratgrat
Image
Avatar de l’utilisateur
nuno14
 
Messages: 175
Inscription: 14/09/10
Localisation: Près de Lisieux, Normandie

Re: OFFSET RADIO

Messagede stevelep » Mer 16 Fév 2011 00:36

Ah j'avais pas compris

T'est sur quel avion dans FS9 ou FSX ?

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

Re: OFFSET RADIO

Messagede nuno14 » Mer 16 Fév 2011 13:25

je suis sur le A320 IFDG SUR FSX
Image
Avatar de l’utilisateur
nuno14
 
Messages: 175
Inscription: 14/09/10
Localisation: Près de Lisieux, Normandie

Re: OFFSET RADIO

Messagede stevelep » Mer 16 Fév 2011 14:18

Comme je l'ai dis, ce genre de module multiradio n'existe pas de façon native dans FS
Donc les créateurs d'addon programment eux-même dans FS leur modules.
Malheureusement, souvent ils utilisent des commandes internes qui ne sont pas reliées
à des offsets FSUIPC, donc inaccessibles. Si les boutons de commutations et l'afficheur
de ton panel FS ne sont pas relié à FSUIPC, il sera impossible de le commander
avec le SIOC... désolé

C'est souvent le cas avec les add-ons

Néanmois, si tu utilise un vrai panel dans ton cockpit avec les boutons et l'afficheur, tu peux
programmer toi même le module avec SIOC et le substituer au panel virtuel de ton add-on.

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

Suivante

Retourner vers Programmation Sioc





Qui est en ligne

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