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()
|