From 3ccc88e0e0a856309658a5655c1c29d08a484bd2 Mon Sep 17 00:00:00 2001 From: Trygve Date: Thu, 2 Nov 2023 21:33:29 +0000 Subject: [PATCH] revert 60824e5bd343a763ea21105c17605a893a8ab7a7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit revert Starta på TUI --- event_mgr.py | 158 ++++++++++++++------------------------------------- 1 file changed, 42 insertions(+), 116 deletions(-) diff --git a/event_mgr.py b/event_mgr.py index 38e1606..707af9e 100644 --- a/event_mgr.py +++ b/event_mgr.py @@ -14,129 +14,55 @@ from rich.columns import Columns from rich.table import Table from rich.panel import Panel from rich.console import Group -from rich.syntax import Syntax -from rich.table import Table -from time import monotonic -from textual.app import App, ComposeResult -from textual.containers import ScrollableContainer, Horizontal, Vertical -from textual.reactive import reactive -from textual.widgets import Button, Footer, Header, Static, RichLog, DataTable, Label -class RunnerTable(Static): - def compose(self) -> ComposeResult: - yield DataTable(id="runnertable") - - def RowSelected(self, data_table, cursor_row, row_key) -> None: - name = self.query_one("#inspname") - name.update(renderable='test') - ecard_log = app.query_one("#ecardlog") - ecard_log.write('aaaaaaaaaaaaaaaaa') - -class RunnerInsp(Static): - def compose(self) -> ComposeResult: - yield Static("NAVN", id="inspname") - yield Label("RESULTAT", id="inspresult") - yield Label("POSTER", id="inspcontr") -class EcardLog(Static): - def compose(self) -> ComposeResult: - yield RichLog(highlight=True, markup=True, id="ecardlog") -class MTRDash(Static): - def compose(self) -> ComposeResult: - yield Label("MTR") +def run_otime(): + event = otime.Event.from_toml(open("/home/trygve/Prosjekter/otime-testing/sc3/sc3.toml", "rb")) + event.import_ttime_db(open("/home/trygve/Prosjekter/otime-testing/sc3/db.csv")) -class TimeApp(App): - CSS_PATH = "event_mgr.tcss" - BINDINGS = [("d", "toggle_dark", "Toggle dark mode"), ("r", "rerun", "Rerun")] + data = (open("/home/trygve/Prosjekter/otime-testing/sc3/mtr.json")).readlines() + for l in data: + d = json.loads(l) + #print(l) + event.card_dumps.append(otime.CardDump(d['card'], d['controls'], d['splits'], + datetime.datetime.fromisoformat(d['read_time']), + datetime.datetime.fromisoformat(d['s_time']), + datetime.datetime.fromisoformat(d['f_time']))) + print('Ecards:'+str(len(event.card_dumps))) + print('Løpere:'+str(len(event.runners))) + event.match_all() + #cli.print_runners(event.runners) + for n in event.o_classes: + cli.print_class_result(event.runners, n) - def compose(self) -> ComposeResult: - """Create child widgets for the app.""" - yield Header() - yield Footer() - yield RunnerTable(classes="box") - yield RunnerInsp(classes="box") - yield EcardLog(classes="box") - yield MTRDash(classes="box") +def read_mtr(mtr): + global event + if mtr.in_waiting > 0: + mtr.read_until(expected=b'\xFF\xFF\xFF\xFF') + size = mtr.read(size=1) + if size == b'\xe6': + meat = mtr.read(229) + full = b'\xFF\xFF\xFF\xFF' + size + meat + card_r = otime.CardDump.from_mtr_bytes(full) + print(json.dumps(card_r.asdict())) + with open("sc3/mtr.json", "a") as myfile: + myfile.write('\n' + json.dumps(card_r.asdict())) + run_otime() - def on_ready(self) -> None: - mtr = serial.Serial(port="/dev/pts/2", baudrate=9600, timeout=40) - ecard_log = self.query_one("#ecardlog") - ecard_log.write("[bold magenta]Write text or any Rich renderable!") - #self.run_worker(self.watch_serial()) - self.render_table() - self.read_mtr() - - def action_toggle_dark(self) -> None: - """An action to toggle dark mode.""" - self.dark = not self.dark - def action_rerun(self) -> None: - """Rerun otime""" - self.run_otime() - - def read_mtr(app): - mtr = serial.Serial(port="/dev/pts/2", baudrate=9600, timeout=40) - # mtr.write(b'/SA') - global event - if mtr.in_waiting > 0: - mtr.read_until(expected=b'\xFF\xFF\xFF\xFF') - size = mtr.read(size=1) - if size == b'\xe6': - meat = mtr.read(229) - full = b'\xFF\xFF\xFF\xFF' + size + meat - card_r = otime.CardDump.from_mtr_bytes(full) - ecard_log.write(json.dumps(card_r.asdict())) - with open("sc3/mtr.json", "a") as myfile: - myfile.write('\n' + json.dumps(card_r.asdict())) - run_otime() - - elif size == b'\x37': - meat = mtr.read(55) - status = mtrreader.MtrStatusMessage(meat) - inspect(status) - ecard_log.write(status.year(),status.month(),status.day(),status.hours(),status.minutes()) - - def run_otime(app): - ecard_log = app.query_one("#ecardlog") - event = otime.Event.from_toml(open("/home/trygve/Prosjekter/otime-testing/sc3/sc3.toml", "rb")) - event.import_ttime_db(open("/home/trygve/Prosjekter/otime-testing/sc3/db.csv")) - - data = (open("/home/trygve/Prosjekter/otime-testing/sc3/mtr.json")).readlines() - for l in data: - d = json.loads(l) - ecard_log.write(l) - event.card_dumps.append(otime.CardDump(d['card'], d['controls'], d['splits'], - datetime.datetime.fromisoformat(d['read_time']), - datetime.datetime.fromisoformat(d['s_time']), - datetime.datetime.fromisoformat(d['f_time']))) - #ecard_log.write('Ecards:'+str(len(event.card_dumps))) - #ecard_log.write('Løpere:'+str(len(event.runners))) - event.match_all() - #cli.print_runners(event.runners) - #for n in event.o_classes: - #cli.print_class_result(event.runners, n) - return event - - def render_table(app): - table = app.query_one("#runnertable") - table.cursor_type = "row" - table.add_column("Name") - table.add_column("Status") - table.add_column("club") - table.add_column("card") - table.add_column("class") - table.add_column("start_time") - table.add_column("fork") - - for i in app.run_otime().runners: - try: - o_class = i.o_class.name - except: - o_class = '' - table.add_row(i.fullname(), i.status(), i.club ,str(i.card), o_class, i.start_time, str(i.fork)) + elif size == b'\x37': + meat = mtr.read(55) + status = mtrreader.MtrStatusMessage(meat) + inspect(status) + print(status.year(),status.month(),status.day(),status.hours(),status.minutes()) +def main(): + mtr = serial.Serial(port="/dev/pts/2", baudrate=9600, timeout=40) + # mtr.write(b'/SA') + while True: + read_mtr(mtr) + sleep(0.1) db_file_u = None if __name__ == "__main__": - app = TimeApp() - app.run() + main()