Review crossfire python parser (reverted from commit 18a9758511)

This commit is contained in:
3djc
2018-01-04 14:24:00 +01:00
parent 18a9758511
commit e50d10bfe6
+7 -24
View File
@@ -70,17 +70,6 @@ crc8tab = [
0xAD, 0x78, 0xD2, 0x07, 0x53, 0x86, 0x2C, 0xF9
]
def getCrossfireValue(data=[], *args):
sign = data[-1]
if (sign & 0x80) == 0:
value = -1
else:
value = -0
for n in data:
value = value << 8
value = value + n
return value
def crc8(buffer):
crc = 0
for c in buffer:
@@ -88,27 +77,21 @@ def crc8(buffer):
return crc
def ParseGPS(payload):
lat = getCrossfireValue(payload[0:4]) / 1e7
long = getCrossfireValue(payload[4:8])/ 1e7
speed = getCrossfireValue(payload[8:10])
head = getCrossfireValue(payload[10:12])
alt = getCrossfireValue(payload[12:14]) - 1000
numsat = payload[14]
return "[GPS] lat:%f long:%f speed:%d heading:%d alt:%d numsat:%d" % (lat, long, speed, head, alt, numsat)
pass
def ParseBattery(payload):
voltage = getCrossfireValue(payload[0:2]) / 10
current = getCrossfireValue(payload[2:4]) / 10
consumption = getCrossfireValue(payload[4:7])
voltage = float((payload[0] << 8) + payload[1]) / 10
current = float((payload[2] << 8) + payload[3]) / 10
consumption = (payload[4] << 16) + (payload[5] << 8) + payload[6]
return "[Battery] %.1fV %.1fA %dmAh" % (voltage, current, consumption)
def ParseLinkStatistics(payload):
return "[Link Statistics] "
def ParseAttitude(payload):
pitch = getCrossfireValue(payload[0:2])/ 1000
roll = getCrossfireValue(payload[2:4]) / 1000
yaw = getCrossfireValue(payload[4:6]) / 1000
pitch = float((payload[0] << 8) + payload[1]) / 1000
roll = float((payload[2] << 8) + payload[3]) / 1000
yaw = float((payload[4] << 8) + payload[5]) / 1000
return "[Attitude] pitch=%.3f roll=%.3f yaw=%.3f" % (pitch, roll, yaw)
def ParseFlightMode(payload):