RSS: Blog | Wiki | Forum

XulDiag

Un article de Easyneuf.

[modifier] Description

XulDiag permet de voir le statut général de l'EasyGate. On peut ainsi s'informer sur :

  • les périphériques USB : sur quels emplacements sont branchés la souris, le clavier, les clé USB, la webcam ... Certains matériels comme les disques dur USB affichent des information complémentaires comme l'espace libre sur chacune de ses partitions,
  • l'état de la connexion ADSL : informations détaillés (qualité de la ligne) sur le modem interne en offre classique ou simple statut de la connexion en cas d'utilisation d'un Box externe. Des messages d'erreurs simples et explicites sont affichés en cas d'erreur,
  • le débit du réseau grâce à un graphique,
  • le volume sonore et le contrôler,
  • pleins d'autres contrôles sont envisageables!


[modifier] Téléchargement

Une version est disponible pour tout Firefox 2.0 ou 3beta1 sous linux : XulDiag
L'identification des ports USB devrait se faire sans problème sur toute machine, mais l'affichage des positions précises des périphériques ne se fera correctement qu'après modification du template : xul-diag.html et easygate-usb.js. (Rien de bien compliqué, il suffit de préciser les positions des éléments en fonction d'identifiants USB que l'on trouve dans /proc/bus/usb/devices).
En revanche, l'affichage de la connexion et du son reste spécifique à l'easygate.

[modifier] Détails techniques

L'application est scindée en trois principaux composants :

  • Le template qui permet de définir quels objets afficher et où les placer :

Sources : /chrome/content/xul-diag.html
C'est un simple fichier HTML qui est spécifique à chaque machine. Suivant le matériel inclus dans celle-ci, nous afficherons certains objets à des positions précisées dans ce fichier via des attributs HTML.

  • Les définitions des objets graphiques :

Sources : /chrome/content/xbl/*
Ces fichiers XBL permettent de définir les objets graphiques sous forme de fichier XML. Chaque balises insérées dans le template seront ainsi définies via un de ces fichiers qui sont un mélange entre XML et Javascript. Pour simplifier, XBL permet de créer de nouveaux objets HTML en définissant leur sous éléments dans <content>***</content> et d'implémenter une interface avec un constructeur, un destructeur ainsi que des méthodes publiques et privées.

  • Les composants systèmes :

Sources : /components/*
Enfin, la partie la plus complexe : les composants permettant de dialoguer avec le système et ainsi de détecter les périphériques USB, le statut du router, etc. Ce sont des objets XPCOM programmés en Javascript ou en Python. Chaque objet est composé d'un fichier .idl pour en fixer son interface et d'un fichier .js/.py pour son implémentation. Les fichiers XBL vont donc simplement instancier un objet XPCOM et réagir en fonction des évènements qu'il va lui envoyer. Les XBL seront ainsi assez simples et cela nous permet de faciliter le développement graphique.