variables internes SIOC

Questions de programmation / Offset FSUIPC et IOCP

variables internes SIOC

Messagede da8boss » Lun 11 Jan 2010 14:07

Bonjour à tous,

Toujours dans le même esprits des variables SIOC, est il possible de créer des variables uniquement déclarées dans une instance SIOC et accessibles par d'autres instances de SIOC ?
Par exemple, j'ai un programme SIOC où je créé une variable (sans aucun Link, donc locale), je veux l'utiliser (partager sa valeur) dans une autre instance de SIOC. Puis-je?
Vu que c'est une variable locale, je me doute un peu de la réponse. Mais y a t'il un autre moyen de faire cela?

Merci,
PJ
Le Rugby c'est comme la dinde, sans marrons c'est vulgaire
Avatar de l’utilisateur
da8boss
 
Messages: 44
Inscription: 21/04/09
Localisation: Toulouse

Re: variables internes SIOC

Messagede steph737 » Lun 11 Jan 2010 14:17

Oui par des variables IOCP (faut installer le serveur sous FS) mais on peux aussi utiliser des offsets FSUIPC libres
Image
Avatar de l’utilisateur
steph737
 
Messages: 1083
Inscription: 27/03/09
Localisation: Antananarivo - Madagascar

Re: variables internes SIOC

Messagede da8boss » Lun 11 Jan 2010 14:31

Merci de ta réponse,

Peux tu préciser un peu la méthode pour créer ces variables IOCP?
Où faut il les déclarer? Comment se déclarent elles? Elles s'utilisent de la même façon que les autres?
J'avoue que j'ai essayé de le faire mais que je ne suis jamais arrivé !

Pour les variables FSUIPC, y a t'il une plage de valeurs pour les variables libres?

PJ.
Le Rugby c'est comme la dinde, sans marrons c'est vulgaire
Avatar de l’utilisateur
da8boss
 
Messages: 44
Inscription: 21/04/09
Localisation: Toulouse

Re: variables internes SIOC

Messagede steph737 » Lun 11 Jan 2010 15:01

De mémoire y'a pas grand chose à faire pour les variables IOCP, on utilise sous SIOC les variables link-IOCP avec un index (numéro). Il faut juste vérifier que sioc est bien client IOCP pour le serveur.

FSUIPC : dans la liste des offsets il y a des portions dites "réservés" notamment pour Projet Magenta par exemple donc si on ne l'utilise pas, c'est libre !

04E0 à 0560 : Area reserved for Project Magenta

4000 5632 Reserved

5600 2560 Available for applications: apply for allocations to Pete Dowson

6200 1088 Reserved
6640 192 Available for applications: apply for allocations to Pete Dowson
6700 36 Reserved
6D00 3712 Available for applications: apply for allocations to Pete Dowson
7B80 1024 Reserved
8000 768 Reserved for FSUIPC and WideFS internals
8300 11520 Available for applications: apply for allocations to Pete Dowson
B000 4096 Reserved for future improvements



Dans les deux cas, ça marche entre plusieurs instances de SIOC, sur un ou plusieurs PC bien sur.
Image
Avatar de l’utilisateur
steph737
 
Messages: 1083
Inscription: 27/03/09
Localisation: Antananarivo - Madagascar

Re: variables internes SIOC

Messagede da8boss » Lun 11 Jan 2010 15:36

J'avais essayé plein de choses pour IOCP et j'avais jamais pensé à juste faire ça.
J'ai toujours essayé de les déclarer dans IOCPOFFSET.xml pensant que ca avait un effet sur le server IOCP.

Donc si j'ai bien compris :

Dans une instance de SIOC je déclare :
Code: Tout sélectionner
Var 0001, name VARQ, Link IOCP, Offset XXXX (XXXX étant un nombre non utilisé par IOCP)
{
Var 0001 = 1234
}

Et dans une autre instance je fais :
Code: Tout sélectionner
Var 0014, name RVARQ, Link IOCP, Offset XXXX (le même XXXX....)
Var 0015, name VARYY
{
IF RVARQ < 1000
THEN &VARYY = 0
ELSE &VARYY = 1
}

Et ça devrait marcher?, ca va me faire VARYY = 1? C'est tout?

Merci de tes réponses,
PJ
Le Rugby c'est comme la dinde, sans marrons c'est vulgaire
Avatar de l’utilisateur
da8boss
 
Messages: 44
Inscription: 21/04/09
Localisation: Toulouse

Re: variables internes SIOC

Messagede guda » Lun 11 Jan 2010 17:19

manque un & devant RVARQ=....

IF &RVARQ < 1000

Ensuite ll'instruction IF doit s'écrire comme cela
Code: Tout sélectionner
IF &RVARQ < 1000
{
&VARYY = 0
}
ELSE
{
 &VARYY = 1
}


Pour finir, ton algorithme ne me semble pas bon : par exemple tu as RVARQ=1 puis VARYY=1
Tu vas rentrer dans ta variable VARYY, qui elle meme va faire changer la valeur de VARYY qui donc va s'autoappeller.
Ca pourrait finir en boucle.
Je pense qu'il serait plus sage d'utiliser une autre variable intermediaire
Avatar de l’utilisateur
guda
 
Messages: 451
Inscription: 27/04/09
Localisation: Brie Comte Robert (77)

Re: variables internes SIOC

Messagede da8boss » Lun 11 Jan 2010 18:01

Merci GUDA,
Mais comme tu peux le constater par le nom des variables, ce code ne veux rien dire du tout, c'est juste un exemple pour voir si j'ai bien compris le principe d'utilisation de variables IOCP "personnalisées".
Heureusement pour moi, je n'en suis plus à ce stade d'apprentissage.
Si par contre tu pouvais confirmer que le fait de déclarer dans SIOC une variable IOCP n'existant pas dans IOCPoffsets.xml comme ceci :
SIOC1.ssi :
Var XXXX, name MAVARIABLEAMOI, Link IOCP, Offset OFFSETPASDEJAUTILISE
{
modification de la valeur de la variable
}

Elle est alors utilisable dans une autre instance de SIOC et je peux donc récupérer sa valeur
SIOC2.ssi :
Var ZZZZZ, name PEUIMPORTE, Link IOCP, Offset LEMEMEQUEDANSSIOC1
{
Accès à la valeur de la variable MAVARIABLEAMOI
}

Cela suffit il pour partager la valeur d'une variable type Link IOCP entre deux instances de SIOC?

merci affiche
PJ.
Le Rugby c'est comme la dinde, sans marrons c'est vulgaire
Avatar de l’utilisateur
da8boss
 
Messages: 44
Inscription: 21/04/09
Localisation: Toulouse

Re: variables internes SIOC

Messagede guda » Lun 11 Jan 2010 18:23

Cette méthode est utilisée par le projet ON737 d'Opencockpit http://www.opencockpits.com/modules.php?name=Downloads&d_op=viewdownload&cid=62

plusieurs SIOC cohabitent et échangent via des offsets sur le serveur IOCP FS2004
Si ta variable n'est pas utilisée par FS, tu peux l'affecter à ce que tu veux.

Perso, je ne te conseille pas trop cela car tu centralises les offsets et au niveau performance c'est pas top : tu auras beaucoup d'aller/retour inutiles.! Surtout que faire tourner plusieurs SIOC c'est possible mais cela pose des problèmes de port qui faut gérer.

Par contre, si ton souhait d'avoir plusieurs sioc est d'avoir des codes autonomes, tu peux aussi utiliser l'option GROUP : tu créé des scripts pour chaque module et au final du demande a tout regrouper. Ca marche trés bien. J'ai des scripts pour l'électricité, pour la gestion de fuel, pour le PA.... Chacun est autonome et regroupé à chaque compilation par SIOC.
Avatar de l’utilisateur
guda
 
Messages: 451
Inscription: 27/04/09
Localisation: Brie Comte Robert (77)

Re: variables internes SIOC

Messagede da8boss » Lun 11 Jan 2010 21:17

Selon ta manière, tes codes SIOC peuvent ils communiquer entre eux, par exemple pour des variables qui n'existent pas dans FS?
Je créé une variable dans un SIOC (sans Link), est ce qu'un autre SIOC pourra la lire?

Peux tu me montrer un exemple de ton code?

Merci bcp,
PJ.
Le Rugby c'est comme la dinde, sans marrons c'est vulgaire
Avatar de l’utilisateur
da8boss
 
Messages: 44
Inscription: 21/04/09
Localisation: Toulouse

Re: variables internes SIOC

Messagede steph737 » Mar 12 Jan 2010 08:53

Non ça c'est sur que non !

Il faut passer soit par IOCP et son serveur soit par WideFS et donc les offsets FSUIPC.

Ce que dit Guda c'est que ça ne présente pas d'intérêt de faire tourner plusieurs instances de sioc sur le même PC, mieux vaut balancer tout le code dans le même sioc.

donc ce partage de variable n'est intéressant que dans le cas où on a un réseau de PC et que l'on a des SIOC sur plusieurs d'entre eux.
Image
Avatar de l’utilisateur
steph737
 
Messages: 1083
Inscription: 27/03/09
Localisation: Antananarivo - Madagascar

Suivante

Retourner vers Programmation Sioc





Qui est en ligne

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