Objectif

La conception de Jedicut prend en compte un aspect important du marché des cartes électroniques CNC : toutes ces cartes ne communiquent pas de la même façon avec l'ordinateur. C'est pour répondre à ce besoin qu'un système de plugin a été prévu : ce sont les plugins de communication.

Si vous ne savez pas ce qu'est un plug-in, je vous invite à poursuivre votre lecture.

Définition : un plug-in est un module additionnel s'intégrant dans l'écosystème d'un logiciel, permettant d'ajouter une ou plusieurs fonctionnalités à ce dernier.

Depuis la version 2.4 de Jedicut, une nouvelle famille de plugin est appatru : les plugins de fichier. Le rôle de ces plugins est de permettre la lecture (et l'enregistrement) des fichiers de différents format. Le premier exemple fut l'ajout d'un plugin de fichier permettant l'ouverture des fichiers DXF.

L'objectif de cette page est de présenter la structure de ces plug-in afin que d'autres personnes puissent en développer pour leur machine CNC.

Pré requis

Un logiciel de programmation gratuit : Delphi 7

Jedicut est un logiciel développé avec Delphi 7, et la JVCL (bibliothèque open source de composants Delphi).

L'édition personnelle de Delphi 7 est disponible gratuitement et légalement, en téléchargement sur cette page, et vous aurez même un guide vous expliquant comment l'installer.

Pour télécharger la JVCL, il suffit de se rendre sur le site du projet.

Théoriquement, un plugin devrait pouvoir être développé dans n'importe quel langage de programmation. Les passionnés de C++ ou de Visual basic peuvent développer leur plugin pour Jedicut. Les types de données de Delphi que j'ai utilisés sont compatibles avec des types de données C++ ou Visual basic.

Si des personnes souhaitent participer au développement des plugins avec un autre langage de programmation, qu'elles me contactent via le salon de discussion sur les plugins.

De la même façon, si la structure actuelle des plugins n'est pas adaptée à ce que vous souhaitez faire, idem, on en parle sur le forum. Je me chargerai de faire évoluer Jedicut si besoin.

Un logiciel de gestion de configuration logiciel (ou logiciel de versionning...)

J'ai fait le choix d'ouvrir un projet sur Google Code. Cette plateforme proposée par Google propose d'héberger gratuitement des projets open source. Le principal service offert est la mise à disposition d'un serveur SVN pour la gestion de version des programmes.

Pour ceux qui ne connaissent pas, il s'agit simplement de pouvoir mettre en commun les travaux de plusieurs développeurs de plugins, tout en s'assurant d'une sauvegarde automatique des programmes déposés sur le serveur ainsi qu'une bonne gestion des versions des programmes.

Pour en savoir plus sur la façon d'accéder au service Google Code, je vous invite à suivre ce lien : http://www.aeropassion.net/leblog/post/2009/12/Les-plugins-de-Jedicut-en-open-source

Pour accéder de façon plus convivial aux sources hébergés sur le serveur de Google, j'ai choisi le logiciel gratuit TortoiseSVN.

La dernière version des sources des plugins se trouvent, à l'heure de la rédaction de ces lignes dans le répertoire branches/Jedicut_2.3 .

Open source & licence (chapitre à compléter)

L'objectif de cette ouverture de code est double.

  • Vous aurez des exemples concrets de plugin, prêt à compiler.
  • Vous pourrez améliorer les plugins existants.

Les plugins de communication (chapitre à mettre à jour)

5 fonctions sont publiées par les plug-in de communication, et sont utilisés par Jedicut.

Fonction affichant la description de la dll

function GetDescription : ShortString ; export;

Fonction permettant d’envoyer un ordre de rotation une fois la machine sur « On »

function EmettreBit(bitRotation, bitSens : byte ; vitesse : integer ; chauffe : double) : integer; export;

Mettre la machine sur « On » ou « Off »

procedure MoteurOnOff(moteurOn : boolean); export;

Après avoir allumer la machine, il faut passer cette fonction d’initialisation

procedure InitialiserChauffeEtCommunication(portBase : word ;
                                              ParamChauffe : TParametreChauffe ;
                                              ParamCommunication : TParametreCommunication ;
                                              Materiau : TMateriau); export;

Après avoir mis la machine à « Off », il faut appeler cette méthode libérant la mémoire

procedure LibererRessources; export;


Pour utiliser ces fonctions, Les plugin de communication utilise les structures de données suivantes.

{ Caractéristique d'un matériaux }
type
  PMateriau = ^TMateriau;
  TMateriau = record
    nom : string;
    vitesse1 : double;
    pourcentage1 : double;
    vitesse2 : double;
    pourcentage2 : double;
  end;

{ Caractéristique de la chauffe }
type
  TParametreChauffe = record
    chauffeActive, chauffeMode, chauffeDynamique : boolean;
    chauffeUtilisateur : boolean; // parametre utile lors du pilotage manuel de la machine pour activer/désactiver la chauffe

Si vous avez des questions, utilisez le forum ;)

Les plugins de fichier (paragraphe à écrire)

A suivre...