Laissez-moi vous expliquer mon problème. J’ai fait un petit programme Arduino dans lequel je lui fais écrire dans la sortie standard des informations basiques (Via le port USB).
1
2
3
4
5
6
7
8
9
10
// Rien de très compliquévoidsetup(){Serial.begin(9600);}voidloop(){Serial.println(1);//Serial.write(5);delay(100);//Serial.flush();}
Mais lorsque j’essaie de récupérer ces informations, j’obtiens à la place des caractères illisibles, que ce soit en Java :
1
2
3
4
5
6
7
8
9
10
11
12
# Lecture de la sortie avec RXTX
/dev/ttyACM0 - Serial
/dev/ttyS80 - Serial
/dev/ttyS0 - Serial
�
�
�
��
�
# etc...
Pourquoi tu lis ttyS80 plutot que ACM0 comme marqué dans ton sous-titre ?
J’ai fait un lien symbolique avec la commande ln entre les deux sorties pour régler un autre problème et j’ai fini par oublier, désolé pour le manque de clarté .
Raah c’est rageant, je ne comprends pas pourquoi picocom ou le moniteur du software Arduino parviennent à obtenir des choses correctes, mais que les lectures simples ne fonctionnent pas.
D’ailleurs picocom semble avoir le même problème au début de sa lecture, du coup j’ai pensé que c’était peut-être simplement des résidus qui compromettaient le début des données. Mais ça n’en a pas l’air
Exit Java et autres joyeusetés, je me reconvertis dans la Saint-Pythonerie.
Pour ceux que ça intéresse :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
importserialser=serial.Serial("/dev/ttyACM0",timeout=1)print(ser)capteur=-1while1:donnee=str(ser.readline())try:capteur=int(donnee)exceptValueError:print("Error value ")ser.flush()print(capteur)
Connectez-vous pour pouvoir poster un message.
Connexion
Pas encore membre ?
Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte