Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1542 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Javascript//Xml] Port RS232 pour widget

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Javascript//Xml] Port RS232 pour widget

n°2078278
Weldod
Posté le 26-05-2011 à 07:28:21  profilanswer
 

Bonjour,
 
Je suis nouveau sur ce forum, c'est mon premier topic, je m'excuse déjà si je fais des fautes d'orthographe ou si j’enfreins des codes éthiques
propre au métier d'informaticien que je respecte beaucoup.  
 
Je me présente en quelques lignes. Je suis apprenti électronicien orienté programmation bas niveau (C, proton, Assembleur). Je suis suisse et ne connais dans les langages haut niveau que les bases du Python, un poil de PHP et de HTML.  
 
J'ai dans le projet de faire un widget fonctionnant sous Windows Vista mais j'ai un souci au niveau du port RS232 (c'est un comble presque pour un électronicien).
 
Mes questions :
 
Existe-t-il une librairie en Javascript permettant de contrôler les ports série de ma machine ?
Est-il possible si il n'y a pas de librairies, d'implémenter un bout de code "Python" dans mon script Js ?
 
Je vous remercie déjà de vos (j’espère) nombreuses réponse pleine d'entrain et de joie ;)
 
Cordialement, Weldod

mood
Publicité
Posté le 26-05-2011 à 07:28:21  profilanswer
 

n°2078321
gelatine_v​elue
Posté le 26-05-2011 à 10:08:58  profilanswer
 

Lol wut?
Le javascript est en général lancé dans une VM lancée depuis un navigateur. Cette VM est séparée de l'OS, ce qui permet la compatibilité inter-OS, mais limite aussi l'accès au système de fichiers et aux ressources matérielles (et personne n'a essayé d'arranger ça vu les problèmes de sécurité évidents que ça pose.)
 
Donc en js interprété depuis un navigateur t'as aucune chance d'accéder à une ressource matérielle quelconque, comme un port série.
Par contre si tu as une autre VM javascript qui tourne directement depuis l'OS en théorie c'est possible, faudrait vérifier dans la norme ECMA si c'est vraiment possible. Mais ça me parait très tiré par les cheveux.

n°2078327
Weldod
Posté le 26-05-2011 à 10:33:26  profilanswer
 

gelatine_velue a écrit :

Lol wut?
Le javascript est en général lancé dans une VM lancée depuis un navigateur. Cette VM est séparée de l'OS, ce qui permet la compatibilité inter-OS, mais limite aussi l'accès au système de fichiers et aux ressources matérielles (et personne n'a essayé d'arranger ça vu les problèmes de sécurité évidents que ça pose.)
 
Donc en js interprété depuis un navigateur t'as aucune chance d'accéder à une ressource matérielle quelconque, comme un port série.
Par contre si tu as une autre VM javascript qui tourne directement depuis l'OS en théorie c'est possible, faudrait vérifier dans la norme ECMA si c'est vraiment possible. Mais ça me parait très tiré par les cheveux.


Hello, merci pour ta réponse
 
J'ai toutefois une question qui me turlupine. Comment fait le gadget qui donne le taux d'utilisation du processeur pour aller chercher la valeur si il ne peux aller dans le hardware même ?  
 
Merci pour l’intérêt que tu porte à ce topic
 
Cordialement, Weldod  
 

n°2078335
gelatine_v​elue
Posté le 26-05-2011 à 10:42:54  profilanswer
 

Weldod a écrit :


Hello, merci pour ta réponse
 
J'ai toutefois une question qui me turlupine. Comment fait le gadget qui donne le taux d'utilisation du processeur pour aller chercher la valeur si il ne peux aller dans le hardware même ?  
 
Merci pour l’intérêt que tu porte à ce topic
 
Cordialement, Weldod  
 


 
J'avais mal compris ce que tu essayais de faire, j'étais resté dans l'idée que ça tournait dans un browser.
Alors après avoir été regarder très sommairement la doc de microsoft sur ce sujet (http://msdn.microsoft.com/en-us/library/ff486363(v=VS.85).aspx), je vois que microsoft expose côté js des attributs non standards qui te permettent sans doute de faire ce que tu veux, comem System.gadget.
 
Edit: En fait j'avais pas si tort, apparemment il n'y a pas de solution simple:  http://stackoverflow.com/questions [...] erial-port
 
Vu que les gadgets sont du html/js, pourquoi ne regarderais-tu pas dans le code du gadget d'affiche cpu/ram pour voir comment il fait?

Message cité 1 fois
Message édité par gelatine_velue le 26-05-2011 à 10:51:05
n°2078350
Weldod
Posté le 26-05-2011 à 11:15:17  profilanswer
 

gelatine_velue a écrit :


 
J'avais mal compris ce que tu essayais de faire, j'étais resté dans l'idée que ça tournait dans un browser.
Alors après avoir été regarder très sommairement la doc de microsoft sur ce sujet (http://msdn.microsoft.com/en-us/library/ff486363(v=VS.85).aspx), je vois que microsoft expose côté js des attributs non standards qui te permettent sans doute de faire ce que tu veux, comem System.gadget.
 
Edit: En fait j'avais pas si tort, apparemment il n'y a pas de solution simple:  http://stackoverflow.com/questions [...] erial-port
 
Vu que les gadgets sont du html/js, pourquoi ne regarderais-tu pas dans le code du gadget d'affiche cpu/ram pour voir comment il fait?


Hello, alors j'ai trouvé le code:

Code :
  1. ////////////////////////////////////////////////////////////////////////////////
  2. //
  3. // update machine status statistics
  4. //
  5. ////////////////////////////////////////////////////////////////////////////////
  6. function machineStatus()
  7. {
  8. this.CPUCount = System.Machine.CPUs.count;
  9. var usageTotal = 0;
  10. for (var i = 0; i < this.CPUCount; i++)
  11. {
  12.  usageTotal += System.Machine.CPUs.item(i).usagePercentage;
  13. }
  14. this.CPUUsagePercentage = Math.min(Math.max(0, usageTotal / this.CPUCount), 100);
  15. this.totalMemory = System.Machine.totalMemory;
  16. this.availableMemory = System.Machine.availableMemory;
  17. if((this.totalMemory > 0) && (this.totalMemory > this.availableMemory))
  18. {
  19.  this.memoryPercentage = Math.min(100 - (this.availableMemory / this.totalMemory * 100), 100);
  20. }
  21. else
  22. {
  23.  this.memoryPercentage = 0;
  24. }
  25. }


 
J'ai beau essayer, c'est très très haut niveau, c'est de l'orienté objet non ?  
 
Je ne comprends pas d'ou il sort ce

Code :
  1. this.CPUCount = System.Machine.CPUs.count;


Immaginons que j'abandonne de faire ainsi mais je m'orienterai vers un widget qui utilise un script externe.
 
Une solution:
 
Je clique sur mon bouton magique et là le widget va demander à un script python d'écrire dans un fichier texte les données du port et paf, le widget lis seulement les données du fichier texte et les affiche x) !  

Pour info :  
 
Mon projet est un thermomètre qui serrait commandé par un widget. J'ai un microprocesseur qui lis une valeur sur une sonde et l'envoie en RS232 que lorsque l'on lui demande via le bit DTR du RS232. La partie demande d'info et envoi d'info fonctionne (script Python ). Moi on m'a demandé de faire pareil mais en l'Affichant dans un widget.  
 
PS: il mesure aussi l'humidité, le taux de CO2 et la pression, mais c'est qu'un détail
 
Est-ce que cette solution serait viable ?  
 
Merci

n°2078362
gelatine_v​elue
Posté le 26-05-2011 à 11:42:45  profilanswer
 

System.Machine.CPUs est un objet js que microsoft te permet d'utiliser directment. Les entrees sorties avec le rs ne sont pas exposées, et donc tu n'as pas cette facilité.
 
Il y a de l'idée dans ce que tu dis. Par contre je ne pesne pas que tu pourras lire des fichiers en js. je vois deux solutions:
 
- Utiliser du java dans ton code js pour faire l'accès au port ou les acces fichiers. C'est possible, si il y a une jvm d'installée.
 
- En python, lancer un serveur web qui permet de faire les traitements requis (un webservice simple en http sans soap quoi). Tu n'as plus alors qu'en js à pointer sur la bonne url en ajax pour faire ce que tu veux.

n°2078370
Weldod
Posté le 26-05-2011 à 11:55:35  profilanswer
 

gelatine_velue a écrit :

System.Machine.CPUs est un objet js que microsoft te permet d'utiliser directment. Les entrees sorties avec le rs ne sont pas exposées, et donc tu n'as pas cette facilité.
 
Il y a de l'idée dans ce que tu dis. Par contre je ne pesne pas que tu pourras lire des fichiers en js. je vois deux solutions:
 
- Utiliser du java dans ton code js pour faire l'accès au port ou les acces fichiers. C'est possible, si il y a une jvm d'installée.
 
- En python, lancer un serveur web qui permet de faire les traitements requis (un webservice simple en http sans soap quoi). Tu n'as plus alors qu'en js à pointer sur la bonne url en ajax pour faire ce que tu veux.


 
Damned, :pfff:
 
Lorsque j'écrivais ma solution, une pensée (est-ce possible d'accéder à des fichier texte en js ? ) m'est venue, mais je n'ai pas voulu la prendre en compte ...  
 
La solution Python, j'y ai pensé et c'est une solution très intéressante, je vais voir pour trouver de la doc, connaissant quelques bases, je devrais pouvoir me débrouiller. Le soucis, c'est l'obligation d'avoir internet ou un réseau (true or false ?) mais comme on ne m'a rien dis sur cela, ça ne devrai pas déranger.
 
Pour la solution Java, ne connaissant pas le java, je ne sais pas comment m'y prendre, cependant, on peut inclure du java dans un script javascript ?  
 
encore une question, la JVM pour java, c'est un peu le GNU de python ?  
 
Merci beaucoup pour l’intérêt que tu porte à mes soucis, :love:  
 
Weldod

n°2078381
gelatine_v​elue
Posté le 26-05-2011 à 12:08:06  profilanswer
 

Weldod a écrit :


 
Damned, :pfff:
 
Lorsque j'écrivais ma solution, une pensée (est-ce possible d'accéder à des fichier texte en js ? ) m'est venue, mais je n'ai pas voulu la prendre en compte ...  
 
La solution Python, j'y ai pensé et c'est une solution très intéressante, je vais voir pour trouver de la doc, connaissant quelques bases, je devrais pouvoir me débrouiller. Le soucis, c'est l'obligation d'avoir internet ou un réseau (true or false ?) mais comme on ne m'a rien dis sur cela, ça ne devrai pas déranger.
 
Pour la solution Java, ne connaissant pas le java, je ne sais pas comment m'y prendre, cependant, on peut inclure du java dans un script javascript ?
 
encore une question, la JVM pour java, c'est un peu le GNU de python ?
 
Merci beaucoup pour l’intérêt que tu porte à mes soucis, :love:  
 
Weldod


 
1- non, le serveur web est sur la même machine que ke widget. Ton pc sert de serveur sur l'ip 127.0.0.1, pas besoin de réseau.
2- Oui
3- Euh tu mélanges des trucs bizarres là. La JVM c'est comme l'interpréteur python si tu veux.
 
 

n°2078589
Weldod
Posté le 27-05-2011 à 07:53:51  profilanswer
 

gelatine_velue a écrit :


 
1- non, le serveur web est sur la même machine que ke widget. Ton pc sert de serveur sur l'ip 127.0.0.1, pas besoin de réseau.
2- Oui
3- Euh tu mélanges des trucs bizarres là. La JVM c'est comme l'interpréteur python si tu veux.
 
 


 
C'est ce que je voulais dire :)  
 
Je vais donc apprendre un nouveau langage, le Java ! :)  
L'option serveur m'intéresse tout de même, je vais aussi la tester !  
 
Je te remercie pour ta patience et des réponses fournies, [:m@nu68]
Je m'en vais donc travailler,
 
Bonne journée et bonne continuation, à la revoyure !
 
Weldod

n°2078619
404 Not Fo​und
Posté le 27-05-2011 à 11:22:21  profilanswer
 

gelatine_velue a écrit :

System.Machine.CPUs est un objet js que microsoft te permet d'utiliser directment. Les entrees sorties avec le rs ne sont pas exposées, et donc tu n'as pas cette facilité.
 
Il y a de l'idée dans ce que tu dis. Par contre je ne pesne pas que tu pourras lire des fichiers en js. je vois deux solutions:
 
- Utiliser du java dans ton code js pour faire l'accès au port ou les acces fichiers. C'est possible, si il y a une jvm d'installée.
 
- En python, lancer un serveur web qui permet de faire les traitements requis (un webservice simple en http sans soap quoi). Tu n'as plus alors qu'en js à pointer sur la bonne url en ajax pour faire ce que tu veux.


 
 [:kleia]
 
Je préfère largement ta deuxième solution. Avec lighttpd (mod_cgi) :)

mood
Publicité
Posté le 27-05-2011 à 11:22:21  profilanswer
 

n°2078627
gelatine_v​elue
Posté le 27-05-2011 à 11:36:48  profilanswer
 

404 Not Found a écrit :


 
 [:kleia]
 
Je préfère largement ta deuxième solution. Avec lighttpd (mod_cgi) :)


 
Ben je suis d'accord avec toi, mais bon j'allais pas omettre une soluce juste parce que...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Javascript//Xml] Port RS232 pour widget

 

Sujets relatifs
PHP / JavaScriptRecherche de testeurs pour SFR Widget
[HTML/CSS/Javascript] Problème d'affichage avec ieProblème XML et XSL
Programmer une communication via liaison RS232 en CPanier Catalogue Javascript
Parser XML en Java et y récupérer des informations[Résolu][javascript][classement array]
[résolu] Ecrire un cookie avec JavaScript[jQuery] Widget multiselect, (dé)grisage dans un form
Plus de sujets relatifs à : [Javascript//Xml] Port RS232 pour widget


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR