OK,small progress. I noticed that the timeout and time.sleep are important. With different settings, sometimes it responds correctly, but more often it doesn't respond at all. I tried times from 0.1 to 1 second. In the documentation, I found that the clock only responds when it is a full second, but I have no idea how to incorporate this into the script.
LOG:
Program:
LOG:
Serial port COM8 has been opened successfully.
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 31 b'1'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 10
Data to send: b'o\r'
Echo received byte: 33 b'3'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 32
Data to send: b'o\r'
Echo received byte: 30 b'0'
Echo received byte: 39 b'9'
Echo did not match. Expected: o
Received: 09
Data to send: b'o\r'
Echo received byte: 35 b'5'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 50
Data to send: b'o\r'
Echo received byte: 37 b'7'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 70
Data to send: b'o\r'
Echo received byte: 36 b'6'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 62
Data to send: b'o\r'
Echo received byte: 34 b'4'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 42
Data to send: b'o\r'
Echo received byte: 31 b'1'
Echo received byte: 0d b'\r'
Echo did not match. Expected: o
Received: 1
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 31 b'1'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 10
Data to send: b'o\r'
Echo received byte: 33 b'3'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 32
Data to send: b'o\r'
Echo received byte: 32 b'2'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 20
Data to send: b'o\r'
Echo received byte: 35 b'5'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 50
Data to send: b'o\r'
Echo received byte: 37 b'7'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 70
Data to send: b'o\r'
Echo received byte: 36 b'6'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 62
Data to send: b'o\r'
Echo received byte: 34 b'4'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 42
Data to send: b'o\r'
Echo received byte: 31 b'1'
Echo received byte: 0d b'\r'
Echo did not match. Expected: o
Received: 1
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 31 b'1'
Echo did not match. Expected: o
Received: 1
Data to send: b'o\r'
Echo received byte: 30 b'0'
Echo received byte: 33 b'3'
Echo did not match. Expected: o
Received: 03
Data to send: b'o\r'
Echo received byte: 32 b'2'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 22
Data to send: b'o\r'
Echo received byte: 34 b'4'
Echo received byte: 35 b'5'
Echo did not match. Expected: o
Received: 45
Data to send: b'o\r'
Echo received byte: 30 b'0'
Echo received byte: 37 b'7'
Echo did not match. Expected: o
Received: 07
Data to send: b'o\r'
Echo received byte: 30 b'0'
Echo received byte: 36 b'6'
Echo did not match. Expected: o
Received: 06
Data to send: b'o\r'
Echo received byte: 32 b'2'
Echo received byte: 34 b'4'
Echo did not match. Expected: o
Received: 24
Data to send: b'o\r'
Echo received byte: 32 b'2'
Echo received byte: 31 b'1'
Echo did not match. Expected: o
Received: 21
Data to send: b'o\r'
Echo received byte: 0d b'\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 31 b'1'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 10
Data to send: b'o\r'
Echo received byte: 33 b'3'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 32
Data to send: b'o\r'
Echo received byte: 33 b'3'
Echo received byte: 31 b'1'
Echo did not match. Expected: o
Received: 31
Data to send: b'o\r'
Echo received byte: 35 b'5'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 50
Data to send: b'o\r'
Echo received byte: 37 b'7'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 70
Data to send: b'o\r'
Echo received byte: 36 b'6'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 62
Data to send: b'o\r'
Echo received byte: 34 b'4'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 42
Data to send: b'o\r'
Echo received byte: 31 b'1'
Echo received byte: 0d b'\r'
Echo did not match. Expected: o
Received: 1
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 3d b'='
Echo did not match. Expected: o
Received: =
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Data to send: b'o\r'
Echo received byte: 31 b'1'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 10
Data to send: b'o\r'
Echo received byte: 33 b'3'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 32
Data to send: b'o\r'
Echo received byte: 34 b'4'
Echo received byte: 31 b'1'
Echo did not match. Expected: o
Received: 41
Data to send: b'o\r'
Echo received byte: 35 b'5'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 50
Data to send: b'o\r'
Echo received byte: 37 b'7'
Echo received byte: 30 b'0'
Echo did not match. Expected: o
Received: 70
Data to send: b'o\r'
Echo received byte: 36 b'6'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 62
Data to send: b'o\r'
Echo received byte: 34 b'4'
Echo received byte: 32 b'2'
Echo did not match. Expected: o
Received: 42
Data to send: b'o\r'
Echo received byte: 31 b'1'
Echo received byte: 0d b'\r'
Echo did not match. Expected: o
Received: 1
Data to send: b'o\r'
Echo received byte: 7f b'\x7f'
Echo received byte: 7f b'\x7f'
Echo did not match. Expected: o
Received:
Program:
Code:
import serialimport time# Serial port settingsport = 'COM8' # Zmieniony na odpowiedni port dla Raspberry Pispeed = 300data_bits = serial.SEVENBITSstop_bits = serial.STOPBITS_TWOparity = serial.PARITY_NONEtry: # Open serial connection ser = serial.Serial( port=port, baudrate=speed, bytesize=data_bits, stopbits=stop_bits, parity=parity, timeout=0.5 ) # Check if the serial port is opened successfully if ser.isOpen(): print("Serial port", port, "has been opened successfully.") else: raise Exception("Failed to open serial port", port) # Set DTR to high and RTS to low ser.setDTR(True) ser.setRTS(False) while True: # Text to send text_to_send = "o\r" # Sending data (encoding text to ASCII) print("Data to send:", text_to_send.encode('ascii')) ser.write(text_to_send.encode('ascii')) time.sleep(0.5) # Read the echo response byte by byte echo_response = "" for _ in range(len(text_to_send)): res = ser.read(size=1) if res: # Only if res is not empty echo_response += res.decode('ascii') print(f"Echo received byte: {res.hex()} {res}") # Verify if echo matches sent data if echo_response == text_to_send: print("Echo matched, now reading response from device") # Read the response from the device response = ser.readline() print("Response from serial port:", response.decode('latin-1')) else: print("Echo did not match. Expected:", text_to_send, "Received:", echo_response) # If you want to exit the loop, you can use the break statement # break # Close the serial connection ser.close()except Exception as e: print("An error occurred:", e)
Statistics: Posted by dojnikowski — Fri Jun 07, 2024 8:39 am