Sioc Servo Position Flaps

SUBerben

ELEVE PILOTE
Messages
20
Réactions
0
Points
5
Bonjour,

Et bien voilà , mon premier petit projet SIOC et hop une question ...

Veuillez noter que que je tourne OC4BAv4 pour mon MCP v2 sur PMDG 737 et ça marche à  merveille.
Maintenant je tente d'ajouter un servo piloter par une carte USBservo, tout fonctionne très bien dans le SIOC monitor alors le circuit est bon, mais je tente d'ajouter mon script mais je ne sais pas trop comment et si il est ok. Surement une question de routine pour certain dentre vous mais pour moi SIOC est encore un étranger.

Voici mon petit bout de code :

Code:
Var 0001, name flaps, Link USB_SERVOS, Output 2, PosL 387, PosC 600, PosR 969

Var 0002, name flapsoffset, Link FSUIPC_INOUT, Offset $0BDC, Length 2
{
  L0 = &flapsoffset / 20
  L1 = L0 + 160
  IF L1 > 969
  {
    L1 = 970    
  }
  &flaps = L1    
}

Je ne suis pas certain du L0 et L1, c'est un point de départ d'un tuto sur le servos (merci mameloose de me donner espoir)

Mais pour l'instant le servo ne bouge pas via FSX. J'ai essayé aussi de l'ajouter dans multiple script, ça semble compliquer mais je ne suis pas certain que c'est la bonne façon de travailler avec SIOC

Merci de votre aide,
Ben
 
Bonjour Benoit et bienvenue
C'est pas trop mal mais ce n'est pas le bon offset et la bonne longueur, il faut écrire :
Var 0002, name flapsoffset, Link FSUIPC_INOUT, Offset $0BE0, Length 4

Change aussi :
IF L1 > 969
{
L1 = 969
}

Note que ça va bouger, mais pas en face des repères de la jauge flaps 737 il me semble, il faudra faire un script plus complexe avec des comparaisons pour faire correspondre.

Fabien
 
oula tu as fais un copier collé c'est plus compliqué que ca ....

tout d'abord il faut que tu releve chaque valeur de la servo sur chaque position ...

par exemple sur ta gauge flaps a zero ta servo est a 254 par exemple puis sur 1 tu auras peut etre 321 ect ect quand tu as tout relevé on verra pour la suite ....


pour bien comprendre LO L1 L2 ce sont des stockeur de valeur tu peux mettre ce que tu veux dedans ...

en math ca correspond a X = ? ou Y= ?

exemple simple LO=1 L1= 3 L2=LO+L1 donc L2 sera egale a 4 !

ca te permet de stocker une valeur

par la suite tu peux utiliser LO pour reduire une valeur

si ton offset va de 0 a 16383 et ta servo de 0 a 1023 forcement ca concorde pas donc tu utilise LO pour reduire la plage ...

petit exemple LO=offset / par 16

pourquoi 16 ? 16383/1023 =16

ensuite servo = LO donc ton offset va afficher 16383 mais grace a LO il va afficher 1023 tu comprend ?
 
Merci Messieurs ! je vois, oulala des heures de plaisir.

Mais une fois mon script fait et exemple sauvegardé en m'y_flaps.ssi dans le répertoire SIOC. Je fais quoi pour qu'il soit chargé ?
 
Il sera chargé à  chaque lancement de Sioc, ne pas oublier de cibler le fichier  m'y_flaps.ssi  dans SETUP.
 
Salut ,
Juste pour te préciser que L0 => L2 SONT ce que lon appel en jargon de programmeur des variables locales.
Donc pas visibles et méconnues des autres variables déclarées.
C'est juste une précision.

JeanMi
 
Tu as ajouté ceci quoi ? Écoute ce que je te dis va pas âž• vite que la musique tu vas pas comprendre ce que je dis sinon..... Tu as relevé les valeurs que je t'ai demandé ?
 
Voici mes valeurs :

UP : 387, 1 : 457, 2 : 542, 5 : 633, 10 : 711, 15 : 781, 25 : 847, 30 : 899, 45 : 969

Tu nous fais un tuto là -dessus ? :)
 
ah le tuto est deja fait depuis longtemps O:) regarde ici : Sioc la fonction timer

lit bien tout et remplace tes valeurs par celle du tuto ca devrait etre pas mal

pareil pour ton avion tu dois relever les valeurs de l'offset a chaque cran de volet puis les mettre en condition IF

les valeurs de ta servo seront dans la fonction TIMER
 
Pour relever les valeurs de l'offset tu déclares la $0BE0 de longueur 4 dans ton code puis tu ouvre IOCPCONSOLE et a chaque mouvement de volet tu relèves les différentes valeurs !

Elles sont différentes avec chaque avion.
 
Retour
Haut