@@ -45,32 +45,32 @@ def recvFromArduino(port):
45
45
return (ck )
46
46
47
47
#=====================================
48
+ # get rid of this function
48
49
49
- def sendToArduino (sendStr ):
50
- ser .write (sendStr .encode ())
50
+ def sendToArduino (sendStr , port ):
51
+ ser [ port ] .write (sendStr .encode ())
51
52
52
53
#======================================
53
54
54
- def runTest (td ):
55
+ def run (td , port ):
55
56
waitingForReply = False
56
57
57
58
if waitingForReply == False :
58
- sendToArduino (td )
59
+ sendToArduino (td , port )
59
60
print ("-> -> -> -> -> ->" )
60
61
print ("Message Sent:" )
61
62
print ("PC: " + td )
62
63
waitingForReply = True
63
64
64
65
if waitingForReply == True :
65
66
66
- while ser .inWaiting () == 0 :
67
+ while ser [ port ] .inWaiting () == 0 :
67
68
pass
68
69
69
- dataRecvd = recvFromArduino ()
70
+ dataRecvd = recvFromArduino (port )
70
71
print ("<- <- <- <- <- <-" )
71
72
print ("Message Received: " + dataRecvd )
72
73
waitingForReply = False
73
-
74
74
time .sleep (.1 )
75
75
76
76
@@ -80,38 +80,52 @@ def runTest(td):
80
80
import serial
81
81
import time
82
82
import sys
83
+ from threading import Thread
83
84
84
-
85
+ # global variables
85
86
NUMBER_OF_SLAVES = 2
86
87
startMarker = 60
87
88
endMarker = 62
88
89
baudRate = 9600
90
+ # alternative serPort = "/dev/ttyUSB0"
89
91
serPort = ["/dev/cu.usbmodem1412101" , "/dev/cu.usbmodem1412201" ]
90
- #serPort = "/dev/cu.SLAB_USBtoUART"
91
- #serPort = "/dev/ttyUSB0"
92
92
93
+ # initialize serial variable array
93
94
ser = [None ] * NUMBER_OF_SLAVES
95
+ threads = [None ] * NUMBER_OF_SLAVES
94
96
95
97
for x in range (len (serPort )):
96
98
ser [x ] = serial .Serial (serPort [x ], baudRate )
97
- # print(ser[x])
98
99
print ("Serial port " + serPort [x ] + " opened" )
99
100
100
- # Better Printout
101
101
print ("" )
102
102
103
103
for port in range (len (serPort )):
104
104
waitForArduino (port )
105
105
106
- #while 1 :
107
- # print ("===========")
108
- # print ("")
109
- # text = input("Up or Down?: ")
110
- # text = "<" + text + ">"
111
- # runTest(text)
112
- # time.sleep(1)
106
+ while 1 :
107
+ print ("===========" )
108
+ print ("" )
109
+ text = input ("Enter Commands: " )
110
+ parse_text = text .split (';' )
111
+ print (parse_text )
112
+
113
+ # create threads
114
+ for x in range (len (parse_text )):
115
+ print (parse_text [x ])
116
+ print (x )
117
+ threads [x ] = Thread (target = run , args = (parse_text [x ],x ))
118
+
119
+ # start threads
120
+ for x in range (len (parse_text )):
121
+ threads [x ].start ()
113
122
123
+ # wait for threads to finish
124
+ for x in range (len (parse_text )):
125
+ threads [x ].join ()
126
+
127
+
128
+ # close all serial connections
114
129
for x in range (len (serPort )):
115
130
print ("Serial port " + serPort [x ] + " closed" )
116
131
ser [x ].close
117
-
0 commit comments