added ability to output csv file in forza

This commit is contained in:
Seth Samuel 2024-11-10 23:55:27 +13:00
parent 237708e155
commit 84da201ed8
4 changed files with 1255 additions and 5 deletions

View file

@ -1,6 +1,6 @@
import struct
#####FROZA_DATA_FORMAT = '<iIfffffffffffffffffffffffffffffffffffffffffffffffffffiiiiifffffffffffffffffHBBBBBBbbb'
FORZA_DATA_FORMAT = '<lL27f4l20f5lL27f4l20f5l3l17fH9b'
FORZA_DATA_FORMAT = '<iIfffffffffffffffffffffffffffiiiiffffffffffffffffffffiiiiifffffffffffffffffHBBBBBBbbbffffi'
####FORZA_DATA_FORMAT = '<iI27f4i20f5i17fH6B3bi19fH6B4b'
def unpackData(unpackedData):

View file

@ -2,6 +2,7 @@ import socket
import struct
import serial
import time
import csv
from enum import Enum
from GAME_METHODS import *
@ -60,8 +61,12 @@ while connectedArduino == False:
print("please check connection to arduino and verify the correct COM port")
time.sleep(1)
csvOut = False
csvFile = open('dataOut.csv',"a")
##csvWriter = csv.writer(csvFile)
firstRun= True
print(struct.calcsize(FORZA_METHODS.FORZA_DATA_FORMAT))
#print(struct.calcsize(FORZA_METHODS.FORZA_DATA_FORMAT))
print("ready:\n")
while True:
data, addr = sock.recvfrom(1024)
@ -70,8 +75,21 @@ while True:
carData = BEAMNG_METHODS.unpackData(unpackedData)
kmh=carData["speed"]*3.6
elif gameType == GameType.FORZA:
# unpackedData = struct.unpack(FORZA_METHODS.FORZA_DATA_FORMAT,data)
carData = FORZA_METHODS.get_data(data)
kmh = carData["Speed"]*3.6
unpackedData = struct.unpack(FORZA_METHODS.FORZA_DATA_FORMAT,data)
carData = FORZA_METHODS.unpackData(unpackedData)
#carData = FORZA_METHODS.get_data(data)
kmh = carData["Power"]*3.6
if csvOut == True:
if firstRun == True:
out=""
for im,nm in carData.items():
out = out + im + ","
csvFile.write(out + "\n")
firstRun=False
outString=""
for itm,num in carData.items():
outString = outString + str(num) +","
csvFile.write(outString+"\n")
toPi.write(str(kmh).encode()+":".encode())

1232
dataOut.csv Normal file

File diff suppressed because it is too large Load diff