1

再会。

我需要使用 SERIAL-USB 转换器和 USB 电缆从 ArduPilotMega 的遥测端口读取遥测数据。

我该怎么做?

在此处输入图像描述

我尝试使用python:

import serial
ser = serial.Serial(port='/dev/ttyUSB0', baudrate=57600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=0)

print("connected to: " + ser.portstr)

line = []

while True:
    for c in ser.read():
        line.append(c)
        if c == '\n':
            print line
            line = []

结果如下所示:

连接到:/dev/ttyUSB0 ['\x1c', '\x01', '\x1e', 'V', '\x00', '\x8c', '=', '\xe2', '\xbc' , 'v', '\xc0', '\xf6', '8', ',', '\xba', 'E', '8', '%', '\x14', '\x01', 'J'、'\x00'、'\x00'、'\x00'、'\x00'、'Q'、'\xc0'、'c'、'>'、'\x00'、'\x00' , '\xc2', '\x1a', '\x01', '\x1b', '\x12', '"', '\x00', '\x00', '\xff', '\xff', '\xfc'、'\x00'、'\x00'、'\x00'、'\x00'、'\x00'、'\x00'、'\xa1'、'\x0e'、'\x01'、 '\x1d', 'V', '\x00','\xdb'、'D'、'f'、'>'、'\r'、'\xec'、'\x1f'、'\x01'、'\x01'、'\xfc'、'\x00 '、'\xfc'、'\x00'、'\xfc'、'\x00'、'\x01'、'\x00'、'\xff'、'\x00'、'\x00'、'\x00 ', '\x00', '\x00', '\x00', '\xed', '\xfe', '\xa4', '\x01', '\xf6', '.', ....\xed', '\xfe', '\xa4', '\x01', '\xf6', '.', ....\xed', '\xfe', '\xa4', '\x01', '\xf6', '.', ....

我怎样才能解码它?

是正确的方式吗?

谢谢!

4

1 回答 1

2

看起来您正在读取十六进制字符,然后将它们连接起来。试试这个:

import serial
ser = serial.Serial(port='/dev/ttyUSB0', baudrate=57600, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, bytesize=serial.EIGHTBITS, timeout=0)

print("connected to: " + ser.portstr)

while True:
    print ser.readline()
于 2014-06-16T01:26:29.067 回答