test inputs

This commit is contained in:
quoije
2024-03-02 13:40:52 -05:00
parent e9f204d6bd
commit 651c798d3a
18 changed files with 57 additions and 150 deletions
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+10 -19
View File
@@ -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
+3 -16
View File
@@ -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]
self.name = "quoije"
self.pp_image = None
self.car = None
+2 -1
View File
@@ -1,3 +1,4 @@
class Car:
def __init__(self):
self.model = None
self.model = None
self.obd = None
+16 -25
View File
@@ -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()
+24 -67
View File
@@ -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":
-18
View File
@@ -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');
+2 -4
View File
@@ -15,7 +15,7 @@
<nav class="navbar align-items-start sidebar sidebar-dark accordion bg-gradient-primary p-0 navbar-dark" style="color: var(--bs-accordion-btn-focus-border-color);background: rgb(0,0,0);filter: blur(0px);backdrop-filter: blur(0px) hue-rotate(0deg);">
<div class="container-fluid d-flex flex-column p-0"><a class="navbar-brand d-flex justify-content-center align-items-center sidebar-brand m-0" href="#">
<div class="sidebar-brand-icon rotate-n-15"><i class="fas fa-car"></i></div>
<div id="index-car-model" class="sidebar-brand-text mx-3"><span>CAR MODEL</span></div>
<div class="sidebar-brand-text mx-3"><span>yaris&nbsp;</span></div>
</a>
<hr class="sidebar-divider my-0">
<ul class="navbar-nav text-light" id="accordionSidebar">
@@ -58,9 +58,7 @@
<div class="card-header py-3">
<p class="text-primary m-0 fw-bold">Output</p>
</div>
<div class="card-body">
<p id="obd-dtc"></p>
</div>
<div class="card-body"></div>
</div>
</div>
</div>