From b85d702224d1f5a1426be5bbfde1cb9259d45d2b Mon Sep 17 00:00:00 2001 From: phl0 Date: Sun, 6 Nov 2016 22:51:48 +0100 Subject: [PATCH 1/2] Add error handling to opening of serial device --- Nextion/nextion.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Nextion/nextion.py b/Nextion/nextion.py index b70d15b..0339bab 100644 --- a/Nextion/nextion.py +++ b/Nextion/nextion.py @@ -105,9 +105,10 @@ if __name__ == "__main__": \nnote: model name is optional' exit(1) - ser = serial.Serial(sys.argv[2], 9600, timeout=5) - if not ser: - print 'could not open device' + try: + ser = serial.Serial(sys.argv[2], 9600, timeout=5) + except serial.serialutil.SerialException: + print 'could not open serial device ' + sys.argv[2] exit(1) if not ser.is_open: ser.open() From 3f6a34a8b525b9ee44b917b3faf40f2cd6374761 Mon Sep 17 00:00:00 2001 From: phl0 Date: Sun, 6 Nov 2016 22:55:15 +0100 Subject: [PATCH 2/2] Add check for correct model number of display --- Nextion/nextion.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Nextion/nextion.py b/Nextion/nextion.py index 0339bab..a8fb9a4 100644 --- a/Nextion/nextion.py +++ b/Nextion/nextion.py @@ -20,6 +20,7 @@ import serial import time import sys import os +import re e = "\xff\xff\xff" @@ -116,4 +117,8 @@ if __name__ == "__main__": checkModel = None if len(sys.argv) == 4: checkModel = sys.argv[3] + pattern = re.compile("^NX\d{4}[TK]\d{3}$") + if not pattern.match(checkModel): + print 'Invalid model name. Please give a correct one (e.g. NX3224T024)' + exit(1) upload(ser, sys.argv[1], checkModel)