Outils pour utilisateurs

Outils du site


documentation:creer_le_plugin

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

documentation:creer_le_plugin [2014/04/21 21:40] (Version actuelle)
Ligne 1: Ligne 1:
 +====== Créer un plugin pour une carte perso ======
 +
 +{{documentation:​etoile5.png|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 :
 +
 +{{  documentation:​plugin1.png ​ |Les quatre fichiers nécessaires à la création d'un plugin}}
 +
 +  * **//​photo.bmp//​** ​ : Contient une image de la carte de dimension 100x78 pixels au format BMP 256 couleurs. Le fond est blanc RGB (255,​255,​255)
 +  * **//​mask.bmp//​** ​ : Contient une image de la carte de dimension 100x78 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 100x78 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 : 
 +
 +<​code>​
 +[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
 +</​code>​
 +
 +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**
 +
 +{{  documentation:​plugin2.png ​ |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 :
 +
 +  - La clé **Nom** spécifie le texte de l'​action qui doit apparaître dans l'​organigramme
 +  - 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** :
 +    - 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.
 +    - 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.
 +
 +{{  documentation:​plugin3.png ​ |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 :
 +
 +   - La clé Nom spécifie le texte de l'​action qui doit apparaître dans l'​organigramme
 +   - 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 :
 +
 +<​code>​
 +[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
 +</​code>​
 +
 +Par exemple pour cette carte **LED1_RED** :
 +  - 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 ).
 +  - 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. ​
 +
 +{{  documentation:​plugin4.png ​ |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 100x78 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:​Documentation sur les logiciels|Documentation sur les logiciels]]
 +
 + --- //​[[webmestre@techno-zone-51.fr|Administrateur]] 18/05/2013 21:29//
  
documentation/creer_le_plugin.txt · Dernière modification: 2014/04/21 21:40 (modification externe)