Bonjour,
Pour un projet .NET (ASPX/C#), j'ai besoin de communiquer avec un périphérique branché sur le port COM de la machine.
J'utiliser pour cela l'ActiveX de Microsoft MSComm.
Via un script javascript, j'arrive bien à détecter le port, à l'ouvrir. Lorsque j'interroge mon périphérique pour obtenir son info de version par exemple, j'obtiens bien la réponse dans mon script.
Le problème que je rencontre maintenant, c'est l'écoute continue du port depuis le script javascript. Le périphérique peut en effet envoyer des données à n'importe quel moment, et il faut que je puisse les récupérer pour les traiter aussitôt. Quand je lui envoie une requête, dans l'attente d'une réponse, ça fonctionne bien. Mais là la difficulté, c'est de lire les infos du port COM sans qu'il n'y ait eu de requête initiale (lecture en continu en somme).
Pour résumer, je cherche à avoir dans mon script javascript l'équivalent de l'événement ComPort_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e) que l'on trouve au niveau des Windows.Forms, avec l'objet System.IO.Port.SerialPort.
J'ai déjà mis en place la version WinForms, avec l'objet SerialPort donc, cela fonctionne très bien, mais pour des raisons de déploiement (application à déployer sur de nombreux postes, et régulièrement), je souhaite trouver une solution plus légère.
J'aimerais donc savoir s'il est possible de faire la même chose dans une WebForm, via le script Javascript.
La question donc : comment écouter en permanence le port COM en javascript ?
Je ne sais pas trop vers quoi me tourner : socket ? thread ? autre ? impossible ?
Merci pour tout conseil.
Partager