Skip to content

Commit 14ce887

Browse files
committed
Made serial mode more robust
1 parent 91b6c94 commit 14ce887

File tree

1 file changed

+33
-22
lines changed

1 file changed

+33
-22
lines changed

Diff for: run.py

+33-22
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,27 @@ class ThreadingSimpleServer(SocketServer.ThreadingMixIn,BaseHTTPServer.HTTPServe
1111

1212
httpServerRunning = False
1313
serialServerRunning = False
14-
ser = serial.Serial()
1514

1615
def serialServerLoop():
1716
global serialServerRunning
18-
ser.open()
19-
ser.baudrate = SerialSpinBoxVar.get()
20-
ser.write('TS 1\n')
21-
while serialServerRunning:
22-
server.handle_request()
23-
line = ser.readline()
24-
server.handle_request()
25-
server.send_message_to_all(line)
26-
ser.write('TS 0\n')
27-
ser.close()
28-
server.server_close()
17+
try:
18+
ser = serial.Serial(serialbox.get())
19+
ser.baudrate = SerialSpinBoxVar.get()
20+
ser.write('TS 1\n')
21+
while serialServerRunning:
22+
server.handle_request()
23+
line = ser.readline()
24+
server.handle_request()
25+
server.send_message_to_all(line)
26+
ser.write('TS 0\n')
27+
ser.close()
28+
server.server_close()
29+
except Exception as e:
30+
print "Failed to open"
31+
print e
32+
serialToggle()
33+
return
34+
2935

3036
def httpToggle():
3137
global httpServerRunning
@@ -58,6 +64,7 @@ def serialToggle():
5864
serialthread.daemon = True
5965
serialthread.start()
6066
SerialButton.configure(bg='#0F0')
67+
6168
def new_client(client,server):
6269
print "New client gotten ", client
6370

@@ -66,7 +73,7 @@ def genUrl():
6673
tkMessageBox.showerror("Url Error","WebSocketServer Url can not be blank!")
6774
return
6875
try:
69-
val = "http://localhost:{}/?theme={}&websockport={}&websocketserver={}".format(HttpSpinBoxVar.get(),themebox.get(themebox.curselection()),WebSpinBoxVar.get(),WebSockUrlEntryVar.get())
76+
val = "http://localhost:{}/?theme={}&websockport={}&websocketserver={}".format(HttpSpinBoxVar.get(),themebox.get(),WebSpinBoxVar.get(),WebSockUrlEntryVar.get())
7077
except TclError:
7178
tkMessageBox.showerror("Input Error","Bad input. Ensure all items are selected")
7279
return
@@ -105,15 +112,15 @@ def aboutWindow():
105112
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.""")
106113

107114
def setWifiCreds():
108-
ser = serial.Serial(serialbox.get(serialbox.curselection()))
115+
ser = serial.Serial(serialbox.get())
109116
ser.baudrate = SerialSpinBoxVar.get()
110117
ser.reset_input_buffer()
111118
ser.reset_output_buffer()
112119
ser.write('WW {} {}\n'.format(SSIDVar.get(),PASSVar.get()))
113120
ser.close()
114121

115122
def setWinCredMan():
116-
ser = serial.Serial(serialbox.get(serialbox.curselection()))
123+
ser = serial.Serial(serialbox.get())
117124
ser.baudrate = SerialSpinBoxVar.get()
118125
window = Toplevel(mainframe)
119126
window.title("Wifi Manager")
@@ -145,7 +152,7 @@ def setWinCredMan():
145152
menubar.add_command(label="About", command=aboutWindow)
146153
root.config(menu=menubar)
147154
SerialSpinBoxVar = IntVar(mainframe)
148-
SerialSpinBoxVar.set("115200")
155+
SerialSpinBoxVar.set("921600")
149156
WebSpinBoxVar = IntVar(mainframe)
150157
WebSpinBoxVar.set("18881")
151158
HttpSpinBoxVar = IntVar(mainframe)
@@ -169,13 +176,17 @@ def setWinCredMan():
169176
lists = ttk.Frame(mainframe)
170177
Label(lists,text='Serial Port').grid(column=0,row=0)
171178
Label(lists,text='Theme').grid(column=1,row=0)
172-
serialbox = Listbox(lists,exportselection=False)
173-
for i in serial.tools.list_ports.comports():
174-
serialbox.insert(END,i.device)
179+
serialbox = ttk.Combobox(lists,exportselection=False,height=5)
180+
serialbox.config(value=[i.device for i in serial.tools.list_ports.comports()])
181+
#for i in serial.tools.list_ports.comports():
182+
# print dir(serialbox.insert)
183+
# serialbox.values.insert(END,i.device)
175184
serialbox.grid(column=0,row=1)
176-
themebox = Listbox(lists,exportselection=False)
177-
for i in os.listdir('theme'):
178-
themebox.insert(END,i)
185+
themebox = ttk.Combobox(lists,exportselection=False,height=5)
186+
themebox.config(value=[i for i in os.listdir('theme')])
187+
#for i in os.listdir('theme'):
188+
# themebox.values.insert(END,i)
189+
179190
themebox.grid(column=1,row=1)
180191
lists.pack()
181192

0 commit comments

Comments
 (0)