Javacript et USB

Javacript et USB

Javascript est un langage assez fantastique, il permet de transformer une pauvre petite page web toute statique en quelque chose qui ressemble furieusement à une application native. A une nuance près: Javascript est prisonnier de son browser web et n'est pas censé pouvoir en sortir pour interagir avec le monde réel.

Il se trouve que les librairies fournies par Yoctopuce permettent de piloter les modules USB Yoctopuce en Javascript. Une page web, cinq lignes de Javascript, et hop vous pouvez piloter un relais par USB. Vous ne me croyez pas? vous voulez un exemple ?


Le module Yocto-PowerRelay est un relais USB capable de dériver le courant reçu en entrée vers l'une ou l'autre de ses deux sorties: voila la page web minimale pour le faire fonctionner.


<HTML>
<HEAD>
 <TITLE>Yocto-PowerRelay, minimal example</TITLE>
 <SCRIPT type="text/javascript" src="yocto_api.js"></SCRIPT>
 <SCRIPT type="text/javascript" src="yocto_relay.js"></SCRIPT>
 <SCRIPT language='javascript1.5' type='text/JavaScript'>
  yRegisterHub("http://127.0.0.1:4444/");
  var relay = yFindRelay("RELAYHI1-00055.relay1");
 
  function switchRelay(bool_powered)
  { relay.set_state(bool_powered ? Y_STATE_B : Y_STATE_A); }
 </SCRIPT>
</HEAD>  
<BODY>
  <a href='javascript:switchRelay(false);'>ouput A</a><br>
  <a href='javascript:switchRelay(true);'>output B</a>
</BODY>
</HTML>
 



Vous noterez que je ne vous ai pas menti: Cinq lignes suffisent pour piloter un module USB Yoctopuce :-)


Commenter 2 commentaires Retour au blog



1 - alex_mass Lundi 12 septembre 2011 18H11

j'ai ma réponse à la question du jour qui tournait entre nous: "comment vont-ils faire pour piloter leur module USB en javascript?"

2 - mvuilleu (Yocto-Team)Mardi 13 septembre 2011 5H07

Effectivement: nous avons choisi HTTP comme protocole de communication natif avec tous nos modules. Nous faisons du HTTP sur USB. Chaque device implémente un petit serveur web embarqué, capable de servir une API REST pour le piloter et les pages web pour le configurer.

Pour les langages capables d'accéder directement au port USB, l'accès est direct, HTTP est une encapsulation comme une autre. Pour les autres langages comme Javascript, il suffit d'un service de tunnelling ou d'un yocto-hub ethernet comme celui décrit dans la section Vaporware, et le tour est joué...

Yoctopuce, get your stuff connected.