Mise à jour en v1.4 de l’application ‘Mirror By LCProd’ : Gestion du processus de l’application

6/03/2013

Gestion du processus de l’application : Arrêt/Démarrage depuis le panneau des préférences.
-> Télécharger la version 1.4

Mise à jour en v.1.4 pour la gestion du processus de l’application…

– 6 mars 2013 – à télécharger depuis mon site Web.

Le panneau de préférence de l’application permet maintenant de désactiver complètement le processus qui pilote le Mir:ror.

No Comments

Mise à jour en v1.3 de l’application ‘Mirror By LCProd’ pour la gestion du lecteur RFID de Violet (Nabaztag et Cie)

5/03/2013

Création d’un interface pour l’administration des Tags du lecteur RFID,
Correction d’un bug sur l’encodage de la base sous Mountain Lion.
-> Télécharger la version 1.3

La dernière mise à jour en v.1.3 pour Mountain Lion…

– 4 mars 2013 – à télécharger depuis mon site Web.

Un Bug de mauvais gout est venu polluer mon projet lors d’une installation sous Mountain Lion (10.8). La base de données SQLite est mal encodée lors de sa création par l’application.

-> J’ai corrigé le problème en plaçant une base vierge dans le projet avec le bon encodage.


Une jolie interface dans l’esprit de Mac…

C’est en fait un panneau de préférence qui viens s’ajouter à ceux déjà présent dans ‘Préférences Système…’

Comment ça marche ?

L’application s’appuie maintenant sur une base SQLite stockée dans le panneau lui même. Cette base est lue aussi bien par le panneau de préférences pour la gestion des Tags et des actions que par l’application elle même qui va l’utiliser pour gérer les actions demandées.

Les actions sont maintenant des scripts Applescripts (au format .applescript) stockés dans le dossier Library/Application Support/Mirror By LCProd/ de l’utilisateur.

Attention : avec Lion et Mountain Lion, pour faire apparaître le dossier ‘Bibliothèque’ de l’utilisateur : il faut maintenir la touche alt appuyée et sélectionner le menu « Aller ». L’élément « bibliothèque » est alors visible.

 

2 Comments

Application Mac OS X : Gestion du ‘Mir:ror’ de Violet, le lecteur RFID associé au Nabaztags.

27/02/2013

Création d’un package pour le déploiement de l’application de gestion du périphérique ‘Mir:ror’ de la société Violet.
Le tout est disponible dans une belle image disque… à télécharger depuis mon site Web.

A. Le principe de l’application…

Le ‘Mir:ror’ est un périphérique HID (Human Interface Device) qui ne demande pas de pilote. L’interface s’utilise en envoyant ou récupérant des chaines en Héxadécimal.

Je me base sur le projet de hidapi de signal11 pour générer la bibliothèque ‘libhidapi.0.dylib’ pour Mac ainsi que l’exécutable ‘hidtest’ modifié par mes soins.

L’exécutable génère un appel vers un script Bash (mirror_tags.sh) avec comme paramètres : l’action (show/hide) suivi de l’identifiant du tag.

Cas de la transformation en C++ de la variable int vers char :

Je suis (enfin!) arrivé à transformer en C++ la variable integer (qui contient les données héxadécimal du Mir:ror) en char de manière à générer une chaine de texte utilisable… (voir le fichier hidtest.cpp)

char response[1];
char url[256];

response[0]=buf[0];
response[1]=buf[1];

sprintf(url,"%02hhx",response[0], response[1], ...);

Le tout est lancé sur le Mac par le biais d’un service de lancement (launchd).

B. Le package Mac OS X…

Je génère deux versions du projet :

  • Une version 32bits (j’ai un vieux MacBook Pro Core Duo qui ne travaille pas en 64bits)
  • Une version 64bits.

Chaque package copie les différents composant du projet à leur place définitive :

  • Installation de la librairie ‘libhidapi’ dans /usr/local/lib/
  • Installation de l’exécutable ‘Mirror’ dans /usr/local/bin/
  • Installation du fichier de configuration ‘mirror_tags.sh’ dans « ~/Library/Application Support/Mirror By LCProd/ »
  • Installation du service de lancement ‘fr.lcprod.mirror.plist’ dans « ~/Library/LaunchAgents/ »

L’installateur exécute ensuite un le service de lancement pour démarrer l’application.

Cas de l’installateur Mac (PackageMaker) :

L’installateur ne permet pas d’installer en une fois des fichiers pour le système et pour l’utilisateur… je décide de le lancer root en vue d’une installation vers le système.

J’organise le déploiement en trois temps :

  1. Les fichiers soit copiés vers un répertoire temporaire par l’installateur.
  2. Un script Bash de post traitement Bash copie les fichiers vers leurs emplacements définitif : La commande ‘cp -aR’ permet de garder les droits originaux des fichiers 🙂
    cp -aR dossier_depart dossier_destination
  3. Le lancement du service doit être fait par l’utilisateur, j’utilise la commande ‘su’ pour activer ‘launchctl load …’
su $USER -c 'launchctl load -F $HOME/Library/LaunchAgents/fr.lcprod.mirror.plist'

Le tout est disponible dans une belle image disque… à télécharger depuis mon site Web.

C. Vos remarques, vos questions, vos améliorations… : Commentez ici ou envoyez des Tweets (@lcprod)

Un merci pour les ressources du Web :

 

No Comments