При использовании значения шестнадцатеричной строки чтения последовательного порта Pyserial невозможно получить правильный ответ - PullRequest
0 голосов
/ 30 апреля 2019
[Motor driver modbus protocol information][1]
[Our Motor driver electric scripts ][2]
[Device address and Register information ][3]

Я знаю, что мне нужно использовать кодирование для передачи моей строки hex , я пробую так много способов получить правильное значение, но не совсем.

Например:
Когда я отправляю шестнадцатеричную строку (например, "03060000000149e8") на мой порт:
Она должна ответить "03 06 00 00 00 01 49 e8", котораяЯ получил от cutecom помощника по последовательному порту, но он дал мне "0310000152ff".

Понятия не имею, не могли бы вы помочь мне это исправить?Спасибо.

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import serial
import time

import binascii
import struct

s=serial.Serial('/dev/ttyUSB0',19200,bytesize=8, parity='O', stopbits=1,timeout=None, xonxoff=0)#

message_bytes = "03060000000149e8".decode('hex'
# print str(message_bytes)
s.write(message_bytes)
s.flushInput()
s.flushOutput()
time.sleep(0.1)
# print s.read(1)

# print bytes(s.read(15))#.encode('hex')
# print binascii.hexlify(s.read(15))

serial_data =''
while s.inWaiting() > 0:
    c=s.read(1)
    # or    c=ser.read(1).decode('latin1')
    serial_data += c
    s.flushOutput()
    print hex(int(c.encode('hex'),16))
    # w = struct.unpack("h", c)[0]
    # print w
    # print binascii.hexlify(c)
    # print int(c,16)
print serial_data.encode('hex')
print binascii.hexlify(serial_data.replace('\n',''))#.decode('hex')

# message_bytes_2='03060002ff9c6871'.decode("hex")
# # kk="\x01\x06\x00\x02\x03\xE8\x28\xB4"
# s.write(message_bytes_2)
# time.sleep(0.01)
#
# print s.read(15).encode('hex')
# s.reset_output_buffer()
# message_bytes_2='030300000002c5e9'.decode("hex")
# # kk="\x01\x06\x00\x02\x03\xE8\x28\xB4"
# print s.write(message_bytes_2)
# time.sleep(0.1)
#

s.close()


[1]: https://i.stack.imgur.com/wkXkv.png
[2]: https://i.stack.imgur.com/lkdWK.png
[3]: https://i.stack.imgur.com/ClSjN.png
...