XP DataRefs.txt uipcxdatos.txt XPUIPCOffsets.txt

Avro

PILOTE PRO
Messages
1 937
Réactions
269
Dans la série, je découvre les joies d'X-Plane 11…

Second problème. J'essaye d'interfacer de nouveaux boutons pour mon RJ85 Avroliner.

J'ai surveillé les DataRefs quand je clique cela donne ceci :

Code:
sim/electrical/APU_off
sim/electrical/APU_start

sim/electrical/APU_generator_off
sim/electrical/APU_generator_on

sim/electrical/generator_1_off
sim/electrical/generator_1_on
sim/electrical/generator_1_reset

sim/electrical/generator_4_off
sim/electrical/generator_4_on
sim/electrical/generator_4_reset

Super :) Le code SIOC permet d'activer des offsets, tout va bien de ce côté.

C'est là que cela se complique. Quoi mettre dans le fichier uipcxdatos.txt ?
Mon 15 sim/cockpit/electrical/battery_on fonctionne correctement
Mais pour lancer l'APU, je fais quoi ? J'ai essayé :
18 sim/electrical/APU_start

XPUIPCOffsets.cfg ne contient rien au sujet de l'APU
DataRefs.txt ne contient pas sim/electrical/APU_start par exemple mais :
sim/cockpit2/electrical/APU_starter_switch int y boolean APU power switch, 0 is off, 1 is on, 2 is start-er-up!

J'en déduis que c'est une DataRef particulière à mon avion.

Faut-il surcharger XPUIPCOffsets.txt ?
J'ai essayé
Code:
# RJ85
Dataref APU_start    sim/electrical/APU_start    int

Bien sûr, aucun de ces nouveaux boutons ne fonctionnent.
 
Salut !

extrait d'un forum espagnol
j'ai dû télécharger et utiliser un programme appelé uipcx et suivre les instructions de M. Andrés Oteiro qui se trouvent dans le fichier: \ "Scripts et fichiers pour MCP V3, EFIS et NAV pour XPLANE 10. \" à partir de la page Opencockpits:http://www.opencockpits.com/catalog/info/information.php?info_id=44&language=es
Pour ce faire, j'ai dû télécharger et utiliser un programme appelé uipcx et suivre les instructions de M. Andrés Oteiro qui sont dans le fichier
Il est important de regarder le fichier sioc.ini qu'il apporte et d'ajouter cette section :


[ IOCP host ]
IOCP_host=127.0.0.1

uipcx download – Francisco Sedano Flight Sim site
 
@Playrec , tu es out pour ce coup là, c'est réglé LoL ! Xplane avec SIOC

@Avro :
18 sim/electrical/APU_start > oui ça me semble bien, et ton code SIOC c'est quoi ?

Maintenant si ton code SIOC est bon, avec :
18 sim/cockpit2/electrical/APU_starter_switch

et en mettant 2 dans la variable 18 peut être ?
0 is off, 1 is on, 2 is start-er-up!
 
Trop fort :)

Code:
Var 0509, name APUSTART, Link IOCP, Offset 18
Var 0510, name APUOFF, Link IOCP, Offset 19
Var 0511, name APU_SW, Link IOCARD_SW, Input 5
{
  IF &APU_SW = 1
  {
    &APUSTART = 2
    &APUOFF = 0
  }
  ELSE
  {
    &APUOFF = 1
    &APUSTART = 0
  }
}

18 sim/cockpit2/electrical/APU_starter_switch 19 sim/electrical/APU_off

Marche parfaitement. Je vais creuser pour le reste.
 
Un encoder maintenant (n)

Code:
Var 0001, name HDGUP, Link IOCP, Offset 100
Var 0002, name HDGDW, Link IOCP, Offset 101
Var 0003, name E_HDG, Link IOCARD_ENCODER, Input 6, Aceleration 4, Type 2
{
  &HDGUP = &E_HDG * -1
}

Code:
100 sim/autopilot/heading_up
101 sim/autopilot/heading_down

1- ça marche pas
2- comment gérer l'incrémentation, la décrémentation et l'accélération ?
3- après je regarderai les displays.

NB L'encodeur utilise les entrées 6 et 7.
 
Super ! :)

Continuons ...

C'est normal que cela ne fonctionne pas ...
Tu as d'un coté la gestion d'une variable directement avec l'encodeur avec SIOC, la variable E_HDG va être incrémentée et décrémentée automatiquement par SIOC
et de l'autre des ordres d'incrémentation sur "sim/autopilot/heading_up" et de décrémentation sur "sim/autopilot/heading_down"

Je pense que ces deux dernières dataref attendent un 0/1/0 (un poussoir en fait) alors que tu leur envoies une valeur autre que 0/1 (la valeur déjà calculée par SIOC) tu dois d'ailleurs la voir bouger dans SIOC monitor ?


Trouve une dataref du style sim/autopilot/heading
 
Dernière édition:
Un encodeur et le display, c'est OK

Code:
Var 0000, Value 0  // Inicializa / Inicialization
{
  &D_HDG = 360
}

Var 0001, name APD_HDG, Link IOCP, Offset 100 // Auto pilot heading

Var 0002, name D_HDG, Link IOCARD_DISPLAY, Device 1, Digit 6, Numbers 3
{
  L1 = &D_HDG * 10000
  L0 = L1 + 1
  &APD_HDG = L0
}

Var 0003, name E_HDG, Link IOCARD_ENCODER, Device 1, Input 6, Aceleration 4, Type 2
{
  L0 = &E_HDG * -1
  &D_HDG = ROTATE 1, 360, L0
}

Code:
100 sim/cockpit2/autopilot/heading_dial_deg_mag_pilot
 
Parfait ! j'pouvais pas le deviner celui là ! sim/cockpit2/autopilot/heading_dial_deg_mag_pilot

Et tu as trouvé le script qui va bien avec la fonction ROTATE qui fait passer de 360 à 1 la variable !
C'est quand même pas mal foutu SIOC, non ? :)
 
C'est quand même pas mal foutu SIOC, non ?
Oui, j'aime bien

Un bouton poussoir : Type P
et la fonction CHANGEBITN qui est comme un relais électromécanique

Code:
Var 0100, Link IOCP, Offset 123 // AP_VNAV
{
  &O_VNAV = TESTBIT V0100 ,0 // LED_VNAV
}
Var 0101, name I_VNAV, Link IOCARD_SW, Input 29, Device 1, Type P
{
    V0100 = CHANGEBITN 0 V0101
}

123 sim/cockpit2/autopilot/fms_vnav

Ça se corse maintenant. Je n'ai pas trouvé une liste des Datarefs ; c'est la pèche à la grenouille.
 
Dernière édition:
Merci Fred.

J'ai un cas concret à vous soumettre.

Code:
Var 0005, name APD_IAS, Link IOCP, Offset 101 // IAS
Var 0006, name D_IAS, Link IOCARD_DISPLAY, Device 1, Digit 3, Numbers 3
{
  L1 = &D_IAS
  L0 = L1 + 1
  &APD_IAS = L0
}
Var 0007, name E_IAS, Link IOCARD_ENCODER, Device 1, Input 0, Aceleration 2, Type 2
{
  L0 = &E_IAS * -1
  &D_IAS = LIMIT 105, 415, L0
}

Code:
101 sim/cockpit/autopilot/airspeed

Ne fonctionne pas car le système attend une valeur comme 152. avec un point décimal à la fin ! Une idée ?
 
Second problème probablement plus facile.

sim/cockpit/autopilot/airspeed_mode

prend les valeurs 9 (LVL CHG éteint) ou 13 (LVL CHG allumé) !

Quand je clique sur le bouton, je dois "Press" la fonction

sim/autopilot/level_change

Code:
Var 0106, name I_LVLCHG, Link IOCARD_SW, Input 31, Device 1, Type P // A faire
{
    ???
}

Comment déclenche t-on une action ?
 
On ne t’arrête plus ! LoL

Comment déclenche t-on une action ?

Une action se déclenche lors la variable change de valeur ... ou que tu utilise la commande "CALL subrutine", dans ce cas le lien de la variable sera "SIOC subrutine"

Ne fonctionne pas car le système attend une valeur comme 152. avec un point décimal à la fin

J'ai pas compris ?
Tu veux dire que sim/cockpit/autopilot/airspeed est une variable de type float ?
 
Une action se déclenche lors la variable change de valeur ... ou que tu utilise la commande "CALL subrutine", dans ce cas le lien de la variable sera "SIOC subrutine"

Ben justement j'ai bien essayé de passer sim/autopilot/level_change à 1 mais aucun changement. Visiblement, ce n'est pas la même chose que de cliquer sur le bouton "Press" dans le plugin X-Plane DataRefTools.

Tu veux dire que sim/cockpit/autopilot/airspeed est une variable de type float ?

Oui, j'ai l'impression. Quand j'envoie 152 via le script SIOC, cela ne marche pas. Quand je fais la même opération dans DataRefTools sur la variable sim/cockpit/autopilot/airspeed en écrivant 145, il ajoute un . à la fin et cela fonctionne.

1579862019664.png
 
regarde les scripts de pikitanga
celui du mcp pour le B738 , pas du B738X
tu vas comprendre comment il fait ...

@fab tu peux créer des "custom datarefs" et des "custom command" dans sioc ?
ou tu dois passer par un script ?
 
Dernière édition:
@Playrec :Tu ne crées en SIOC de des variables, qui du fait, deviennent des variable IOCP, avec des liens vers du matériel, d'autres variables IOPC ou des offsets de FSUIPC.

@Avro : Dans les datarefs de OCUSBMAPPER, on retrouve le bouton : LVLCH ...
 
Dernière édition:
DataRefTool pour les datarefs/commands custom des cripts ocusbmapper c'est obligatoire !
@fab , c'est toi qui est out cette fois ! :p

une fois installé , tu tapes pikitanga dans le champs de recherche
 
J'ai essayé OCUSBMapper avec le 738 et le RJ. Mon MCP doit être une version OC 1 car seuls les encodeurs fonctionnent sur les deux appareils. J'ai essayé d'adapter le script. Je comprends la logique mais cela risque d'être costaud.
Exemple pour savoir quelle touche est active sur le FMC :
sim/cockpit/autopilot/autopilot_state
  • 16388 Tout éteint
  • 17668 APP
  • 17412 GS
  • 16644 VOR LOC
  • 4260 VNAV
  • 164 ALT HLD
  • 162 HDG
  • 108 LVL chg
  • 52 VS
des puissances de 2 j'imagine mais pas très pratique à mettre en œuvre

Bref, continuer en SIOC ou pas ? Benner mon RJ adoré ?
 
OK, oui, ce sera une série de IF{}

Pour info, voici les mêmes chiffres en binaire, les 3 premiers bit ne bougent pas ...

100000000000100
100010100000100
100010000000100
100000100000100
001000010100100
000000010100100
000000001101100
000000000110100
 
de quel éditeur tu parles ? datarefeditor ne vois que celles d'xplane ...

Salut Emmanuel , tu as mis ton hub usb 2 sur un port usb 2.0 du pc ? ;)
 
Oui et j'ai rendu propre les affections USB avec USBDeview. J'ai étendu mes 3 écrans 24 pouces pour avoir un seul écran à gérer avec ma RTX2080. J'ai gagné un 15 FPS. J'espère que cela tient avec de la météo et du trafic IVAO.

J'ai commandé un autre câble Display port <> HDMI. 3 DP sur 3 HDMI,
 
@Playrec : en fait je ne trouve pas les datarefs dans l'editeur ?
Voici la page avec les détails : wiki sdk autopilot_state
Exemple APP (17668) = 16384 (Alt Hold Engage) + 1024 (Glideslope Armed) + 256 (HNAV Armed) + 4 (Wing level Engage)
En effet :
De 17668, on retire le plus grand code (16384), il reste 1284
De 1284, on retire le plus grand code (1024), il reste 260
De 260, on retire le plus grand code (256), il reste 4
De 4, on retire le plus grand code (4), il reste 0, c'est fini.

Dominique
 
Trés bien ce tabl'eau, mais alors chaque bit correspond à une fonction et les valeurs données par @Avro :

  • 16388 Tout éteint
  • 17668 APP
  • 17412 GS
  • 16644 VOR LOC
  • 4260 VNAV
  • 164 ALT HLD
  • 162 HDG
  • 108 LVL chg
  • 52 VS

d16388 = %100000000000100 correspond à :
- Altitude Hold Engaged à 1
- Wing Leveler Engage à 1

Et non pas à "Tout éteint" !

Si c'est bien des bits à tester, en SIOC se sera la fonction TESTBIT

@Playrec : Ah OK, alors pourquoi je vois quand même des datarefs de OCUSBMAPPER dans DatarefEditor ?
 
Dernière édition:
TOUT CE QUI EST COMMUN aux DATAREFS d'origine tu vas les voir mais pas les custom datarefs/commands...
c'est plus facile de comprendre cette phrase que comprendre toutes les astuces de SIOC ! ;)

encore une fois , datareftool est OBLIGATOIRE si tu veux VOIR TOUT !

cliquer pour agrandir
datareftool.jpg


et c'est 100 fois plus pratique que datarefeditor ...
je te l'ai déjà dit quand je suis venu te voir !
 
Dernière édition:
Retour
Haut