def vector_DataType(name, *args, **kwd_args): data_types = [ manager.DataType(d + "_" + name, *args, **kwd_args) for d in ['x', 'y', 'z'] ] data_types.append(manager.PacketSpec(name, *data_types)) return data_types
import manager import gui import plot import time def vector_DataType(name, *args, **kwd_args): data_types = [ manager.DataType(d + "_" + name, *args, **kwd_args) for d in ['x', 'y', 'z'] ] data_types.append(manager.PacketSpec(name, *data_types)) return data_types dts =\ [manager.DataType('run_time', int, units="ms", show=False, export_csv=False), manager.DataType('force', float, units="Newtons", export_csv=True), manager.DataType('inlet_temperature', float, units="deg C", export_csv=True), manager.DataType('outlet_temperature', float, units="deg C", export_csv=True)] +\ vector_DataType('acceleration', float, units="Gs", export_csv=True) +\ [manager.DataType('status', str, show=False), manager.DataType('fuel_control', int, show=False), manager.DataType('oxy_control', int, show=False), manager.DataType('fuel_safety', bool, show=False), manager.DataType('oxy_safety', bool, show=False)] plots = [ plot.Plot('time', 'force', width=3, show_x_label=False), plot.Plot('time', ['inlet_temperature', 'outlet_temperature'], "coolant temperature", width=3, show_x_label=False),
manager.DataType(d + "_" + name, *args, **kwd_args) for d in ['x', 'y', 'z'] ] data_types.append(manager.PacketSpec(name, *data_types)) return data_types def vector_Plot(x, y, name=None, *args, **kwd_args): if name == None: name = y.replace("_", " ") return plot.Plot(x, [d + "_" + y for d in ['x', 'y', 'z']], *args, **kwd_args) dts = ([ manager.DataType('temperature', float, units='deg C'), manager.DataType('missed_deadlines', int) ] + vector_DataType('magnetometer', float) + # TODO: units vector_DataType('gyro', float) + # TODO: units vector_DataType('euler_angle', float, units='degrees') + vector_DataType('acceleration', float, units='m/sec^2')) plots = [ #plot.Plot('time', 'temperature'), vector_Plot('time', 'magnetometer'), vector_Plot('time', 'gyro'), vector_Plot('time', 'euler_angle'), vector_Plot('time', 'acceleration') ] dispatcher = manager.Dispatcher(*dts) manager = manager.DataManager(dispatcher) root = Tk() app = gui.Application(dispatcher,
#!/usr/bin/env python3 from tkinter import * import manager import gui if __name__ == '__main__': dt1 = manager.DataType('test1', int) dt2 = manager.DataType('test2', float, units="foo") dt3 = manager.DataType('test3', str, False) dt4 = manager.DataType('test4', float) dt5 = manager.DataType('test5', str, False) dt6 = manager.DataType('test6', float) dt7 = manager.DataType('test7', int) dt8 = manager.DataType('test8', float) dispatcher = manager.Dispatcher(dt1, dt2, dt3, dt4, dt5, dt6, dt7, dt8) manager = manager.DataManager(dispatcher) root = Tk() app = gui.Application(dispatcher, manager, master=root) app.mainloop()
#!/usr/bin/env python3 import sys sys.path.append("src") from tkinter import * import manager import gui import plot dts = [ manager.DataType('pressure_in', float, units='psi'), manager.DataType('pressure_out', float, units='psi'), manager.DataType('pressure_drop', float, units='psi'), manager.DataType('angle', int, units='degrees') ] plots = [ plot.Plot('time', ['pressure_in', 'pressure_out', 'pressure_drop']), plot.Plot('time', 'angle') ] #plot.Plot('pressure', 'angle')] dispatcher = manager.Dispatcher(*dts) manager = manager.DataManager(dispatcher) root = Tk() app = gui.Application(dispatcher, manager, plots, master=root, serial_console_height=10, default_baud=115200)