Simubaron

 Configurer SIOC

Accueil Interfaces Logiciels Pedestal et throttle Tableau de bord Savoir faire Programmation SIOC Téléchargements Contact et liens Les auteurs
 

Remonter

 

Sioc et ses fichiers

Il n'est pas question de faire ici une initiation à SIOC. Nous allons simplement essayer de voir clair dans les fichiers et programmes qui l'accompagnent ou le composent. En effet, si les matériels et logiciels Opencockpits sont très bon marché pour les uns et gratuits pour les autres, leur documentation en est souvent succincte, et rarement en français (en espagnol et en anglais).

De plus l'espace de téléchargement d'Opencockpits n'est malheureusement pas toujours un modèle de clarté, et il n'est pas toujours facile d'y trouver ce qu'on cherche, ni d'en découvrir toutes les ressources. Nous vous engageons toutefois à l'explorer car on y trouve des choses très intéressantes, comme par exemple le programme USBCheck dont vous trouverez une description dans cette page.

Vous trouverez donc ci-dessous un petit inventaire (pas forcément exhaustif) et la descrition des fichiers  et programmes qui vont avec SIOC :

Sioc.exe

Sioc.exe est le logiciel principal qui permet l'exécution de programmes écrits en langage SIOC (fichiers .ssi). Il est disponible ici sur le site Opencockpits. Au moment où nous écrivons, la version courante de SIOC est la 3.5.

Il faut le télécharger et l'installer dans un dossier propre (ou dans le dossier IOCards, si vous avez installé ce dernier). Lors de l'installation de sioc.exe, de nombreux autres fichiers sont installés avec lui.

Sioc.ini

Lors de son lancement (ou relancement -reload-), sioc.exe lit son le fichier de configuration sioc.ini, qui va définir le comportement de SIOC, afin qu'il reflète votre matériel et vos désirs. En particulier, sioc.ini définit quel fichier sioc.exe doit exécuter (c'est-à-dire le nom de votre programme). Il répertorie aussi toutes les cartes IOCards reliées au PC, ainsi que la configuration réseau si l'on désire utiliser IOCP.

Indiquer les bons paramètres dans le fichier sioc.ini est essentiel. La version installée avec sioc.exe est commentée en espagnol et en anglais. J'en ai fait une version francisée que vous  pouvez afficher ou télécharger. Notez que par sécurité, cette version s'appelle siocfr.ini ; il faudra la renommer sioc.ini et la placer dans le dossier de SIOC pour la faire fonctionner. 

En effet, à son lancement, sioc.exe lit systématiquement le fichier nommé sioc.ini qui se trouve dans le même répertoire que lui, et il est impossible de modifier ce comportement. Donc, avant de modifier ou de remplacer sioc.ini pensez à en faire une copie que vous placerez en lieu sûr, pour pouvoir revenir en arrière en cas de besoin.

sioc.ini est un fichier texte que l'on peut modifier soit manuellement dans un éditeur de texte tel que NotePad, soit avec le logiciel dédié Configsioc.exe (voir ci-dessous). Notez toutefois que ConfigSioc.exe présente quelques inconvénients. Vous trouverez des explications supplémentaires sur sioc.ini en français dans la description de  Configsioc.exe, de JJ Scohy, que vous trouverez ici.

Si vous avez plusieurs cartes d'un même type, reportez-vous à la rubrique Les numéros d'index et de Device.

ConfigSioc_ini.exe

C'est un petit logiciel gratuit et peu connu d'Opencockpits. Vous pouvez le trouver ici. Il sert à modifier le fichier sioc.ini à travers une interface graphique, ce qui simplifie le travail.

Il en existe une bonne description en français par JJ Scohy, que vous trouverez ici.

Configsioc_ini.exe présente toutefois quelques inconvénients :

  • Il permet d'ouvrir tous les fichiers .ini. Mais il ne sait configurer que le fichier sioc.ini. Si par erreur, vous ouvrez avec lui par exemple IOCards.ini ou ConfigIOCards.ini, vous allez perdre leur contenu actuel et le remplacer par un contenu destiné à sioc.ini, donc cela ne marchera plus. Il faut donc être très prudent sur le nom du fichier à ouvrir...
  • Dans sa version actuelle, on il ne conserve pas les numéros de Device supérieurs à 100 : on peut les saisir, mais il revient aussitôt à 100. Or il arrive que des cartes aient un numéro supérieur.
  • Il oblige à connaître l'anglais.

Malgré tout, il peut rendre de bons services si vous ne voulez pas mettre les mains "dans le cambouis"...

ConfigSioc.ini

A ne pas confondre avec le précédent. C'est le fichier de configuration de Configsioc.exe (voir ci-dessous).

ConfigSioc.exe

A ne pas confondre non plus avec Configsioc_ini.exe. Il s'agit cette fois du logiciel permettant d'écrire des programmes SIOC (en d'autres termes des fichiers .ssi) directement sous une interface visuelle. C'est la base de la programmation en SIOC, et pour en savoir plus je vous renvoie une fois de plus à Simucockpit, dans la page Sioc.

Sioc.ssi

Les fichiers .ssi sont des programmes SIOC exécutables par Sioc.exe. Ils sont produits par Configsioc.exe. Ils sont compilés, c'est-à-dire qu'ils ne sont pas constitués de texte, mais de codes compréhensibles seulement par SIOC.

Le dossier initial de SIOC contient un fichier sioc.ssi, d'exemple ou vide, ainsi que plusieurs autres fichiers .ssi qui sont autant d'exemples.

Vous pouvez nommer votre propre programme comme vous voulez, mais il faut qu'il se trouve dans le même dossier que sioc.exe, et inscrire son nom dans la rubrique CONFIG_FILE de sioc.ini.

Sioc.txt

Comme déjà dit, il existe deux façons de programmer en SIOC : soit directement avec Configsioc.exe (ce qui produit directement un fichier .ssi), soit dans un éditeur de texte. Vous pouvez aussi commencer avec Configsioc.exe, puis exporter le programme en texte par la commande File -> Export Text.

Comme expliqué dans la page Programmation, il y a des avantages à programmer dans un éditeur de texte. Dans ce cas, donnez à votre programme un nom e, .txt, et indiquez ce nom directement dans la rubrique CONFIG_FILE de sioc.ini. A son lancement (ou relancement), Sioc.exe compile le fichier .txt et produit un fichier .ssi de même nom. Il utilise pour cela l'application sioc_compiler.exe, que l'on ne peut pas lancer directement.

Vous pouvez afficher le programme SIOC ou le télécharger entièrement en .txt.

Les numéros d'index et de Device

L'un des points difficiles de sioc.ini concerne les numéros d'index et les numéros de Device. En effet, quand avez plusieurs cartes du même type (MasterCard, Carte USB, USBServo, etc.) est important de bien comprendre le fonctionnement des numéros d'index.

Le numéro de Device

Device signifie en anglais périphérique. Le numéro de Device le numéro sous lequel l'ordinateur voit un périphérique USB connecté sur l'un des ports. il est propre à chaque carte, mais dans certains cas, il peut changer si l'on branche la carte sur un autre port USB. Ce n'est toutefois pas systématique. Pour connaître le numéro de Device d'un périphérique donné (carte IOCard ou autre), le plus simple est d'utiliser USBCheck.

Le numéro d'index

Quand on a plusieurs cartes du même type, il faut évidemment indiquer à SIOC à laquelle d'entre elles chaque instruction s'adresse. C'est pour cela que les instructions SIOC liées à une carte peuvent comprendre l'argument Device, qui lui indique le numéro de la carte concernée par cette instruction.

Mais comme le numéro de Device peut changer, il serait très gênant de devoir modifier toutes les lignes SIOC qui y font référence. C'est ici qu'intervient le numéro d'index. Dans sioc.ini, on attribue un numéro arbitraire, mais fixe, à chaque carte IOCard d'un type donné, et on lui fait correspondre, une fois pour toutes, le numéro de device de la carte.

Ainsi, si le numéro de device change (parce qu'on a branché la carte sur un autre port USB, sur un autre ordinateur, ou encore qu'on a branché les cartes dans un ordre différent), il suffit de modifier le numéro de device dans le ficher sioc.ini. Le numéro d'index ne change pas, et le programme SIOC n'a pas besoin d'être modifié.

S'il n'y a qu'une seule carte d'un même type, le numéro d'index peut être omis dans les instructions SIOC s'il est 0 dans le fichier sioc.ini.

La difficulté provient du fait que si l'on programme dans un logiciel de texte (ou si l'on exporte le .ssi produit par ConfigSioc), le numéro d'index apparaît dans les instructions SIOC sous l'argument Device X, alors que d'une part, ce n'est pas le numéro de device et que d'autre part, si on utilise ConfigSioc, il faut utiliser la case Dispositivo pour le saisir. Le numéro de Device n'apparaît que dans sioc.ini. C'est une des rares erreurs de langage qu'on peut reprocher à SIOC.

Voici une ligne SIOC qui définit deux sorties servos, avec une seule carte USB Servo (là, on peut omettre le paramètre Device) :

var 0001, nave servo1, link USB_SERVOS, output 1, PosL 1, PosC 512, PosL 1023
var 0002, nave servo2, link USB_SERVOS, output 2, PosL 1, PosC 512, PosL 1023

Ici, comme il n'y a aucun Device dans les instructions, SIOC utilise la valeur 0, c'est la carte par défaut.

Et s'il y a deux cartes servo :

var 0001, nave servo1, link USB_SERVOS, Device 1, output 1, PosL 1, PosC 512, PosL 1023 // servo 1 sur carte 1
var 0010, nave servo7, link USB_SERVOS, Device 2, output 1, PosL 1, PosC 512, PosL 1023 // servo 7, le premier de la carte 2

Là, grâce à sioc.ini, SIOC sait que USB_SERVOS, Device 1, c'est la carte de numéro de device 23 (par exemple) et que USB_SERVOS, Device 2 correspond à la carte de Device 45 (par exemple).

Enfin, les numéros d'index d'un type de carte sont indépendants de ceux d'un autre type. En d'autres termes, vous pouvez avoir des index 1 et 2 pour des cartes servos, de nouveau 1 et 2 pour des cartes USBOutput, etc. Le lien avec le numéro de Device est toujours fait dans sioc.ini.i