diff --git a/ElectronicCalculator.py b/ElectronicCalculator.py new file mode 100644 index 0000000..39f7ce3 --- /dev/null +++ b/ElectronicCalculator.py @@ -0,0 +1,123 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Mon Jan 18 07:10:02 2021 + +@author: angoosh +""" +import math +import numpy as np +from matplotlib import pyplot as plt + +def Rseries(R): + Rsum = 0 + for i in range(0,len(R)): + Rsum += R[i] + return Rsum + +def Rparalel(R): + Rsum = 0 + for i in range(0,len(R)): + Rsum += (1/R[i]) + return 1/Rsum + +def VoltageDiv(U,R1,R2,Rload = float('inf')): + Rl = [R2,Rload] + R2 = Rparalel(Rl) + Uout = U*(R2/(R1+R2)) + Imax = (U*(R1/(R1+R2)))/R1 + return Uout,Imax + +def RC(R,C): + tau = R*C + f = 1/(2*3.14159*tau) + return(tau,f) + +def RCfreqresponse(R,C): + ann3dbf, ann3dbV = 0,0 + tau,f0 = RC(R,C) + + f = -4#pow(10,-4) + Vout = [] + Fout = [] + db3 = [] + impedance = [] + for i in range(0,1200): + impedance.append(1/(2*math.pi*C)+R) + db3.append(1/pow(2,0.5)) + Vout.append(abs(1/pow(1+pow((2*3.14159*pow(10,f))*C*R,2),0.5))) + Fout.append(pow(10,f)) + if pow(10,f) < f0: + pass + elif (pow(10,f) >= f0) and ann3dbf != 0: + ann3dbf = pow(10,f) + ann3dbV = abs(1/pow(1+pow((2*3.14159*pow(10,f))/(1/f0),2),0.5)) + #Vout.append(1/(1+2*3.14159*f*R*C)) + f += 0.01 + + + plt.plot(Fout,Vout) + plt.plot(Fout,db3,color="red") + plt.xscale('log') + plt.xlabel("Frequency") + plt.ylabel("Voltage") + plt.title('RC frequency response') + plt.grid(True) + plt.text(x=pow(10,5), y=1, s="Tau = "+str(round(tau,5))) + plt.text(x=pow(10,5), y=0.95, s="f0 = "+str(round(f0,2))+"Hz") + print(f0) + plt.show() + +while True: + print("What do you want to calculate?") + print(" 1: Rseries format: R1,R2,R3,...") + print(" 2: Rparalel format: R1,R2,R3,...") + print(" 3: Voltage divider format: U,R1,R2,Rload") + print(" 4: RC filter format: R,C") + print(" 5: RC frequency response format: R,C") + inp = input(": ") + if inp == "1": + x = input("Resistor values: ") + x = x.split(",") + xint = [] + for i in range(0,len(x)): + xint.append(float(x[i])) + print(str(Rseries(xint))+"Ω") + elif inp == "2": + x = input("Resistor values: ") + x = x.split(",") + xint = [] + for i in range(0,len(x)): + xint.append(float(x[i])) + print(str(Rparalel(xint))+"Ω") + elif inp == "3": + x = input("Voltage divider params: ") + x = x.split(",") + xint = [] + for i in range(0,len(x)): + xint.append(float(x[i])) + if len(xint) == 3: + vdiv = VoltageDiv(xint[0],xint[1],xint[2]) + else: + vdiv = VoltageDiv(xint[0],xint[1],xint[2],xint[3]) + print(str(vdiv[0])+"V, "+str(vdiv[1])+"A") + elif inp == "4": + x = input("RC values: ") + x = x.split(",") + xint = [] + for i in range(0,len(x)): + xint.append(float(x[i])) + rc = RC(xint[0],xint[1]) + print(str(rc[1])+"Hz") + elif inp == "5": + x = input("RC values: ") + x = x.split(",") + xint = [] + for i in range(0,len(x)): + xint.append(float(x[i])) + RCfreqresponse(xint[0],xint[1]) + elif inp == "exit": + break + else: + pass + print("") \ No newline at end of file diff --git a/GTK-examples/AppendWidgetsAndRWthem.py b/GTK-examples/AppendWidgetsAndRWthem.py new file mode 100644 index 0000000..d33660c --- /dev/null +++ b/GTK-examples/AppendWidgetsAndRWthem.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Fri Mar 19 22:04:11 2021 + +@author: angoosh +""" + +import threading +#from multiprocessing import Process, Queue +import queue +import gi +from time import sleep + +gi.require_version('Gtk', '3.0') +gi.require_version('GLib', '2.0') + +from gi.repository import Gtk, GLib + +IsEnded = 0 +counter = 0 +rows = [] + +def do_work(com_queue): + global counter + while True: + counter += 1 + com_queue.put(str(counter)) + sleep(0.1) + print("A") + + if IsEnded != 0: + break + # continue + +#from multiprocessing import Process, Queue + +class MainGUI(Gtk.Window): + def __init__(self): + Gtk.Window.__init__(self, title="Append") + self.com_queue = queue.Queue() + self.worker_thread = None + self.liststore = None + + self.vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) + self.add(self.vbox) + + self.box = Gtk.Box(spacing=6) + #self.add(self.box) + self.vbox.pack_start(self.box, True, True, 0) + + self.textArea = Gtk.Entry() + self.textArea.set_text("Ready") + #self.textbuffer = self.textArea.get_buffer() + #self.textbuffer.set_text("Ready: \n", 9) + self.box.pack_start(self.textArea, True, True, 0) + + self.button1 = Gtk.Button(label="Add") + self.button1.connect("clicked", self.addRow) + self.box.pack_start(self.button1, True, True, 0) + + self.button2 = Gtk.Button(label="List") + self.button2.connect("clicked", self.butt) + self.box.pack_start(self.button2, True, True, 0) + + self.tid = None + self.proc = None + + def launch_worker_thread(self): + #self.proc = Process(target=do_work, args=(self.com_queue,)) + #self.proc.start() + + self.worker_thread = threading.Thread(target=do_work, args=(self.com_queue,)) + self.worker_thread.start() + try: + self.tid = GLib.timeout_add(1, self.check_queue, None) # run check_queue every 1 second + except: + print("Error") + + def butt(self, widget): + global rows + print(rows) + for row in rows: + row[2].set_text("3") + + #print(row.nlabel.get_text()) + + def addRow(self, widget, varType="uint8_t", varName="x", value="10"): + global rows + + nbox = Gtk.Box(spacing=6) + self.vbox.pack_start(nbox, True, True, 0) + + nlabel = Gtk.Label(label=varType+" "+varName+":") + nbox.pack_start(nlabel, True, True, 0) + + nentry = Gtk.Entry() + nentry.set_text(value) + nentry.connect("activate", self.printContent, varType, varName,) + nbox.pack_start(nentry, True, True, 0) + + nbox.show_all() + rowContent = [len(rows), nlabel, nentry] + rows.append(rowContent) + + def printContent(self, widget, vt, vn): + print(vt+" "+vn+": "+widget.get_text()) + + def butt2(self, widget): + global IsEnded + IsEnded = 1 + + def prn(self, ignored): + print("B") + GLib.idle_add(self.update_treeview, "update") + + def check_queue(self, ignored): + if self.tid is not None: + #if self.worker_thread.is_alive(): + try: + update = self.com_queue.get(False) + GLib.idle_add(self.update_treeview, update) # send tuple + except queue.Empty: + pass + return True # to keep timeout running + else: + return False # to end timeout + + def update_treeview(self, update): + text_end = self.textbuffer.get_end_iter() + self.textbuffer.insert(text_end, str(update)) # here update the treeview model with tuple + +if __name__ == "__main__": + gui = MainGUI() + gui.connect("destroy", Gtk.main_quit) + gui.show_all() + Gtk.main() + IsEnded = 1 \ No newline at end of file diff --git a/GTK-examples/Icons/SerialPort.png b/GTK-examples/Icons/SerialPort.png new file mode 100644 index 0000000..9b6239d Binary files /dev/null and b/GTK-examples/Icons/SerialPort.png differ diff --git a/GTK-examples/ListAndConnectToPort.py b/GTK-examples/ListAndConnectToPort.py new file mode 100644 index 0000000..88ea079 --- /dev/null +++ b/GTK-examples/ListAndConnectToPort.py @@ -0,0 +1,161 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Sun Mar 21 10:06:43 2021 + +@author: angoosh +""" +from serial.tools import list_ports +import serial +import gi +from time import sleep +import threading + +gi.require_version("Gtk", "3.0") +from gi.repository import Gtk + +ser = "" +baud = 19200 +readPortEnable = False +handshakeMsg = b'Hello\n' + + +def readPort(): + global readPortEnable + file = open("PORT_DATA.csv","w") + file.write("AQ_START\n") + file.close() + while readPortEnable == True: + with open("PORT_DATA.csv","a") as file: + s = ser.read(255) + print(s) + file.write(s.decode()) + sleep(2) + + +class ComboBoxWindow(Gtk.Window): + def __init__(self): + Gtk.Window.__init__(self, title="ComboBox Example") + + self.set_border_width(10) + + self.portList = Gtk.ListStore(str) + self.baudList = Gtk.ListStore(str) + + box = Gtk.Box(spacing=6) + + self.port_combo = Gtk.ComboBox.new_with_model_and_entry(self.portList) + self.port_combo.connect("changed", self.on_name_combo_changed) + self.port_combo.set_entry_text_column(0) + self.refresh("ignore") + try: + self.port_combo.set_active(0) + except: + pass + box.pack_start(self.port_combo, False, False, 0) + + self.baud_combo = Gtk.ComboBox.new_with_model_and_entry(self.baudList) + self.baud_combo.connect("changed", self.baud_change) + self.baud_combo.set_entry_text_column(0) + + bauds = ["9600", + "19200", + "38400", + "57600", + "115200", + "250000", + "500000", + "1000000" + ] + + for baud in bauds: + self.baudList.append([baud]) + + self.baud_combo.set_active(1) + box.pack_start(self.baud_combo, False, False, 0) + + button1 = Gtk.Button() + button1.connect("clicked", self.refresh) + button1.set_image(Gtk.Image.new_from_icon_name("view-refresh",1)) + box.pack_start(button1, True, True, 0) + + button2 = Gtk.Button(label="Connect") + button2.set_image(Gtk.Image.new_from_icon_name("Connect",1)) + button2.connect("clicked", self.connect_disconnect) + box.pack_start(button2, True, True, 0) + + self.add(box) + + def refresh(self, widget): + ports = list_ports.comports() + self.portList.clear() + for port in ports: + self.portList.append([port[0]]) + + def baud_change(self, combo): + global baud + tree_iter = combo.get_active_iter() + if tree_iter is not None: + model = combo.get_model() + baud = model[tree_iter][0] + print("Selected Baud: %s" % (baud)) + else: + entry = combo.get_child() + print("Entered Baud: %s" % entry.get_text()) + + def connect_disconnect(self, butt): + global ser, baud, readPortEnable, handshakeMsg + if butt.get_label() == "Connect": + self.port_combo.set_sensitive(False) + self.baud_combo.set_sensitive(False) + + tree_iter = self.port_combo.get_active_iter() + model = self.port_combo.get_model() + port = model[tree_iter][0] + ser = serial.Serial(port, baud, timeout=1) + print("Connecting to:"+ port) + butt.set_label("Disconnect") + ser.write(b'Hello\n') + while(ser.readline() != handshakeMsg): + sleep(0.5) + + readPortEnable = True + self.Port_thread = threading.Thread(target=readPort) + self.Port_thread.start() + else: + ser.close() + self.port_combo.set_sensitive(True) + self.baud_combo.set_sensitive(True) + readPortEnable = False + print("Disconnecting") + butt.set_label("Connect") + + def on_name_combo_changed(self, combo): + tree_iter = combo.get_active_iter() + if tree_iter is not None: + model = combo.get_model() + port = model[tree_iter][0] + print("Selected Port: %s" % (port)) + else: + entry = combo.get_child() + print("Entered: %s" % entry.get_text()) + + def on_country_combo_changed(self, combo): + tree_iter = combo.get_active_iter() + if tree_iter is not None: + model = combo.get_model() + country = model[tree_iter][0] + print("Selected: country=%s" % country) + + def on_currency_combo_changed(self, combo): + text = combo.get_active_text() + if text is not None: + print("Selected: currency=%s" % text) + + +win = ComboBoxWindow() +win.connect("destroy", Gtk.main_quit) +win.show_all() +Gtk.main() + + diff --git a/GTK-examples/MONITOR_DATA.csv b/GTK-examples/MONITOR_DATA.csv new file mode 100644 index 0000000..c7498ea --- /dev/null +++ b/GTK-examples/MONITOR_DATA.csv @@ -0,0 +1,5 @@ +V,uint8_t,blinkTime,254,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 diff --git a/GTK-examples/MonitorPrototype.py b/GTK-examples/MonitorPrototype.py new file mode 100644 index 0000000..5f8269d --- /dev/null +++ b/GTK-examples/MonitorPrototype.py @@ -0,0 +1,572 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Mon Mar 22 11:33:14 2021 + +@author: angoosh +""" + +from serial.tools import list_ports +import serial +import gi +from time import sleep +import threading +import os + +gi.require_version("Gtk", "3.0") +gi.require_version('GLib', '2.0') + +from gi.repository import Gtk, GLib, Gdk + + +HANDSHAKE_MSG = b'Hello\n' +VAR_DESIGNATOR = "V" +REG_DESIGNATOR = "R" +CSV_FILE = "MONITOR_DATA.csv" + + +ser = None +baud = 19200 +readPortEnable = False +readCsvEnable = False +rows = [] +csvContent = [] +csvContentOverArr = "" +testCsvFile = "test.csv" +csvGenCsvContent = "" +firsCsvRead = True +csvIsWrite = False +csvIsRead = False + + +def CsvGen(dataForCsv):#vyroba csv pro tabulku promennych, nutno dodat dekodovana data + global csvGenCsvContent, csvIsRead, csvIsWrite, csvContentOverArr + + newCsvGenContent = [] + Passed = False + + dataForCsv = csvContentOverArr + dataForCsv + rawData = dataForCsv.split('\n') + csvGenLine = csvGenCsvContent.split('\n') + csvContentOverArr = rawData[-1] + rawData.remove(rawData[-1]) + rawDataLen = len(rawData) + for line in rawData: + splitted = line.split(',') + try: + #csvGenLine = csvGenCsvContent.split('\n') + VarPos = [i for i, s in enumerate(csvGenLine) if ","+splitted[2]+"," in s] + if VarPos != []: + csvGenLineParts = csvGenLine[VarPos[0]].split(",") + csvGenLineParts[3] = splitted[3] + string = "" + for j in csvGenLineParts: + string += j+',' + string = string[:-1] + csvGenLine[VarPos[0]] = string + else: + csvGenLine.append(line) + csvGenCsvContent = "" + except: + pass + + for l in csvGenLine: + if l != "": + csvGenCsvContent += l + csvGenCsvContent += '\n' + else: + pass + + while csvIsRead == True: + pass + csvIsWrite = True + with open(CSV_FILE,'w') as dataFile: + dataFile.write(csvGenCsvContent) + dataFile.close() + csvIsWrite = False + + +#Funkce bezici na pozadi +def readPort():#Cte data ze serioveho portu + global readPortEnable + print("MSG: READ_PORT_START") + file = open("PORT_DATA.log","w") + file.write("AQ_START\n") + file.close() + while readPortEnable == True: + with open("PORT_DATA.log","a") as file: + s = ser.read(10000) + data = s.decode() + CsvGen(data) + file.write(data) + file.close() + + #sleep(1) + print("MSG: READ_PORT_EXIT") + +def readCsv():#Cte csv vygenerovane CsvGen() + global csvContent, testCsvFile, csvIsRead, csvIsWrite + + #while readCsvEnable == True: + while csvIsWrite == True: + pass + csvIsRead = True + with open(CSV_FILE,"r") as file: + content = file.read() + lines = content.split("\n") + csvContent = lines + file.close() + csvIsRead = False + + MainGUI.ApplyCsv() + + if readCsvEnable == True : + return True + else: + print("MSG: READ_CSV_EXIT") + return False + +def get_resource_path(rel_path): + dir_of_py_file = os.path.dirname(__file__) + rel_path_to_resource = os.path.join(dir_of_py_file, rel_path) + abs_path_to_resource = os.path.abspath(rel_path_to_resource) + return abs_path_to_resource + +class MainGUI(Gtk.Window): + def __init__(self): + Gtk.Window.__init__(self, title="Monitor") + self.set_icon_from_file(get_resource_path("Icons/SerialPort.png")) + self.set_resizable(False) + + #self.set_border_width(10) + + self.tid = None + + self.portList = Gtk.ListStore(str) + self.baudList = Gtk.ListStore(str) + + vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) + self.add(vbox) + + box = Gtk.Box(spacing=6) + vbox.pack_start(box, False, False, 0) + + self.port_combo = Gtk.ComboBox.new_with_model_and_entry(self.portList) + self.port_combo.connect("changed", self.on_name_combo_changed) + self.port_combo.set_entry_text_column(0) + self.refresh("ignore") + try: + self.port_combo.set_active(0) + except: + pass + box.pack_start(self.port_combo, False, False, 0) + + self.baud_combo = Gtk.ComboBox.new_with_model_and_entry(self.baudList) + self.baud_combo.connect("changed", self.baud_change) + self.baud_combo.set_entry_text_column(0) + + bauds = ["9600", + "19200", + "38400", + "57600", + "115200", + "250000", + "500000", + "1000000" + ] + + for baud in bauds: + self.baudList.append([baud]) + + self.baud_combo.set_active(1) + box.pack_start(self.baud_combo, False, False, 0) + + button1 = Gtk.Button() + button1.connect("clicked", self.refresh) + button1.set_image(Gtk.Image.new_from_icon_name("view-refresh",1)) + button1.set_size_request(20,20) + button1.set_halign(Gtk.Align.END) + box.pack_start(button1, True, False, 0) + + button2 = Gtk.Button(label="Connect") + button2.set_image(Gtk.Image.new_from_icon_name("Connect",1)) + button2.connect("clicked", self.connect_disconnect) + box.pack_start(button2, True, True, 0) + + tabs = Gtk.Notebook() + vbox.pack_start(tabs, False, False, 0) + + varScroll = Gtk.ScrolledWindow() + varScroll.set_min_content_height(600) + self.variable_tab = Gtk.Grid() + varScroll.add_with_viewport(self.variable_tab) + tabs.append_page(varScroll, Gtk.Label("Variables"))#self.variable_tab + + regScroll = Gtk.ScrolledWindow() + regScroll.set_min_content_height(600) + self.register_tab = Gtk.Grid() + regScroll.add_with_viewport(self.register_tab) + tabs.append_page(regScroll, Gtk.Label("Registers")) + + #self.addRow("ignore") + + + def refresh(self, widget): + CsvGen("none") + ports = list_ports.comports() + self.portList.clear() + for port in ports: + self.portList.append([port[0]]) + try: + self.port_combo.set_active(0) + except: + pass + + def baud_change(self, combo): + global baud + tree_iter = combo.get_active_iter() + if tree_iter is not None: + model = combo.get_model() + baud = model[tree_iter][0] + print("Selected Baud: %s" % (baud)) + else: + entry = combo.get_child() + print("Entered Baud: %s" % entry.get_text()) + + def connect_disconnect(self, butt): + global ser, baud, readPortEnable, HANDSHAKE_MSG, readCsvEnable, firsCsvRead + if butt.get_label() == "Connect": + try: + for i in range(0,len(rows)): + self.variable_tab.remove_row(0) + self.register_tab.remove_row(0) + except: + pass + firsCsvRead = True + + self.port_combo.set_sensitive(False) + self.baud_combo.set_sensitive(False) + + tree_iter = self.port_combo.get_active_iter() + model = self.port_combo.get_model() + port = model[tree_iter][0] + ser = serial.Serial(port, baud, timeout=1) + print("Connecting to:"+ port) + butt.set_label("Disconnect") + ser.write(b'Hello\n') + try: + os.remove(CSV_FILE) + except: + print("MSG: NO MONITOR FILE TO REMOVE") + open(CSV_FILE, 'w').close() + # while(ser.readline() != HANDSHAKE_MSG): + # sleep(0.5) + + readPortEnable = True + Port_thread = threading.Thread(target=readPort) + Port_thread.start() + + readCsvEnable = True + GLib.timeout_add_seconds(1, readCsv) + print("MSG: READ_CSV_START") + #Csv_thread = threading.Thread(target=readCsv) + #Csv_thread.start() + + self.tid = GLib.timeout_add_seconds(1, self.addRow, None) + else: + ser.close() + self.port_combo.set_sensitive(True) + self.baud_combo.set_sensitive(True) + readPortEnable = False + readCsvEnable = False + for row in rows: + row[3].set_editable(False) + print("Disconnecting") + butt.set_label("Connect") + + def on_name_combo_changed(self, combo): + tree_iter = combo.get_active_iter() + if tree_iter is not None: + model = combo.get_model() + port = model[tree_iter][0] + print("Selected Port: %s" % (port)) + else: + entry = combo.get_child() + print("Entered: %s" % entry.get_text()) + + def addRow(self, widget): + global rows, csvContent, testCsvFile, firsCsvRead + iteration = 0 + csvContentIsNone = True + + with open(CSV_FILE,"r") as file: + content = file.read() + lines = content.split("\n") + file.close() + + if firsCsvRead == False: + for line in lines: + x = line.split(',') + y = csvContent[iteration].split(',') + if csvContent[iteration] == "": + y = [0,0] + if line == "": + #print("BLANK_LINE!") + iteration += 1 + pass + else: + if x[1] == y[1]: + #print("DUPE") + iteration += 1 + else: + print("EDIT") + try: + csvContent.append(line) + inLine = line.split(",") + if inLine[0] == "V": + varType = inLine[1] + varName = inLine[2] + value = inLine[3] + address = inLine[4] + + typeLabel = Gtk.Label(label=varType, halign=Gtk.Align.START) + f = Gtk.Frame() + f.add(typeLabel) + self.variable_tab.attach(f,0,iteration,1,1) + nameLabel = Gtk.Label(label=varName+":", halign=Gtk.Align.END) + f = Gtk.Frame() + f.add(nameLabel) + self.variable_tab.attach(f,1,iteration,1,1) + + nentry = Gtk.Entry() + nentry.set_hexpand(False) + nentry.set_text(value) + nentry.set_editable(False) + self.variable_tab.attach(nentry,2,iteration,1,1) + + edit = Gtk.Entry() + edit.set_hexpand(False) + edit.set_placeholder_text("Edit") + edit.set_max_length(16) + edit.connect("activate", self.SendData) + self.variable_tab.attach(edit,3,iteration,1,1) + + self.variable_tab.show_all() + rowContent = [len(rows),typeLabel, nameLabel, nentry, edit, address] + rows.append(rowContent) + elif inLine[0] == "R": + varType = inLine[1] + varName = inLine[2] + value = inLine[3] + value = int(value) + value = str(hex(value)) + address = inLine[4] + + typeLabel = Gtk.Label(label=varType, halign=Gtk.Align.START) + f = Gtk.Frame() + f.add(typeLabel) + self.register_tab.attach(f,0,iteration,1,1) + nameLabel = Gtk.Label(label=varName+":", halign=Gtk.Align.END) + f = Gtk.Frame() + f.add(nameLabel) + self.register_tab.attach(f,1,iteration,1,1) + + nentry = Gtk.Entry() + nentry.set_hexpand(False) + nentry.set_text(value) + nentry.set_editable(False) + self.register_tab.attach(nentry,2,iteration,1,1) + + edit = Gtk.Entry() + edit.set_hexpand(False) + edit.set_placeholder_text("Edit") + edit.set_max_length(10) + edit.connect("activate", self.SendData) + self.register_tab.attach(edit,3,iteration,1,1) + + self.register_tab.show_all() + rowContent = [len(rows),typeLabel, nameLabel, nentry, edit, address] + rows.append(rowContent) + else: + print("VAR_CLASS_ERROR!") + + iteration += 1 + except: + pass + else: + csvContent = [] + rows = [] + print(lines) + for line in lines: + if line == "": + print("BLANK_LINE!") + iteration += 1 + pass + else: + try: + csvContent.append(line) + inLine = line.split(",") + if inLine[0] == "V": + varType = inLine[1] + varName = inLine[2] + value = inLine[3] + address = inLine[4] + + typeLabel = Gtk.Label(label=varType, halign=Gtk.Align.START) + f = Gtk.Frame() + f.add(typeLabel) + self.variable_tab.attach(f,0,iteration,1,1) + nameLabel = Gtk.Label(label=varName+":", halign=Gtk.Align.END) + f = Gtk.Frame() + f.add(nameLabel) + self.variable_tab.attach(f,1,iteration,1,1) + + nentry = Gtk.Entry() + nentry.set_hexpand(False) + nentry.set_text(value) + nentry.set_editable(False) + self.variable_tab.attach(nentry,2,iteration,1,1) + + edit = Gtk.Entry() + edit.set_hexpand(False) + edit.set_placeholder_text("Edit") + edit.set_max_length(16) + edit.connect("activate", self.SendData) + self.variable_tab.attach(edit,3,iteration,1,1) + + self.variable_tab.show_all() + rowContent = [len(rows),typeLabel, nameLabel, nentry, edit, address] + rows.append(rowContent) + elif inLine[0] == "R": + varType = inLine[1] + varName = inLine[2] + value = inLine[3] + value = int(value) + value = str(hex(value)) + address = inLine[4] + + typeLabel = Gtk.Label(label=varType, halign=Gtk.Align.START) + f = Gtk.Frame() + f.add(typeLabel) + self.register_tab.attach(f,0,iteration,1,1) + nameLabel = Gtk.Label(label=varName+":", halign=Gtk.Align.END) + f = Gtk.Frame() + f.add(nameLabel) + self.register_tab.attach(f,1,iteration,1,1) + + nentry = Gtk.Entry() + nentry.set_hexpand(False) + nentry.set_text(value) + nentry.set_editable(False) + self.register_tab.attach(nentry,2,iteration,1,1) + + edit = Gtk.Entry() + edit.set_hexpand(False) + edit.set_placeholder_text("Edit") + edit.set_max_length(10) + edit.connect("activate", self.SendData) + self.register_tab.attach(edit,3,iteration,1,1) + + self.register_tab.show_all() + rowContent = [len(rows),typeLabel, nameLabel, nentry, edit, address] + rows.append(rowContent) + else: + print("VAR_CLASS_ERROR!") + + iteration += 1 + except: + pass + #GLib.idle_add(self.Void) + firsCsvRead = False + return readCsvEnable + + def ApplyCsv(): + global csvContent, rows + values = [] + isReg = False + iteration = 0 + for content in csvContent: + try: + bits = content.split(",") + if bits[0] == 'V': + values.append(bits[3]) + elif bits[0] == 'R': + isReg = True + x = int(bits[3]) + x = str(hex(x)) + values.append(x) + except: + pass + for row in rows: + row[3].set_text(values[iteration]) + iteration += 1 + + def SendData(self, entry): + global ser + serMsg = "A" + value = entry.get_text() + numValue = 0 + + print("MSG: ENTERED="+value) + for row in rows: + if row[4] == entry: + if row[1].get_text() == "uint8_t": + serMsg += '0' + numValue = int(value) + numValue = numValue % 256 + value = str(numValue) + elif row[1].get_text() == "int8_t": + serMsg += '1' + numValue = int(value) + numValue = numValue % 256 + if numValue > 127: + numValue -= 256 + value = str(numValue) + elif row[1].get_text() == "uint16_t": + serMsg += '2' + numValue = int(value) + numValue = numValue % 65536 + value = str(numValue) + elif row[1].get_text() == "int16_t": + serMsg += '3' + numValue = int(value) + numValue = numValue % 65536 + if numValue > (65536/2)-1: + numValue -= 65536 + value = str(numValue) + elif row[1].get_text() == "uint32_t": + serMsg += '4' + numValue = int(value) + numValue = numValue % 4294967296 + value = str(numValue) + elif row[1].get_text() == "int32_t": + serMsg += '5' + numValue = int(value) + numValue = numValue % 4294967296 + if numValue > (4294967296/2)-1: + numValue -= 4294967296 + value = str(numValue) + elif row[1].get_text() == "float": + serMsg += '6' + elif row[1].get_text() == "reg": + serMsg += '7' + numValue = int(value) + numValue = numValue % 4294967296 + value = str(numValue) + + serMsg += row[5] + serMsg += value + serMsg += "\n" + print("MSG: SERIAL WRITE: "+serMsg) + + ser.write(serMsg.encode()) + + def Void(self): + print("Void") + return True + + +win = MainGUI() +win.connect("destroy", Gtk.main_quit) +win.show_all() +Gtk.main() \ No newline at end of file diff --git a/GTK-examples/PORT_DATA.csv b/GTK-examples/PORT_DATA.csv new file mode 100644 index 0000000..2ea0107 --- /dev/null +++ b/GTK-examples/PORT_DATA.csv @@ -0,0 +1 @@ +AQ_START diff --git a/GTK-examples/PORT_DATA.log b/GTK-examples/PORT_DATA.log new file mode 100644 index 0000000..cc49a03 --- /dev/null +++ b/GTK-examples/PORT_DATA.log @@ -0,0 +1,2424 @@ +AQ_START +038 +V,uint8_t,blinkTime,33,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,34,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,35,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,36,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,37,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,38,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,39,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,40,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,41,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,42,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,43,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,44,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,45,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,46,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,47,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,48,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,49,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,50,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,51,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,52,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,53,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,54,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,55,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,56,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,57,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,58,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,59,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,60,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,61,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,62,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,63,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,64,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,65,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,66,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,67,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,68,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,69,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,70,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,71,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,72,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,73,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,74,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,75,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,76,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,77,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,78,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,79,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,80,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,81,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,82,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,83,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,84,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,85,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,86,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,87,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,88,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,89,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-20,0x20000038 +V,uint8_t,blinkTime,90,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,91,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,92,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,93,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,94,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,95,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,96,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,97,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,98,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,99,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,100,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,101,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,102,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,103,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,104,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,105,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,106,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,107,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,108,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,109,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,110,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,111,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,112,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,113,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,114,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,115,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,116,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,117,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,118,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,119,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,120,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,121,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,122,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,123,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,124,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,125,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,126,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,127,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,128,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,129,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,130,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,131,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,132,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,133,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,134,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,135,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,136,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,137,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,138,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,139,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,140,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,141,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,142,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,143,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,144,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,145,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,146,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,147,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,148,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,149,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,150,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,151,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,152,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,153,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,154,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,155,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,156,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,157,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,158,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,159,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,160,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,161,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,162,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,163,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,164,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,165,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,166,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,167,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,168,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,169,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,170,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,171,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,172,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,173,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,174,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,175,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,176,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,177,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,178,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,179,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,180,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,181,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,182,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,183,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,184,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,185,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,186,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,187,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,188,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,189,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,190,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,191,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,192,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,193,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,194,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,195,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,196,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,197,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,198,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,199,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,200,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,201,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,202,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,203,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,204,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,205,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,206,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,207,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,208,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,209,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,210,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,211,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,212,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,213,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,214,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,215,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,216,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,217,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,218,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,219,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,220,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,221,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,222,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,223,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,224,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,225,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,226,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,227,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,228,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,229,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,230,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,231,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,232,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,233,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,234,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,235,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,236,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,237,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,238,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,239,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,240,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,241,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,242,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,243,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,244,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,245,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,233,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,234,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,235,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,236,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,237,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,238,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,239,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,240,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,241,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,242,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,243,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,244,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,245,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,246,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,247,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,248,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,249,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,250,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,1,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,2,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,3,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,4,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,5,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,6,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,7,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,8,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,9,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,10,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,11,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,12,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,13,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,14,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,15,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,16,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,17,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,18,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,19,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,20,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,21,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,22,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,23,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,24,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,25,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,26,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,27,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,28,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,29,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,30,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,31,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,32,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,33,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,34,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,35,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,36,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,37,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,38,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,39,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,40,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,41,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,42,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,43,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,44,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,45,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,46,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,47,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,48,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,49,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,50,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,51,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,52,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,53,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,54,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,55,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,56,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,57,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,58,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,59,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,60,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,61,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,62,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,63,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,64,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,65,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,66,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,67,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,68,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,69,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,70,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,71,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,72,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,73,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,74,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,75,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,76,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,77,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,78,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,79,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,80,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,81,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,82,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,83,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,84,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,85,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,86,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,87,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,88,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,89,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,90,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,91,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,92,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,93,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,94,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,95,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,96,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,97,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,98,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,99,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,100,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,101,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,102,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,103,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,104,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,105,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,106,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,107,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,108,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,109,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,110,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,111,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,112,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,113,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,114,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,115,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,116,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,117,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,118,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,119,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,120,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,121,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,122,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,123,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,124,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,125,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,126,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,127,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,128,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,129,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,130,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,131,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,132,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,133,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,134,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,135,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,136,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,137,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,138,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,139,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,140,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,141,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,142,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,143,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,144,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,145,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,146,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,147,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,148,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,149,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,150,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,151,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,152,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,153,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,154,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,155,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,156,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,157,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,158,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,159,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,160,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,161,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,162,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,163,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,164,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,165,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,166,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,167,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,168,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,169,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,170,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,171,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,172,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,173,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,174,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,175,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,176,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,177,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,178,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,179,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,180,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,181,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,182,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,183,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,184,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,185,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,186,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,187,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,188,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,189,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,190,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,191,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,192,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,193,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,194,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,195,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,196,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,197,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,198,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,199,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,200,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,201,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,202,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,203,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,204,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,205,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,206,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,207,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,208,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,209,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,210,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,211,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,212,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,213,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,214,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,215,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,216,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,217,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,218,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,219,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,220,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,221,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,222,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,223,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,224,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,225,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,226,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,227,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,228,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,229,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,230,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,231,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,232,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,233,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,234,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,235,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,236,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,237,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,238,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,239,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,240,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,241,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,242,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,243,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,244,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,245,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,246,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,247,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,248,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,249,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,250,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,251,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,252,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,253,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 +R,reg,TIM8->PSC,499,0x40010428 +V,float,comp,29.50,0x20000014 +V,int32_t,testVar,-30,0x20000038 +V,uint8_t,blinkTime,254,0x20000034 +V,uint32_t,irc_pulses_per_revolution,17080,0x20000018 diff --git a/GTK-examples/Plot.py b/GTK-examples/Plot.py new file mode 100644 index 0000000..8acf2e4 --- /dev/null +++ b/GTK-examples/Plot.py @@ -0,0 +1,57 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Tue Mar 23 15:56:31 2021 + +@author: angoosh +""" + +import matplotlib +matplotlib.use('GTK3Agg') # or 'GTK3Cairo' +import matplotlib.pyplot as plt + +import gi +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk + + +fig, ax = plt.subplots() +ax.plot([1, 2, 3], 'ro-', label='easy as 1 2 3') +ax.plot([1, 4, 9], 'gs--', label='easy as 1 2 3 squared') +ax.legend() + +manager = fig.canvas.manager +# you can access the window or vbox attributes this way +toolbar = manager.toolbar +vbox = manager.vbox + +# now let's add a button to the toolbar +button = Gtk.Button(label='Click me') +button.show() +button.connect('clicked', lambda button: print('hi mom')) + +toolitem = Gtk.ToolItem() +toolitem.show() +toolitem.set_tooltip_text('Click me for fun and profit') +toolitem.add(button) + +pos = 8 # where to insert this in the toolbar +toolbar.insert(toolitem, pos) + +# now let's add a widget to the vbox +label = Gtk.Label() +label.set_markup('Drag mouse over axes for position') +label.show() +vbox.pack_start(label, False, False, 0) +vbox.reorder_child(toolbar, -1) + +def update(event): + if event.xdata is None: + label.set_markup('Drag mouse over axes for position') + else: + label.set_markup( + f'x,y=({event.xdata}, {event.ydata})') + +fig.canvas.mpl_connect('motion_notify_event', update) + +plt.show() diff --git a/GTK-examples/ReadAndApplyCsv.py b/GTK-examples/ReadAndApplyCsv.py new file mode 100644 index 0000000..2c77362 --- /dev/null +++ b/GTK-examples/ReadAndApplyCsv.py @@ -0,0 +1,160 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Sat Mar 20 09:44:07 2021 + +@author: angoosh +""" + +import threading +#from multiprocessing import Process, Queue +import queue +import gi +from time import sleep + +gi.require_version('Gtk', '3.0') +gi.require_version('GLib', '2.0') + +from gi.repository import Gtk, GLib + +IsEnded = 0 +rows = [] +csvContent = [] +csvFile = "" + +def do_work(): + global csvContent + while True: + with open(csvFile,"r") as file: + content = file.read() + print(content) + lines = content.split("\n") + csvContent = lines + file.close() + + sleep(1) + if IsEnded != 0: + break + +class MainGUI(Gtk.Window): + def __init__(self): + Gtk.Window.__init__(self, title="Append") + self.com_queue = queue.Queue() + self.worker_thread = None + self.liststore = None + + self.vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL) + self.add(self.vbox) + + self.box = Gtk.Box(spacing=6) + self.vbox.pack_start(self.box, True, True, 0) + + self.textArea = Gtk.Entry() + self.textArea.set_text("test.csv") + self.box.pack_start(self.textArea, True, True, 0) + + self.button1 = Gtk.Button(label="Load") + self.button1.connect("clicked", self.addRow) + self.box.pack_start(self.button1, True, True, 0) + + self.button2 = Gtk.Button(label="Update") + self.button2.connect("clicked", self.ApplyCsv) + self.box.pack_start(self.button2, True, True, 0) + + self.nbox = Gtk.Grid() + self.vbox.pack_start(self.nbox, True, True, 0) + + self.tid = None + self.proc = None + + + + def launch_worker_thread(self): + self.worker_thread = threading.Thread(target=do_work) + self.worker_thread.start() + + def butt(self, widget): + global rows + print(rows) + for row in rows: + row[3].set_text("3") + + def addRow(self, widget): + global rows, csvContent, csvFile + iteration = 0 + csvFile = self.textArea.get_text() + + with open(self.textArea.get_text(),"r") as file: + content = file.read() + print(content) + lines = content.split("\n") + csvContent = lines + file.close() + for line in lines: + try: + inLine = line.split(",") + print(inLine) + varType = inLine[0] + varName = inLine[1] + value = inLine[2] + + typeLabel = Gtk.Label(label=varType, halign=Gtk.Align.START) + f = Gtk.Frame() + f.add(typeLabel) + self.nbox.attach(f,0,iteration,1,1) + nameLabel = Gtk.Label(label=varName+":", halign=Gtk.Align.END) + f = Gtk.Frame() + f.add(nameLabel) + self.nbox.attach(f,1,iteration,1,1) + #nlabel = Gtk.Label(label=varType+" "+varName+":") + #nbox.pack_start(nlabel, True, True, 0) + + nentry = Gtk.Entry() + nentry.set_hexpand(False) + nentry.set_text(value) + nentry.connect("activate", self.printContent, varType, varName,) + self.nbox.attach(nentry,2,iteration,3,1) + #nbox.pack_start(nentry, True, True, 0) + + self.nbox.show_all() + #rowContent = [len(rows), nlabel, nentry] + rowContent = [len(rows),typeLabel, nameLabel, nentry] + rows.append(rowContent) + + iteration += 1 + except: + pass + + self.launch_worker_thread() + + def printContent(self, widget, vt, vn): + print(vt+" "+vn+": "+widget.get_text()) + + def ApplyCsv(self, widget): + global csvContent + values = [] + iteration = 0 + for content in csvContent: + try: + bits = content.split(",") + values.append(bits[2]) + except: + pass + for row in rows: + row[3].set_text(values[iteration]) + iteration += 1 + + def butt2(self, widget): + global IsEnded + IsEnded = 1 + + def prn(self, ignored): + print("B") + GLib.idle_add(self.update_treeview, "update") + +if __name__ == "__main__": + gui = MainGUI() + gui.connect("destroy", Gtk.main_quit) + gui.show_all() + Gtk.main() + IsEnded = 1 \ No newline at end of file diff --git a/GTK-examples/addRemoveWidget.py b/GTK-examples/addRemoveWidget.py new file mode 100644 index 0000000..98b3484 --- /dev/null +++ b/GTK-examples/addRemoveWidget.py @@ -0,0 +1,33 @@ +import gi + +gi.require_version("Gtk", "3.0") +from gi.repository import Gtk + +class MyWindow(Gtk.Window): + def __init__(self): + Gtk.Window.__init__(self, title="Hello World") + + self.box = Gtk.Box(spacing=6) + self.add(self.box) + + self.button1 = Gtk.Button(label="Hello") + self.button1.connect("clicked", self.on_button1_clicked) + self.box.pack_start(self.button1, True, True, 0) + + + def on_button1_clicked(self, widget): + print("Hello") + self.button2 = Gtk.Button(label="Goodbye") + self.button2.connect("clicked", self.on_button2_clicked) + self.box.pack_start(self.button2, True, True, 0) + self.button2.show_all() + + def on_button2_clicked(self, widget): + print("Goodbye") + self.button2.hide() + +win = MyWindow() +win.connect("destroy", Gtk.main_quit) +win.show_all() +Gtk.main() + diff --git a/GTK-examples/fileAppend.py b/GTK-examples/fileAppend.py new file mode 100644 index 0000000..77cefd4 --- /dev/null +++ b/GTK-examples/fileAppend.py @@ -0,0 +1,106 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +""" +Created on Thu Mar 18 18:06:34 2021 + +@author: angoosh +""" +import threading +#from multiprocessing import Process, Queue +import queue +import gi +from time import sleep + +gi.require_version('Gtk', '3.0') +gi.require_version('GLib', '2.0') + +from gi.repository import Gtk, GLib + +IsEnded = 0 +counter = 0 + +def do_work(com_queue): + global counter + while True: + counter += 1 + com_queue.put(str(counter)) + sleep(0.1) + print("A") + + if IsEnded != 0: + break + # continue + + +class MainGUI(Gtk.Window): + def __init__(self): + Gtk.Window.__init__(self, title="Append") + self.com_queue = queue.Queue() + self.worker_thread = None + self.liststore = None + + self.box = Gtk.Box(spacing=6) + self.add(self.box) + + self.textArea = Gtk.TextView() + self.textbuffer = self.textArea.get_buffer() + self.textbuffer.set_text("Ready: \n") + self.box.pack_start(self.textArea, True, True, 0) + + self.button1 = Gtk.Button(label="Start") + self.button1.connect("clicked", self.butt) + self.box.pack_start(self.button1, True, True, 0) + + self.button2 = Gtk.Button(label="Stop") + self.button2.connect("clicked", self.butt2) + self.box.pack_start(self.button2, True, True, 0) + + self.tid = None + self.proc = None + #self.state = mp.Value('i', 0) + # more gui initialization... + + def launch_worker_thread(self): + #self.proc = Process(target=do_work, args=(self.com_queue,)) + #self.proc.start() + + self.worker_thread = threading.Thread(target=do_work, args=(self.com_queue,)) + self.worker_thread.start() + try: + self.tid = GLib.timeout_add(1, self.check_queue, None) # run check_queue every 1 second + except: + print("Error") + + def butt(self, widget): + self.launch_worker_thread() + + def butt2(self, widget): + global IsEnded + IsEnded = 1 + + def prn(self, ignored): + print("B") + GLib.idle_add(self.update_treeview, "update") + + def check_queue(self, ignored): + if self.tid is not None: + #if self.worker_thread.is_alive(): + try: + update = self.com_queue.get(False) + GLib.idle_add(self.update_treeview, update) # send tuple + except queue.Empty: + pass + return True # to keep timeout running + else: + return False # to end timeout + + def update_treeview(self, update): + text_end = self.textbuffer.get_end_iter() + self.textbuffer.insert(text_end, str(update)) # here update the treeview model with tuple + +if __name__ == "__main__": + gui = MainGUI() + gui.connect("destroy", Gtk.main_quit) + gui.show_all() + Gtk.main() + IsEnded = 1 \ No newline at end of file diff --git a/GTK-examples/liveProgressBar.py b/GTK-examples/liveProgressBar.py new file mode 100644 index 0000000..9a1edfb --- /dev/null +++ b/GTK-examples/liveProgressBar.py @@ -0,0 +1,102 @@ +import multiprocessing as mp +import time + +import gi +gi.require_version('Gtk', '3.0') +from gi.repository import Gtk, GLib + + +def really_looong_operation(state): + """ + Do something that will block your app for a long time + """ + # tick every 200 milliseconds + tick = 1 + state.value = 0 + for k in range(100): + # In real life this might be invert a huge matrix or whatever... + time.sleep(tick) + state.value = k + 1 + # Final activity... + time.sleep(2*tick) + + +class PBarDemo(Gtk.Window): + + def __init__(self): + super().__init__(title="Progressing...") + self.connect("destroy", Gtk.main_quit) + self.set_border_width(10) + + vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=5) + self.add(vbox) + + self.pbar = Gtk.ProgressBar() + self.pbar.set_show_text(True) + vbox.pack_start(self.pbar, True, True, 0) + + self.switch = Gtk.Switch() + self.switch.connect("notify::active", self.on_start_stop) + vbox.pack_start(self.switch, True, True, 0) + + self.tid = None + self.proc = None + self.state = mp.Value('i', 0) + # Guarantee the start state + self._stop() + + def _stop(self): + # Guarantee that everything is in "stop mode" + if self.tid is not None: + #GObject.source_remove(self.tid) + GLib.source_remove(self.tid) + + if self.proc is not None and self.proc.is_alive(): + self.proc.terminate() + self.tid = None + self.proc = None + self.pbar.set_fraction(0.0) + self.pbar.set_text('Ready...') + + def on_start_stop(self, switch, prop): + # Check this is the right property + if prop.name != "active": + return + + self._stop() + if not switch.get_active(): + return + # Launch the activity... depending of what you want to do, + # it might be better to use a pool of workers or other tricks + self.proc = mp.Process(target=really_looong_operation, args=(self.state,)) + self.proc.start() + # And the timer that update the progressbar + #self.tid = GObject.timeout_add(250, self.running, None) + self.tid = GLib.timeout_add(250, self.running, None) + self.pbar.set_text("0%") + + def running(self, ignored): + value = self.state.value + if value >= 100: + # Stop working at 100% + self.proc.join() + self._stop() + self.switch.set_active(False) + # Return false to stop the timer + return False + else: + frac = value / 100 + self.pbar.set_fraction(frac) + self.pbar.set_text(f"{frac:.0%}") + + # Return True so this timer is considered active + return True + + +if __name__ == '__main__': + win = PBarDemo() + win.show_all() + try: + Gtk.main() + except: + exit() diff --git a/GTK-examples/seialTest.py b/GTK-examples/seialTest.py new file mode 100644 index 0000000..d60f521 --- /dev/null +++ b/GTK-examples/seialTest.py @@ -0,0 +1,5 @@ +import serial +ser = serial.Serial('/dev/ttyUSB0') # open serial port +print(ser.name) # check which port was really used +ser.write(b'hello') # write a string +ser.close() # close port diff --git a/GTK-examples/test.csv b/GTK-examples/test.csv new file mode 100644 index 0000000..4bf4c7c --- /dev/null +++ b/GTK-examples/test.csv @@ -0,0 +1,7 @@ +V,uint8_t,x,10 +V,int,y,86248 +V,float,variable,123.98 +V,int,fresh,10 +V,float,ser,1593.2 +V,int,dzes,1273 +R,float,derw,127 diff --git a/README.md b/README.md index 32cd23e..780828f 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,3 @@ # SmallPythonProjects -Just a bunch of small and tiny python projects \ No newline at end of file +Repo for not large python projects \ No newline at end of file