Trame tcp avec retour chariot
Bonjour à tous,
Je sollicite votre aide pour un projet professionnel. Je dois faire communiquer deux machines (balance / imprimante).
Pour ce faire j'avais déjà fais un code en VBA qui fonctionne mais qui n'est pas très robuste (bcp de bugs avec office).
Je souhaite donc réaliser un programme en Python hébergé sur un Raspberry pour améliorer la fiabilité du process ...
Pour le moment j'arrive à recevoir le poids de la balance mais je n'arrive pas à envoyer une trame correcte à l'imprimante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
|
#!/usr/bin/env python3
import socket
import time
adresseIP1 = "192.168.1.202" # Balance
adresseIP2 = "192.168.1.104" # Imprimante
port = 4001 # Se connecter sur le port 4001
client1 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client2 = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client1.connect((adresseIP1, port))
print("Connecté à " + adresseIP1)
client2.connect((adresseIP2, port))
print("Connecté à " + adresseIP2)
while True:
reponse = client1.recv(255)
print(reponse.decode("utf-8"))
reponse = reponse.decode("utf-8")
NbC = len(reponse)
message = ("JDA|V1=00" + reponse[3] + reponse[4] + reponse[5] + reponse[6] + "|")
client2.send(message.encode("utf-8"))
print(message)
time.sleep(5)
time.sleep(5)
client1.close() |
Trame reçue : JDA|V1=001234| ne fonctionne pas
Sur VBA j'envoie la trame suivante : JDA|V1=001234|#CR#LF fonctionne
Code:
1 2 3
|
Trame = "JDA|V1=" & Right(Left(message, 11), 5) & "|"
lStrToSend = Trame & vbCrLf |
Ma question : comment faire l'équivalent d'un "vbCrLf" en python ?
Merci d'avance pour votre aide,
Julien