Pour en apprendre plus sur le bus logiciel ivy, regarder la présentation -> ici <- ou l'article publié à IHM 2012
Quelques éléments sont aussi disponibles sur GitLab et/ou gitpub.
Vous pourrez enfin aussi trouver des informations sur le site du projet Paparazzi
Un supervisieur du middleware est disponible en mode CLI - Probe (java) :
java -cp .;ivy-java-1.2.18.jar fr.dgac.ivy.tools.Probe "^(.*)" -b 127.255.255.255:2010
(ou télécharger l'outil Probe ici)
Un superviseur du middleware en mode GUI - visionneur (java) est disponible ici : visionneur.zip v 1.2
Ouvrir un nouveau terminal
Au préalable, il faudra installer les paquets : make, g++, gcc, libx11-dev et xorg
Télécharger prcre-7.7 (Perl Compatible Regex Expression) et dézipper les fichiers dans le répertoire pcre-7.7
Télécharger ivy C et dézipper les fichiers dans le répertoire ivy (Vous pouvez aussi trouver le code source ->ici<-
Utiliser les commandes suivantes : compiler la librairie PCRE
./configure
make
sudo make install
export LD_LIBRARY_PATH=/lib:/usr/lib:/usr/local/lib
Les librairies PCRE compilées sont stockées dans le répertoire .libs. Compiler maintenant la librairie ivy
cd ../ivy
make
Vous pouvez maintenant essayer l'outil ivyprobe en lançant la commande
./ivyprobe "^(.*)"
Par défaut, ivy se lance sur l'adresse 127.255.255.255:2010 (adresse de broadcast "127.255.255.255" sur le port 2010). Rien ne vous empêche d'en changer 😉 : adresse IP , adresse de broadcast ou de multicast (Ex : 224.0.0.0:2010) [utile si vous voulez connecter vos applications entre windows et WSL2].
Il est temps maintenant de coder votre première application ivy/C.
Le principe d'usage est assez simple :
- On initialise l'agent sur le bus (IvyInit)
- On définit les appels aux fonctions callbacks (IvyBindMsg) à l'aide de regex - Regular Expresssion
- On enregistre l'agent sur le bus IvyStart) à l'adire d'une adresse ip, de broadcast et un port d'écoute
- On lance la mainloop (IvyMainLoop)
"et voilà" !
Récupérer le code ici.
Décompresser le fichier, aller dans le répertoire créé (par exemple ivy_exemple).
Recopier les fichiers libivy.a (depuis le répertoire ivy) et libprce.a (depuis le répertoire pcre7.7/.libs) précédemment compilés dans ce répertoire.
cd ~/cd ivy_exemple cp ~/prce7.7/.libs/libpcre.a . cp ~/ivy/libivy.a .
Compiler le code
gcc Ecoute.c libivy.a libprce.a -o Ecoute
./Ecoute
Ecoute est abonné aux messages suivants : tous '(.*)' et Bye (qui permet de quitter l'application)
Lien 1 vers le code source ou [Lien 2 vers le code source](https://github.com/lii-enac/libivy
La dll ivy pour C# (x86 et x64)
Un exemple de code ivy avec C# et l'exécutable associé
Le lien vers la librairie Java : ivy-java 1.2.18 ou ivy-java 1.2.17
La Javadoc est téléchargeable ici
- Un exemple de programme ivy avec Processing.org* : ivySender et ivyReceiver
La librairie pour nodeJS-javascript : node-ivy ou sur NPM
La librairie pour OCaml : ivy/ocaml
La librairie pour Python : ivy-python 4.0 (v.4.0 au 05/10/2023) ou lien Gitlab (documentation) ou [ ivy-python 3.3 (v.3.3 au 02/02/2021) [compatible Python 2.7]
Pour installer la librairie (Python3) - version stable 4.0 :
sudo pip3 install ivy-python==4.0
Un exemple de programme ivy avec python3 : ivyfirst3.py
Un exemple de programme ivy avec python2 : ivyfirst.py
La librairie pour Qt : IvyQt
La librairie pour Rust : ivy-rust
Des ponts entre différents protocoles de communication ont été écrits :
- TUIO to ivy (Lien vers le protocole TUIO)
- ivy to ROS2 (installation et compilation du noeud ROS)
- OneDollarIvy : un agent (Processing.org) de reconnaissance de gestes basé sur l'algorithme "$1 recognizer"
- ppilot 3.3 : un agent (C#) Text-to-Speech (SAPI5 avec support SSML) windows
- sra5 : un agent (C#) de reconnaissance vocale (SAPI5, support GrXML) windows
- SR_Ivy : un agent (python) de reconnaissance vocale (Google Voice) linux, macOS, windows
- tobiiIvy : un agent (C#) eye-tracker pour Tobii xC windows
- tobiiP5 : un exemple (Processing.org) d'usage de tobiiIvy