Skip to content

Commit e34d920

Browse files
authored
Add files via upload
1 parent 5d9209b commit e34d920

6 files changed

+583
-0
lines changed

COMANDI.docx

16 KB
Binary file not shown.

Description.docx

21.7 KB
Binary file not shown.

config_IfArduino.txt

+4
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
baudrate= 57200
2+
useDefaultUART= Yes
3+
default_UART= COM31
4+
Autofind= Yes

interfaccia_Arduino.py

+130
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
import serial
2+
from time import sleep as dormi
3+
from lib_menu import menu_scelta
4+
from lib_Arduino_Funcs import CreaDb, LeggiIn, ScriviOut, SetPinMode, GetPinMode, PrintArdStatus
5+
import serial.tools.list_ports
6+
7+
debug = False #allows working on development without having Arduino connected
8+
9+
#MAIN PROGRAM
10+
continua = True
11+
db =[]
12+
ports = list(serial.tools.list_ports.comports())
13+
14+
baudrate=9600 #keep a default baudrate
15+
Autofind="No"
16+
useDefaultUART="No"
17+
defaultUART="/dev/ttyS0"
18+
19+
f = open('config_IfArduino.txt', 'r')
20+
with f:
21+
configurazione=f.readlines()
22+
23+
for linea in configurazione:
24+
if "baudrate" in linea: baudrate=int(linea.strip("baudrate="))
25+
if "useDefaultUART" in linea:
26+
useDefaultUART=linea.strip("useDefaultUART= ").upper().strip("\n")
27+
if "default_UART" in linea: defaultUART=linea.strip("default_UART= ").strip("\n")
28+
if "Autofind" in linea: Autofind=linea.strip("Autofind= ").upper()
29+
30+
defaultUART=defaultUART.upper()
31+
print(baudrate)
32+
print(useDefaultUART)
33+
print(defaultUART)
34+
print(Autofind)
35+
36+
menu_scelta_UART=[]
37+
if Autofind == "YES":
38+
arduino_ports = [
39+
p.device
40+
for p in serial.tools.list_ports.comports()
41+
if 'Arduino' in p.description
42+
]
43+
print("arduino_ports: ",arduino_ports)
44+
print("arduino_ports[0]: ",arduino_ports[0])
45+
46+
if len(arduino_ports)>=1:
47+
menu_scelta_UART.append(arduino_ports[0])
48+
menu_scelta_UART.append("None")
49+
numeroUART=0
50+
useDefaultUART="NO"
51+
else:
52+
print("No Arduino found.... please specify PORT")
53+
Autofind = "NO"
54+
else:
55+
Autofind = "NO"
56+
57+
if (Autofind == "NO") and (useDefaultUART=="YES"):
58+
menu_scelta_UART.append(defaultUART)
59+
menu_scelta_UART.append("None")
60+
numeroUART=0
61+
else:
62+
useDefaultUART="NO"
63+
64+
if (Autofind == "NO") and (useDefaultUART=="NO"):
65+
menu_scelta_UART=["SELECTION OF SERIAL PORT NUMBER TO USE"]
66+
lx_win = "windows"
67+
for p in ports:
68+
#print(p)
69+
#print(p[0])
70+
#print("DESCRIPTION: ",p.description)
71+
#print("NAME: ",p.name)
72+
menu_scelta_UART.append(p.description)
73+
#print("device: ",p.device)
74+
#print("type:", type(p.device))
75+
#print("ports:", type(ports))
76+
#if ('/dev/' in p.device): print("typeif:", type(p.device))
77+
if ('/dev/tty' in p.device): lx_win="Linux"
78+
79+
if (lx_win=="Linux"):
80+
menu_scelta_UART.append("/dev/ttyS0")
81+
print("ports",arduino_ports)
82+
83+
#input("avanti")
84+
menu_scelta_UART.append("Cancel")
85+
86+
numeroUART = int(menu_scelta(menu_scelta_UART,True))
87+
if (numeroUART==len(menu_scelta_UART)-2):
88+
print("Goodbye!!! ")
89+
exit(0)
90+
91+
print("Autofind: ",Autofind)
92+
print("useDefaultUART: ",useDefaultUART)
93+
print("menu_scelta_UART[numeroUART]: ",menu_scelta_UART[numeroUART])
94+
print("menu_scelta_UART: ",menu_scelta_UART)
95+
96+
input("AAAA:")
97+
if not(debug):
98+
if menu_scelta_UART[numeroUART+1]=="/dev/ttyS0":
99+
ser = serial.Serial("/dev/ttyS0", baudrate, timeout=3)
100+
elif (Autofind == "YES") or (useDefaultUART=="YES"):
101+
ser = serial.Serial(menu_scelta_UART[numeroUART], baudrate, timeout=3)
102+
else:
103+
ser = serial.Serial(ports[numeroUART].device, baudrate, timeout=3)
104+
105+
ser.reset_input_buffer()
106+
print("Port Name: ",ser.name)
107+
print("Port details: ", ser)
108+
#input("avanti")
109+
else:
110+
ser = 0
111+
112+
if not(menu_scelta_UART[numeroUART+1]=="/dev/ttyS0"):
113+
dormi(2) #let Arduino get started!
114+
115+
CreaDb(db,ser)
116+
117+
while continua:
118+
main_menu=["FUNCTION SELECTION","Read an input","Write output","Set Pin Mode","Get Pin Mode","Show Arduino I/O status","Exit"]
119+
scelta = menu_scelta(main_menu)
120+
funcs = {'1':LeggiIn, '2':ScriviOut, '3':SetPinMode, '4':GetPinMode, '5':PrintArdStatus}
121+
122+
if int(scelta,10) in range(len(main_menu)-1):
123+
func = funcs[scelta]
124+
res = func(db,ser)
125+
else:
126+
print("Goodbye!!! ")
127+
continua = False
128+
129+
if not(debug):
130+
ser.close()

0 commit comments

Comments
 (0)