Outils pour utilisateurs

Outils du site


Panneau latéral

Accès aux Documents

documentation:creer_le_plugin

Créer un plugin pour une carte perso

Niveau expert

Dans cet article, je décrirai la structure des fichiers nécessaires à la création d'un plugin pour ajouter une carte perso dans Organigram. Dans un premier temps, je vais analyser un plugin existant : Celui de la carte d'entrée Fin de Course SWITCH1.

Analyse du plugin de la carte SWITCH1

L'ensemble du plugin doit être contenu dans un sous-répertoire qui doit porter le nom du plugin ( ici SWITCH1 )situé dans le répertoire C:/Program Files/organigram/IOCARD/

L'utilisation des majuscules dans le nom du sous-répertoire est conseillée. En ouvrant avec l'explorateur le contenu du répertoire C:/Program Files/organigram/IOCARD/SWITCH1 nous pouvons observer que celui-ci contient quatre fichiers :

Les quatre fichiers nécessaires à la création d'un plugin

  • photo.bmp : Contient une image de la carte de dimension 100×78 pixels au format BMP 256 couleurs. Le fond est blanc RGB (255,255,255)
  • mask.bmp : Contient une image de la carte de dimension 100×78 pixels au format BMP 256 couleurs. Elles est identique à photo.bmp sauf qu'il faut y ajouter la flèche rouge
  • color.bmp : Contient une image de la carte de dimension 100×78 pixels au format BMP 256 couleurs. Identique à mask.bmp sauf que le fond blanc doit être remplacé par un fond noir RGB(0,0,0)
  • config.ini : Le fichier de configuration du plugin qui est un simple fichier texte et qui décrit les caractéristiques de la carte.

Lorsque vous désirez créer vous même votre plugin, il conviendra de créer ces quatre fichiers qui devront porter exactement les mêmes noms et extensions que ci-dessus ( Attention a bien respecter la casse ! ). Les images color.bmp et mask.bmp sont utilisées pour créer l'icône avec fond transparent qui se déplace lors de la création d'une maquette. L'image Photo.bmp est utilisé dans la fenêtre de configuration des actions de la carte.

Intéressons nous au contenu du fichier config.ini reproduit ci-dessous :

[TITRE]
NOM=Entrée Fin De Course
[PORT]
Type=NI
Interface=ALL
[TEST1]
Nom=Le fin de course est enfoncé ?
Code=R*=0
[TEST2]
Nom=Le fin de course est relaché ?
Code=R*=1

Ce fichier est composé de quatre sections qui sont en majuscule encadrées par des crochets []. Dans chaque Section, il peut y a voir une ou plusieurs clés auxquels on affecte une valeur avec le symbole =.
Par exemple : Dans la section [TITRE] il y a l'unique clé NOM à laquelle on a affecté la valeur 'Entrée Fin De Course'. Je vais maintenant détailler le rôle des différentes sections et des clés qui peuvent s'y trouver :

La section [TITRE]

Cette section donne le nom de la carte tel qu'il doit apparaître dans la liste des cartes disponibles dans Organigram. Ce nom est écrit après la clé NOM

La clé NOM dans la section [TITRE]

La section [PORT]

Dans cette section, on décrit le type de broche qu'il faut pour faire fonctionner la carte. Certaines cartes nécessitent une broche qui soit une entrée numérique, d'autre une entrée analogique, d'autre encore une sortie numérique. Certaines fonctions ne sont accessible que sur l'interface EASYCON1 d'autre uniquement sur EASYCON2.Deux clés permettent de contrôler cela :

  • La clé Type qui peut prendre les valeurs données dans le tableau ci-dessous :
Valeur de type Type de la broche nécessaire
NI Entrée numérique
NO Sortie numérique
AI Entrée Analogique
TC Entrée numérique codée RC5 ( télécommande infrarouge )
I2C Bus de communication I2C
PWM Sortie PWM ( Pulse Width Modulation ) = MLI ( Modulation largeur d'impulsion )
MOT1 Interface commande moteur de la carte EASYCON1
RTC Interface horloge temps réelle de la carte EASYCON2
SRV Sortie Servo moteur

C'est grâce à cette clé Type qu'Organigram autorise ou non de déposer votre carte sur telle ou telle broche au moment de la création de votre maquette.

  • La clé Interface qui peut prendre les valeurs données dans le tableau ci-dessous :
Valeur Type de carte Interface autorisée
EASYCON1 Cette carte d'entrée/sortie ne fonctionne que sur EASYCON1
EASYCON2 Cette carte d'entrée/sortie ne fonctionne que sur EASYCON2
ALL Cette carte d'entrée/sortie fonctionne sur toutes les interfaces

Les sections [TEST1] [TEST2] ... [TESTX]

Dans ces sections, on décrit les différents tests associés à la carte à l'aide de deux clés :

  1. La clé Nom spécifie le texte de l'action qui doit apparaître dans l'organigramme
  2. La clé Code décrit le code qui doit être envoyé à la carte Arduino et interprété par le programme SHELL_MEGA qui s'exécute dans celle-ci.Par exemple pour la carte SWITCH1 :
    1. Le premier test dans la section [TEST1] a pour Nom 'Le fin de course est enfoncé ?' et pour Code associé 'R*=0'. L'étoile sera automatiquement remplacée par le numéro de broche par Organigram. Si par exemple on dépose la carte SWITCH1 sur la broche J-6, l'étoile sera remplacé par 06 et le code envoyé à la carte sera R06 ( Ce qui provoque la lecture d'une valeur numérique sur la broche 6 ). La valeur renvoyée par celle-ci sera comparée à la valeur 0 ce qui déterminera si le test est positif ou non.
    2. Le second test dans la section [TEST2] a pour Nom 'Le fin de course est relâché ?' et pour Code associé 'R*=1'. Ce test provoque la même action que le test précédent. La valeur retournée par la carte sera comparées à la valeur 1.

Ces tests se retrouvent dans la fenêtre de connexion de la carte lors de la création d'une maquette sous organigram.

Les tests associés à la carte

Les sections [ACTION1] [ACTION2] ... [ACTIONX]

Dans ces sections, on décrit les différentes actions associés à la carte à l'aide de deux clés :

  1. La clé Nom spécifie le texte de l'action qui doit apparaître dans l'organigramme
  2. La clé Code décrit le code qui doit être envoyé à  la carte Arduino et interprété par le programme SHELL_MEGA qui s'exécute dans celle-ci.

La carte SWITCH1 ne comporte aucune action. Je vous propose de jeter un œil sur le fichier config.ini de la carte LED1_RED reproduit ci-dessous :

[TITRE]
NOM=Led Rouge
[PORT]
Type=NO
Interface=ALL
[ACTION1]
Nom=Allumer la led rouge
Code=W*1
[ACTION2]
Nom=Eteindre la led rouge
Code=W*0

Par exemple pour cette carte LED1_RED :

  1. La première action dans la section [ACTION1] a pour Nom 'Allumer la led rouge' et pour Code associé 'W*1'. L'étoile sera automatiquement remplacée par le numéro de broche par Organigram. Si par exemple on dépose la carte LED1_RED sur la broche J-6, l'étoile sera remplacé par 06 et le code envoyé à la carte sera W061 ( Ce qui provoque l'écriture d'un 1 logique +5V sur la broche 6 ).
  2. La seconde action dans la section [ACTION2] a pour Nom 'Eteindre la led rouge' et pour Code associé 'W*0'. ( Ecriture d'un 0 logique 0V sur la broche )

Ces actions se retrouvent dans la fenêtre de connexion de la carte lors de la création d'une maquette sous organigram.

Les actions liés à la carte LED1_RED

Réaliser vos propres plugins

Afin d'intégrer vos propres cartes dans Organigram, il vous faudra créer les quatre fichiers photo.bmp , mask.bmp , color.bmp et config.ini et les placer dans un sous-répertoire qui porte le nom de votre plugin. Les images au format BMP devront avoir un format de 100×78 pixels. Le fichier config.ini contiendra un texte descriptif de la carte et la liste de tous les tests et actions liées à cette carte. Le code a destination de l'arduino est décrit en détail dans la documentation officielle du logiciel SHELL_MEGA que vous trouverez sur la page Documentation sur les logiciels

Administrateur 18/05/2013 21:29

documentation/creer_le_plugin.txt · Dernière modification: 2014/04/21 21:40 (modification externe)