Envoi de caractère "p0=1" à un périphérique : RS232

lionkid Messages postés 18 Date d'inscription mercredi 27 décembre 2006 Statut Membre Dernière intervention 15 mars 2011 - 13 mars 2008 à 16:29
lionkid007 Messages postés 4 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 22 mars 2008 - 22 mars 2008 à 12:54
Bonjour!

J'ai décidé d'écrire ce message car je n'arrive toujours pas à faire fonctionner mon périphérique! J'ai écrit le code me permettant d'écrire et de lire sur un port série en java, mais mon périphérique n'execute rien!

L'envoi de p0=1 provoque une action de même que l'envoi de p1=1 etc...
J'ai fait (entre autre) un :

String data=new String();
data="p0=1";
out.write(data, 0, data.length);

Mais rien à faire, cela ne marche pas! Auriez-vous une idée?
Merci d'avance!

PS : Comment faire pour envoyer directement le code ASCII de ma chaîne?

2 réponses

sheorogath Messages postés 2448 Date d'inscription samedi 21 février 2004 Statut Modérateur Dernière intervention 29 janvier 2010 17
14 mars 2008 à 14:30
regarde ma source PPE pour voir si elle peux t'aider

quel genre de periph as tu ?

"n'est pas mort ce qui semble a jamais dormir et en d'etrange temps meme la mort peut mourrir"
0
lionkid007 Messages postés 4 Date d'inscription dimanche 17 février 2008 Statut Membre Dernière intervention 22 mars 2008
22 mars 2008 à 12:54
Salut sheorogath!

Je te remercie pour ta réponse! J'ai enfin (après bp de tests) réussit à faire fonctionner mon périphérique qui est un powerswitch: Une alimentation commandée par un port série. En fonction de l'information envoyée j'alimente tel ou tel truc.
Il a fallu que je compare pourquoi avec hypterminal il fonctionnait alors qu'avec mon programme java il ne fonctionnait pas.

1° Il fallait envoyer l'équivalent de la touche entrer pour démarrer le périphérique. J'avais mis un "\n" mais il fallait en fait écrire un "\r" sur le port série... Je l'ai trouvé en analysant la trame envoyée à l'oscilloscope...C'est dire...

2° Il m'a fallu faire des Thread.sleep(200) // Faire une tempo de 200 ms car les données envoyées n'étaient arrivaient trop vite pour le powerswitch. donc écrire "p1=1" puis faire un Thread.sleep(200) puis ecrire "p2=1" etc... Un peu lourd, mais ca marche!

Merci !

++ ;)
0
Rejoignez-nous