add calibration serial command
This commit is contained in:
@@ -1,13 +1,16 @@
|
||||
import tkinter as tk
|
||||
from tkinter import ttk
|
||||
from tkinter.messagebox import showinfo
|
||||
import threading
|
||||
from time import sleep
|
||||
from statistics import mean
|
||||
|
||||
from .serial_reader import WeightReader
|
||||
from .serial_reader import SerialReader
|
||||
from .config import DEFAULT_CALIB, DISPLAY_TYPES
|
||||
from .views import NumberView
|
||||
|
||||
class WeightApp(tk.Tk):
|
||||
def __init__(self, weight_reader: WeightReader):
|
||||
def __init__(self, weight_reader: SerialReader):
|
||||
super().__init__()
|
||||
self.weight_reader = weight_reader
|
||||
|
||||
@@ -48,7 +51,7 @@ class WeightApp(tk.Tk):
|
||||
self.view_type.pack()
|
||||
self.view_type_label = ttk.Label(self.view_type, text="Visual:")
|
||||
self.view_type_label.pack(side=tk.LEFT)
|
||||
self.view_type_select = ttk.Combobox(self.view_type, values=[t.value for t in DISPLAY_TYPES], command=self.update_view)
|
||||
self.view_type_select = ttk.Combobox(self.view_type, values=[t.value for t in DISPLAY_TYPES], postcommand=self.update_view)
|
||||
self.view_type_select.set(DISPLAY_TYPES.NUMBER.value)
|
||||
self.view_type_select.pack(side=tk.LEFT)
|
||||
|
||||
@@ -89,7 +92,7 @@ class WeightApp(tk.Tk):
|
||||
|
||||
def update_view(self):
|
||||
selected_view = self.view_type_select.get()
|
||||
if selected_view == DISPLAY_TYPES.NUMBER:
|
||||
if selected_view == DISPLAY_TYPES.NUMBER.value:
|
||||
self.view = NumberView(self,
|
||||
tare_command=self.weight_reader.tare,
|
||||
calibrate_command=self.calibrate,
|
||||
@@ -104,10 +107,21 @@ class WeightApp(tk.Tk):
|
||||
self.after(100, self.update_weight_display)
|
||||
|
||||
def calibrate(self):
|
||||
...
|
||||
showinfo("Calibration", "Remove all weights.")
|
||||
self.weight_reader.reset()
|
||||
sleep(2)
|
||||
showinfo("Calibration", "Place Weight")
|
||||
self.weight_reader.calibrating = True
|
||||
sleep(30)
|
||||
self.weight_reader.calibrating = False
|
||||
print(self.weight_reader.calib_window)
|
||||
self.calib_measurements.delete(0, 'end')
|
||||
self.calib_measurements.insert(0, mean(self.weight_reader.calib_window))
|
||||
|
||||
|
||||
|
||||
def main():
|
||||
weight_reader = WeightReader()
|
||||
weight_reader = SerialReader()
|
||||
threading.Thread(target=weight_reader.read_weights, daemon=True).start()
|
||||
|
||||
app = WeightApp(weight_reader)
|
||||
|
||||
Reference in New Issue
Block a user