|
@@ -1,33 +1,39 @@
|
|
|
-import binascii
|
|
|
-
|
|
|
class GPS:
|
|
|
def __init__(self, data):
|
|
|
data = data[0]
|
|
|
- self.data = bytes(data[0])
|
|
|
- self.codec_id = data[23]
|
|
|
- self.number_of_data = data[24]
|
|
|
- self.gps_data = data[27:42]
|
|
|
+ self.data = data
|
|
|
+ self.packet_id = data[2:4]
|
|
|
+ self.avl_packet_id = data[5:6]
|
|
|
+ self.codec_id = data[23:24]
|
|
|
+ self.number_of_data = data[24:25]
|
|
|
+ self.gps_data = data[33:200]
|
|
|
|
|
|
def decode_gps_data(self):
|
|
|
- longitude = self.gps_data[0:4]
|
|
|
- latitude = self.gps_data[4:9]
|
|
|
- altitude = self.gps_data[9:11]
|
|
|
+ longitude = self.gps_data[1:5]
|
|
|
+ latitude = self.gps_data[5:9]
|
|
|
+ altitude = self.gps_data[9:13]
|
|
|
angle = self.gps_data[11:13]
|
|
|
- speed = self.gps_data[13:15]
|
|
|
-
|
|
|
+ speed = self.gps_data[14:16]
|
|
|
decoded_data = {
|
|
|
- "Longitude": longitude,
|
|
|
- "Latitude": latitude,
|
|
|
- "Altitude": altitude,
|
|
|
- "Angle": angle,
|
|
|
- "Speed": speed
|
|
|
+ "Longitude": int(longitude.hex(),16),
|
|
|
+ "Latitude": int(latitude.hex(),16),
|
|
|
+ "Altitude": int(altitude.hex(),16),
|
|
|
+ "Angle": int(angle.hex(),16),
|
|
|
+ "Speed": int(speed.hex(),16)
|
|
|
}
|
|
|
|
|
|
return decoded_data
|
|
|
|
|
|
def print_gps_data(self):
|
|
|
+ gps_file = open("gps_data.txt","a")
|
|
|
decoded_data = self.decode_gps_data()
|
|
|
for key, value in decoded_data.items():
|
|
|
+ if str(key) == "Latitude" or str(key) == "Longitude":
|
|
|
+ key,value = str(key),str(value)
|
|
|
+ value = value[0:2]+"."+value[2:len(value)]
|
|
|
+ else:
|
|
|
+ key,value = str(key),str(value)
|
|
|
+ gps_file.write((key+" "+value+"\n"))
|
|
|
print(key, value)
|
|
|
-
|
|
|
+ gps_file.close()
|
|
|
|