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 :
Trame reçue : JDA|V1=001234| ne fonctionne pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()
Sur VBA j'envoie la trame suivante : JDA|V1=001234|#CR#LF fonctionne
Ma question : comment faire l'équivalent d'un "vbCrLf" en python ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Trame = "JDA|V1=" & Right(Left(message, 11), 5) & "|" lStrToSend = Trame & vbCrLf
Merci d'avance pour votre aide,
Julien
Partager