Bonjour à tous!
J'ai finalement réussi à régler mon problème de port série, il manquait la bonne ligne dans le fichier /boot/config.txt. J'arrive désormais à obtenir des données avec le code suivant :
Code : Tout sélectionner
#!/usr/bin/python3
#! -*- coding=utf-8 -*-
import serial #module pour manipuler l'UART
import sys
ser = serial.Serial('/dev/ttyAMA0', 4800, timeout=1, bytesize=8, stopbits=1, parity=serial.PARITY_ODD)
message = ""
messageStart = False
messageIndex = 0
messageSize = 0
while True: # Boucle infinie
data = ser.read()
datalen = len(data)
# print(data)
# print(datalen)
if datalen > 0:
for idx in range(datalen):
byteVal = 255 - data[idx] # Inversion des bits
message += "%0.2X " % (byteVal)
messageIndex += 1
# print(message)
if not messageStart:
# Detection du debut d'un message
if byteVal == 0xDC:
messageStart = True
messageIndex = 0
# print(message)
else:
# Recuperation de la taille du message sur
# le quatrieme octet (index=3)
if messageIndex == 3:
messageSize = byteVal
# Lecture du dernier octet du message
if messageIndex == messageSize - 1:
messageStart = False
messageIndex = 1
print (message)
message = ""
# print ("/n")
Finalement j'ai du supprimer ord() qui n'est plus utile avec la version 3 de python.
J'arrive donc à obtenir des données mais que ne semblent pas cohérentes avec ce que je devrais avoir, je pense encore dû à une histoire de conversion des données avec le langage python, je vais continuer à creuser dans ce sens. J'ai lancé cette commande :
et pour le moment, en 5mn, j'ai eu ce retour :
Code : Tout sélectionner
8A 00 0B 06 3D 05 17 DC 0A D5 DC 80 0A 0E 07 05 3D 17 DC 00 00 2E A6 B2 1C 02 05 00 02 48 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1F FF 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F 1F FF 3F 3F 3F 3F 3F FF 3F FF 1F F9 99 67 9F 99 01 E7 87 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 1F 1F 1F 1F 1F FF 1F FF 1F 1F FF 3F 3F 3F 3F 3F FF 3F FF 3F F9 99 E7 19 19 79 01 01 01 E1 07 01 7F 1F 07 F9 07 19 79 3F 3F 3F 3F FF 3F FF FF 3F 3F FF 1F F9 99 67 9F 99 01 E7 87 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 3F 3F FF
Alors que je devrait recevoir une trame toutes les 5 secondes ( effectivement quand je lance cat /dev/ttyAMA0, je reçois un retour toutes les 4-5sec avec des caractères bizarres.
Je me demande si je n'ai pas un souci de buffer, mais ce n'ai pas encore bien clair pour moi... Tout conseil ou suggestion est bien sûr toujours le bienvenue, je continuerai d'alimenter ce post au fur et à mesure jusqu'au résultat final au cas où quelqu'un d'autre voudrait se lancer dans l'aventure.
