You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

53 lines
1.2 KiB

import socket
import struct
import cbor2 as cbor
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
print("bind to socket")
sock.bind(('0.0.0.0', 4444))
def unpack_outgauge(packed_data):
game_data = struct.unpack('I4sH2c7f2I3f16s16si', packed_data)
print(f"""Received data:
- time: { game_data[0] }
- car: { game_data[1] }
- flags: { game_data[2] }
- gear: { str(game_data[3]) }
- plid: { game_data[4] }
- speed: { game_data[5] }
- rpm: { game_data[6] }
- turbo: { game_data[7] }
- engTemp: { game_data[8] }
- fuel: { game_data[9] }
- oilpres: { game_data[10] }
- oiltemp: { game_data[11] }
- dashLights: { game_data[12] }
- showLights: { game_data[13] }
- throttle: { game_data[14] }
- brake: { game_data[15] }
- clutch: { game_data[16] }
- display1: { game_data[17] }
- display2: { game_data[18] }
- id: { game_data[19] }
""")
def unpack_extdash(packed_data):
game_data = cbor.loads( packed_data )
print( str(game_data) )
while True:
print( "receiving data...")
data = sock.recv(1024)
if not data:
break # Lost connection
print("got data!")
#unpack_outgauge(data)
unpack_extdash(data)
sock.close()