diff --git a/GAME_METHODS/BEAMNG_METHODS.py b/GAME_METHODS/BEAMNG_METHODS.py index 7b8eecd..cfca7c0 100644 --- a/GAME_METHODS/BEAMNG_METHODS.py +++ b/GAME_METHODS/BEAMNG_METHODS.py @@ -28,9 +28,9 @@ def unpackData(unpackedData): carData = {"time":unpackedData[0], "carName":unpackedData[1].decode("utf-8"), "flags": decodeFlag(unpackedData[2]), - "gear": unpackedData[3], + "Gear": unpackedData[3], "PLID": unpackedData[4], - "speed": unpackedData[5], + "Speed": unpackedData[5], "rpm": unpackedData[6], "turboPressure":unpackedData[7], "engTemp":unpackedData[8], diff --git a/GAME_METHODS/__pycache__/BEAMNG_METHODS.cpython-311.pyc b/GAME_METHODS/__pycache__/BEAMNG_METHODS.cpython-311.pyc index f9300a4..3f7861a 100644 Binary files a/GAME_METHODS/__pycache__/BEAMNG_METHODS.cpython-311.pyc and b/GAME_METHODS/__pycache__/BEAMNG_METHODS.cpython-311.pyc differ diff --git a/OutGaugeInterpreter.py b/OutGaugeInterpreter.py index 4a4bf3b..0074bef 100644 --- a/OutGaugeInterpreter.py +++ b/OutGaugeInterpreter.py @@ -30,6 +30,10 @@ firstRun= True #used to do the headers for csv files pushingToArduino = False stopThread = False +class outputValue(Enum): + SPEED = "Speed" + GEAR = "Gear" + class GameType(Enum): NONE=0 BEAMNG = "BEAMNG" @@ -105,19 +109,22 @@ def runningThread(): if gameType == GameType.BEAMNG.value: unpackedData = struct.unpack(BEAMNG_METHODS.BEAMNG_DATA_FORMAT,data) carData = BEAMNG_METHODS.unpackData(unpackedData) - kmh=carData["speed"]*3.6 + kmh=carData[tkDataTypeOut.get()] if csvOut == True: csvWriteOut(firstRun,carData,csvFile) firstRun=False elif gameType == GameType.FORZA.value: unpackedData = struct.unpack(FORZA_METHODS.FORZA_DATA_FORMAT,data) carData = FORZA_METHODS.unpackData(unpackedData) - kmh = carData["Speed"]*3.6 + kmh = carData[tkDataTypeOut.get()] if csvOut == True: csvWriteOut(firstRun,carData,csvFile) firstRun=False try: + if (tkDataTypeOut.get() == outputValue.SPEED): + kmh = kmh*3.6 + toPi.write(str(kmh).encode()+":".encode()) except: print("arduino disconnected please check connection\n") @@ -185,6 +192,15 @@ gameSelectLOptions= [GameType.BEAMNG,GameType.FORZA] ##space after text is so the buttons are the same size tkinter.Radiobutton(gameSelectFrame,text="BeamNG ",variable=tkGametype,value=GameType.BEAMNG.value,command=checkBoxChange).pack(anchor="w") tkinter.Radiobutton(gameSelectFrame,text="Forza ",variable=tkGametype,value=GameType.FORZA.value,command=checkBoxChange).pack(anchor="w") +tkDataTypeOut = tkinter.StringVar() +tkDataTypeOut.set(outputValue.SPEED.value) +dataTypeFrame = tkinter.ttk.Frame(secondFrameGui,padding=5,relief="groove",borderwidth=2) +dataTypeFrame.pack() +dataTypeLableText = tkinter.StringVar() +dataTypeLableText.set(value="Select Data Type:") +dataTypeLable = tkinter.Label(dataTypeFrame,textvariable=dataTypeLableText).pack(side="top") +tkinter.Radiobutton(dataTypeFrame,text="Speed",variable=tkDataTypeOut,value=outputValue.SPEED.value).pack(anchor="w") +tkinter.Radiobutton(dataTypeFrame,text="Gear",variable=tkDataTypeOut,value=outputValue.GEAR.value).pack(anchor="w") loggingFrameGui= tkinter.ttk.Frame(firstFrameGui,padding=5,relief="groove",borderwidth=2) loggingFrameGui.pack(anchor="nw") tkLoggingEnabled=tkinter.BooleanVar()