diff --git a/__pycache__/app.cpython-310.pyc b/__pycache__/app.cpython-310.pyc new file mode 100644 index 0000000..2aff124 Binary files /dev/null and b/__pycache__/app.cpython-310.pyc differ diff --git a/__pycache__/app.cpython-311.pyc b/__pycache__/app.cpython-311.pyc new file mode 100644 index 0000000..4c9dd19 Binary files /dev/null and b/__pycache__/app.cpython-311.pyc differ diff --git a/__pycache__/app_account.cpython-310.pyc b/__pycache__/app_account.cpython-310.pyc index 305bffa..97c5b57 100644 Binary files a/__pycache__/app_account.cpython-310.pyc and b/__pycache__/app_account.cpython-310.pyc differ diff --git a/__pycache__/app_account.cpython-311.pyc b/__pycache__/app_account.cpython-311.pyc index bcd42bb..d188e77 100644 Binary files a/__pycache__/app_account.cpython-311.pyc and b/__pycache__/app_account.cpython-311.pyc differ diff --git a/__pycache__/app_car.cpython-310.pyc b/__pycache__/app_car.cpython-310.pyc index 6575be2..fe0d817 100644 Binary files a/__pycache__/app_car.cpython-310.pyc and b/__pycache__/app_car.cpython-310.pyc differ diff --git a/__pycache__/app_car.cpython-311.pyc b/__pycache__/app_car.cpython-311.pyc index d009e07..85fce9f 100644 Binary files a/__pycache__/app_car.cpython-311.pyc and b/__pycache__/app_car.cpython-311.pyc differ diff --git a/__pycache__/app_events.cpython-310.pyc b/__pycache__/app_events.cpython-310.pyc index 50afc3e..174bca9 100644 Binary files a/__pycache__/app_events.cpython-310.pyc and b/__pycache__/app_events.cpython-310.pyc differ diff --git a/__pycache__/app_events.cpython-311.pyc b/__pycache__/app_events.cpython-311.pyc index 56f775a..c89fb58 100644 Binary files a/__pycache__/app_events.cpython-311.pyc and b/__pycache__/app_events.cpython-311.pyc differ diff --git a/__pycache__/app_obd.cpython-310.pyc b/__pycache__/app_obd.cpython-310.pyc index 14a7f83..1db8820 100644 Binary files a/__pycache__/app_obd.cpython-310.pyc and b/__pycache__/app_obd.cpython-310.pyc differ diff --git a/__pycache__/app_obd.cpython-311.pyc b/__pycache__/app_obd.cpython-311.pyc index 48d43ab..5945987 100644 Binary files a/__pycache__/app_obd.cpython-311.pyc and b/__pycache__/app_obd.cpython-311.pyc differ diff --git a/__pycache__/obd_car.cpython-310.pyc b/__pycache__/obd_car.cpython-310.pyc new file mode 100644 index 0000000..4f2cec9 Binary files /dev/null and b/__pycache__/obd_car.cpython-310.pyc differ diff --git a/app.py b/app.py index 872803c..191dfc6 100644 --- a/app.py +++ b/app.py @@ -1,36 +1,27 @@ -import app_obd, app_car, app_account, time, app_events, threading from flask import Flask, render_template, make_response, json +import app_obd, app_car, app_account, time from app_events import socketio -port_number = 8000 app = Flask(__name__) +socketio.init_app(app) + +account = app_account.Account() +obd = app_obd.OBD() +car = app_car.Car() @app.route('/') def index(): - print("hello") - return render_template('index.html') + print("hello "+account.name) + return render_template('index.html', account = account) @app.route('/dtc') def dtc(): return render_template('dtc.html') # not sure if im gonna use this -@app.route('/api/obd_speed') +@app.route('/api/obd_speed/') def data(): data = app_obd.speed response = make_response(json.dumps(data)) response.content_type = 'application/json' - return response - -if __name__ == '__main__': - socketio.init_app(app) - p_obd_connection = threading.Thread(target=app_obd.obd_connection) - p_obd_connection.start() - - print("allo?") - - ## - ## only debug, remove in prod - ## - app.run(host='localhost', port=port_number) - ## + return response \ No newline at end of file diff --git a/app_account.py b/app_account.py index 0a507df..7ae368d 100644 --- a/app_account.py +++ b/app_account.py @@ -1,18 +1,5 @@ -import app_car as Car -import threading, app_events -from threading import Thread - -socketio = app_events.SocketIO() -account_name = "quoije" -account_pp_image = "static\img\image.png" -account_car = Car -account_car.model = "YARIS" -account_lock = threading.Lock() - class Account: def __init__(self): - self.name = account_name - self.pp_image = account_pp_image - self.car = account_car - def info(): - return [name, pp_image, car.model] \ No newline at end of file + self.name = "quoije" + self.pp_image = None + self.car = None \ No newline at end of file diff --git a/app_car.py b/app_car.py index e185df7..72e47b9 100644 --- a/app_car.py +++ b/app_car.py @@ -1,3 +1,4 @@ class Car: def __init__(self): - self.model = None \ No newline at end of file + self.model = None + self.obd = None \ No newline at end of file diff --git a/app_events.py b/app_events.py index b4d5bb4..a5ee738 100644 --- a/app_events.py +++ b/app_events.py @@ -1,46 +1,37 @@ from flask_socketio import SocketIO from threading import Thread -import app_obd, app_account, time, threading +import app_obd, time, threading socketio = SocketIO() uptime_lock = threading.Lock() -os_type = ["Linux","Windows"] @socketio.on('connect') def connect_event(): print('Client connected') print('Getting OBD status...') - socketio.emit("connect", "connected with server") - # uptime() + app_obd.obd_connection() + uptime() def uptime(): - thread = Thread(target=loop_uptime(os_type[1])) + thread = Thread(target=loop_uptime) thread.daemon = True thread.start() -def loop_uptime(os): - loop = True +def loop_uptime(): uptime_lock.acquire() - if os == "Linux": - try: - while loop == True: - boottime = time.clock_gettime(time.CLOCK_BOOTTIME) - # Convert to hours, minutes, and seconds - seconds = int(boottime) - minutes, seconds = divmod(seconds, 60) - hours, minutes = divmod(minutes, 60) - time.sleep(1) - uptime = f"{hours:02d}:{minutes:02d}:{seconds:02d}" - socketio.emit("rpi_uptime", uptime) - finally: - uptime_lock.release() - elif os == "Windows": + try: + loop = True while loop == True: + boottime = time.clock_gettime(time.CLOCK_BOOTTIME) + # Convert to hours, minutes, and seconds + seconds = int(boottime) + minutes, seconds = divmod(seconds, 60) + hours, minutes = divmod(minutes, 60) time.sleep(1) - socketio.emit("rpi_uptime", "1") - print("[+] sent uptime windows (1) packet") - - + uptime = f"{hours:02d}:{minutes:02d}:{seconds:02d}" + socketio.emit("rpi_uptime", uptime) + finally: + uptime_lock.release() diff --git a/app_obd.py b/app_obd.py index d5e0fcf..29a0fe6 100644 --- a/app_obd.py +++ b/app_obd.py @@ -5,9 +5,8 @@ from threading import Thread status = None speed = 0 -rpm = 0 -coonnection = None - +rpm = None + class OBD: def __init__(self): self.status = status @@ -16,9 +15,14 @@ class OBD: obd_status = ["Disconnected", "Connected", "Connection...", "wtf"] obd_speed_lock = threading.Lock() -obd_rpm_lock = threading.Lock() -obd_dtc_lock = threading.Lock() -obd_state_lock = threading.Lock() +obd_speed_rpm = threading.Lock() + +try: + print(obd_status[2]) + connection = obd.OBD() # put linux /dev/rfi... something in () for the rpi bluetooth adpater + +except Exception as e: + print("An error occurred:", str(e)) def get_speedtime(): global speed @@ -27,37 +31,21 @@ def get_speedtime(): time_now = str(date.strftime("%H:%M:%S")) return [str(time_now), speed] -def obd_connection(): - global connection - try: - print(obd_status[2]) - connection = obd.OBD() # put linux /dev/rfi... something in () for the rpi bluetooth adpater - - except Exception as e: - print("An error occurred:", str(e)) - +@socketio.on('obd') +def obd_connection(): if connection.is_connected(): print(obd_status[1]) + socketio.emit('obd_status', obd_status[1]) print("OBD connection established.") - obd_events(1) else: print("OBD connection failed.") print(obd_status[0]) - obd_events(0) -@socketio.on('obd') -def obd_events(status): - if status == 1: - thread_state = Thread(target=obd_state(1)) - thread_state.daemon = True - thread_state.start() - - # change status to 2 when done testing - elif status == 0: - thread_state = Thread(target=obd_state(2)) - thread_state.daemon = True - thread_state.start() + socketio.emit('obd_status', obd_status[0]) + socketio.emit('obd_speed', "-") + socketio.emit('obm_error', "-") + socketio.emit('obd_rpm', "-") # debug speed for testing thread_speed = Thread(target=obd_speed) @@ -68,21 +56,7 @@ def obd_events(status): thread_rpm = Thread(target=obd_rpm) thread_rpm.daemon = True thread_rpm.start() - - else: - thread_speed = Thread(target=obd_state(0)) - thread_speed.daemon = True - thread_speed.start() - - -def obd_state(status): - loop = True - while loop == True: - print(obd_status[status]) - socketio.emit('obd_status', obd_status[status]) - print("[+] websocket packet sent...") - time.sleep(2) - + def obd_speed(): obd_speed_lock.acquire() cmd = obd.commands.SPEED # select an OBD command (sensor) @@ -90,13 +64,11 @@ def obd_speed(): loop = True try: while loop == True: - print(obd_status[3]) - socketio.emit('obd_status', obd_status[3]) global speed speed = speed + 1 time.sleep(1) if response.is_null(): - print("TEST SPEED for DEBUG #"+ str(get_speedtime())) + print("No data received. #"+ str(get_speedtime())) socketio.emit('obd_speed', get_speedtime()) else: print("Original value:", response.value) @@ -106,38 +78,23 @@ def obd_speed(): obd_speed_lock.release() def obd_rpm(): - obd_rpm_lock.acquire() + obd_speed_lock.acquire() cmd = obd.commands.RPM # select an OBD command (sensor) response = connection.query(cmd) # send the command and parse the response loop = True try: while loop == True: global rpm - rpm = rpm + 1 + speed = speed + 1 time.sleep(1) if response.is_null(): - print("No data received. #"+"RPM :"+str(rpm)) - socketio.emit('obd_rpm', rpm) + print("No data received. #"+ str(get_speedtime())) + socketio.emit('obd_speed', get_speedtime()) else: print("RPM:", response.value) - socketio.emit('obd_rpm', response.value.to("kph")) + socketio.emit('obd_speed', response.value.to("kph")) finally: obd_rpm_lock.release() - -def obd_dtc(): - obd_dtc_lock.acquire() - cmd = obd.commands.GET_DTC # select an OBD command (sensor) - response = connection.query(cmd) # send the command and parse the response - try: - if response.is_null(): - error_txt = "No data received." - print(error_txt) - socketio.emit('obd_dtc', error_txt) - else: - print(response.value) - socketio.emit('obd_dtc', response.value) - finally: - obd_dtc_lock.release() def kill_obd(obd_type): if obd_type == "speed": diff --git a/static/js/yaris.js b/static/js/yaris.js index be29997..50feb9e 100644 --- a/static/js/yaris.js +++ b/static/js/yaris.js @@ -32,24 +32,12 @@ chart = new Chart(ctx, { } }); -// account - - - // websockets socket.on('connect', function(data) { console.log('socket.io is connected') }); -socket.on('account_info', function(data) { - console.log(data); - -// car model - const car_model = document.getElementById('index-car-model'); - car_model.innerHTML = data; -}); - socket.on('obd_status', function(data) { console.log(data); const status = document.getElementById('obd-status'); @@ -87,12 +75,6 @@ socket.on('obd_rpm', function(data) { status.innerHTML = data; }); -socket.on('obd_dtc', function(data) { - console.log("obd dtc "+data); - const status = document.getElementById('obd-dtc'); - status.innerHTML = data; -}); - socket.on('obd_error', function(data) { console.log("obd errors "+data); const status = document.getElementById('obd-error'); diff --git a/templates/dtc.html b/templates/dtc.html index e0afd34..ba74135 100644 --- a/templates/dtc.html +++ b/templates/dtc.html @@ -15,7 +15,7 @@