From 383577a2887e2a417f4a44daf723f050d4b1197e Mon Sep 17 00:00:00 2001 From: angoosh Date: Thu, 1 Jul 2021 14:17:59 +0200 Subject: [PATCH] 1234 --- ElectronicCalculator.py | 123 ++ GTK-examples/AppendWidgetsAndRWthem.py | 138 ++ GTK-examples/Icons/SerialPort.png | Bin 0 -> 48290 bytes GTK-examples/ListAndConnectToPort.py | 161 ++ GTK-examples/MONITOR_DATA.csv | 5 + GTK-examples/MonitorPrototype.py | 572 ++++++ GTK-examples/PORT_DATA.csv | 1 + GTK-examples/PORT_DATA.log | 2424 ++++++++++++++++++++++++ GTK-examples/Plot.py | 57 + GTK-examples/ReadAndApplyCsv.py | 160 ++ GTK-examples/addRemoveWidget.py | 33 + GTK-examples/fileAppend.py | 106 ++ GTK-examples/liveProgressBar.py | 102 + GTK-examples/seialTest.py | 5 + GTK-examples/test.csv | 7 + README.md | 2 +- 16 files changed, 3895 insertions(+), 1 deletion(-) create mode 100644 ElectronicCalculator.py create mode 100644 GTK-examples/AppendWidgetsAndRWthem.py create mode 100644 GTK-examples/Icons/SerialPort.png create mode 100644 GTK-examples/ListAndConnectToPort.py create mode 100644 GTK-examples/MONITOR_DATA.csv create mode 100644 GTK-examples/MonitorPrototype.py create mode 100644 GTK-examples/PORT_DATA.csv create mode 100644 GTK-examples/PORT_DATA.log create mode 100644 GTK-examples/Plot.py create mode 100644 GTK-examples/ReadAndApplyCsv.py create mode 100644 GTK-examples/addRemoveWidget.py create mode 100644 GTK-examples/fileAppend.py create mode 100644 GTK-examples/liveProgressBar.py create mode 100644 GTK-examples/seialTest.py create mode 100644 GTK-examples/test.csv 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 0000000000000000000000000000000000000000..9b6239dc0fd8fcbc1722afca35ff3da5e533745d GIT binary patch literal 48290 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 T(ddW`@ct;ss7TjHng;(rk@2M- literal 0 HcmV?d00001 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