add exit to datalogger, fix dataref fetch

This commit is contained in:
marios8543 2024-05-17 01:24:49 +03:00
parent b52f7293d4
commit c1251a18fa
2 changed files with 20 additions and 8 deletions

View File

@ -3,7 +3,8 @@ from flask_socketio import SocketIO
from rendash_main import RenDash from rendash_main import RenDash
from csv import writer, QUOTE_MINIMAL from csv import writer, QUOTE_MINIMAL
from datetime import datetime from datetime import datetime
from time import time_ns, sleep from time import time_ns
from os import _exit
import mod_globals import mod_globals
@ -28,21 +29,20 @@ def mainloop():
log_filename = f'../logs/{datetime.now().strftime("%m-%d-%Y %H:%M:%S")}.csv' log_filename = f'../logs/{datetime.now().strftime("%m-%d-%Y %H:%M:%S")}.csv'
print("Creating log on file: " + log_filename) print("Creating log on file: " + log_filename)
file = open(log_filename, "w") file = open(log_filename, "w")
csv_writer = writer( csv_writer = writer(file, delimiter=" ", quotechar="|", quoting=QUOTE_MINIMAL)
file, delimiter=" ", quotechar="|", quoting=QUOTE_MINIMAL
)
csv_writer.writerow(["time", "freeze"] + watched_datarefs) csv_writer.writerow(["time", "freeze"] + watched_datarefs)
print("Starting data loop") print("Starting data loop")
while running: while running:
frame = [ frame = [
dash.get_ecu_dataref(watched_ecu, dataref)[0] for dataref in watched_datarefs dash.get_ecu_dataref(watched_ecu, dataref)[0]
for dataref in watched_datarefs
] ]
socket.emit("frame", {"frame": frame}) socket.emit("frame", {"frame": frame})
if should_log: if should_log:
csv_writer.writerow([(time_ns() // 1_000_000), freeze] + frame) csv_writer.writerow([(time_ns() // 1_000_000), freeze] + frame)
freeze = 0 freeze = 0
sleep(0.05) socket.sleep(0.05)
if should_log: if should_log:
file.flush() file.flush()
@ -55,6 +55,7 @@ def freeze_event():
freeze = 1 freeze = 1
@web.get("/ecus") @web.get("/ecus")
def get_ecus(): def get_ecus():
ecus = dash.get_ecu_names() ecus = dash.get_ecu_names()
@ -120,6 +121,13 @@ def stop():
def index(): def index():
return send_file("index.html") return send_file("index.html")
@socket.on("exit")
def exit_logger():
try:
socket.stop()
except Exception as e:
print(e)
_exit(0)
if __name__ == "__main__": if __name__ == "__main__":
socket.run(web, "0.0.0.0", 5000) socket.run(web, "0.0.0.0", 5000)

View File

@ -10,6 +10,7 @@
<body> <body>
<div id="app"> <div id="app">
<h1>Ecu Watcher</h1> <h1>Ecu Watcher</h1>
<button @click="sendExit">Exit</button>
<div v-if="!ecuSelected"> <div v-if="!ecuSelected">
<h2>Select ECU</h2> <h2>Select ECU</h2>
<select v-model="selectedEcu" @change="fetchStatesAndParameters"> <select v-model="selectedEcu" @change="fetchStatesAndParameters">
@ -115,6 +116,9 @@
}, },
async sendFreeze() { async sendFreeze() {
socket.emit("freeze"); socket.emit("freeze");
},
async sendExit() {
socket.emit("exit");
} }
}, },
mounted() { mounted() {