david.berlinskiy 1 год назад
Родитель
Сommit
aee39f9ba3
3 измененных файлов с 35 добавлено и 11 удалено
  1. BIN
      __pycache__/decoder.cpython-39.pyc
  2. 5 3
      catcher.py
  3. 30 8
      decoder.py

BIN
__pycache__/decoder.cpython-39.pyc


+ 5 - 3
catcher.py

@@ -1,7 +1,7 @@
 import socket
 import sys
 import time
-from decoder import decode_data
+from decoder import GPS
 import ast
 
 imei = '35209308062032'
@@ -45,8 +45,10 @@ def start_server_UDP():
     
     while True:
        data = sock.recvfrom(8192) 
-       data = decode_data(data)
-       print(data)
+       gps_decoder = GPS(data)
+       print(gps_decoder.codec_id)
+       print(gps_decoder.number_of_data)
+       gps_decoder.print_gps_data()
 
 if __name__ == "__main__":  
     start_server_UDP()

+ 30 - 8
decoder.py

@@ -1,11 +1,33 @@
 import binascii
 
-def decode_data(data):
-    data = bytes(data[0])
-    imei = str(data[7])
-    codec_id=data[1]
-    nubmer_of_data=data[9]
-    print(imei,codec_id,nubmer_of_data)
+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]
 
-    return data
- 
+    def decode_gps_data(self):
+        longitude = self.gps_data[0:4]
+        latitude = self.gps_data[4:9]
+        altitude = self.gps_data[9:11]
+        angle = self.gps_data[11:13]
+        speed = self.gps_data[13:15]
+
+        decoded_data = {
+            "Longitude": longitude,
+            "Latitude": latitude,
+            "Altitude": altitude,
+            "Angle": angle,
+            "Speed": speed
+        }
+        
+        return decoded_data
+    
+    def print_gps_data(self):
+        decoded_data = self.decode_gps_data()
+        for key, value in decoded_data.items():
+            print(key, value)
+            
+