same as read_values.py but for preview, not print
parent
129712d263
commit
e1c628711b
@ -0,0 +1,59 @@
|
|||||||
|
# read the values from Arduino:
|
||||||
|
import serial # import serial library to read the values from Arduino Uno via serial (usb) connection
|
||||||
|
import os # library to use bash commands
|
||||||
|
|
||||||
|
from friction_label import friction_label
|
||||||
|
from future_relics import future_relics
|
||||||
|
from preview import preview
|
||||||
|
|
||||||
|
function_index = {
|
||||||
|
"FL": friction_label,
|
||||||
|
"FR": future_relics
|
||||||
|
}
|
||||||
|
|
||||||
|
module_index = {
|
||||||
|
"FL": "friction_label",
|
||||||
|
"FR": "future_relics"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
ser = serial.Serial('/dev/ttyS0', 9600, timeout=1) # establish a serial connection using Serial Pi Zero (S0), using the RX $
|
||||||
|
ser.reset_input_buffer()
|
||||||
|
|
||||||
|
while True:
|
||||||
|
if ser.in_waiting > 0:
|
||||||
|
|
||||||
|
line = ser.readline() # reads bytes
|
||||||
|
try:
|
||||||
|
line = line.decode("utf-8", 'ignore').rstrip() # converts bytes to string
|
||||||
|
line = line.replace("\r\n", "") # replaces "\r\n" (end of line) with nothing
|
||||||
|
line = line.replace("\r", "") # replaces "\r" (between two modules) with nothing
|
||||||
|
line = line.split("#") # splits the line into a list of lists
|
||||||
|
# after this split the list begins with an empty list, so delete it:
|
||||||
|
if line[0] == "": #if first list in lists is empty:
|
||||||
|
del line[0] #delete the first element
|
||||||
|
# print(line)
|
||||||
|
modules = []
|
||||||
|
for module in line:
|
||||||
|
values = module.split(",") # splits each module into values
|
||||||
|
modules.append(values)
|
||||||
|
print("These are the values of each module inside a list of modules ")
|
||||||
|
print(modules)
|
||||||
|
|
||||||
|
previous_module = ""
|
||||||
|
for module in modules: #for each module inside the list of modules
|
||||||
|
if module[0] not in module_index: #this if break is added to avoid the script from breaking at the start (which happens when serial is not yet receiving all values, but only fragments)
|
||||||
|
# print("break")
|
||||||
|
break # break and start the for loop again
|
||||||
|
function_index[module[0]](previous_module, module) #use function_index to run functions for each module
|
||||||
|
|
||||||
|
previous_module = module_index[module[0]] #use module_index to replace abbr. with full name
|
||||||
|
if module == modules[-1]: #if module is the last module in list of modules
|
||||||
|
final_module = module_index[module[0]] #use name of the last module to define final_module
|
||||||
|
# print(final_module)
|
||||||
|
preview(final_module) #call preview function with last_module as variable
|
||||||
|
|
||||||
|
except OSError as e:
|
||||||
|
print("Error: could not decode bytes")
|
||||||
|
print(e)
|
Loading…
Reference in New Issue