Quantcast
Channel: Raspberry Pi Forums
Viewing all articles
Browse latest Browse all 5145

Python • Re: Serial communication problem

$
0
0
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:
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



Viewing all articles
Browse latest Browse all 5145

Trending Articles