From baeecfb47b6f75c71f9f547a577adf6dfac3befb Mon Sep 17 00:00:00 2001 From: Marc-Antoine Lafreniere Date: Wed, 27 Feb 2019 09:52:05 -0500 Subject: [PATCH] Send all GCode command Read a gcode file and send it to the arduino --- arduinosender/CommunicationMain.py | 43 ++++++++++++++++++++++++++++++ arduinosender/__init__.py | 0 2 files changed, 43 insertions(+) create mode 100644 arduinosender/CommunicationMain.py create mode 100644 arduinosender/__init__.py diff --git a/arduinosender/CommunicationMain.py b/arduinosender/CommunicationMain.py new file mode 100644 index 0000000..1d845e7 --- /dev/null +++ b/arduinosender/CommunicationMain.py @@ -0,0 +1,43 @@ +import serial +import argparse + +from serial import SerialException + +if __name__ == "__main__": + parser = argparse.ArgumentParser(prog = 'main.py') + parser.add_argument('-g', required = True, help = 'GCode file path') + parser.add_argument('-c', required = True, help = 'Arduino com port') + parser.add_argument('-t', required = False, type = int, help = 'Communication timout') + parser.add_argument('-b', required = False, type = int, help = 'Communication baudrate') + args = parser.parse_args() + + timeoutCom = 2 + baudRate = 9600 + + if args.t: + timeoutCom = int(args.t) + if args.b: + baudRate = int(args.b) + + ser = None + try: + ser = serial.Serial(args.c, baudRate, timeout = timeoutCom) + + file = open(args.g, 'r') + lines = file.readlines() + file.close() + + for line in lines: + if not line == '\n': + ser.write(line.encode('UTF-8')) + if not ser.readline().decode('UTF-8').startswith('1'): + raise RuntimeError('Communication lost') + + ser.close() + except SerialException as errSE: + print('Serial Exception' + str(errSE)) + except RuntimeError as errRE: + print(str(errRE)) + finally: + if ser is not None: + ser.close() \ No newline at end of file diff --git a/arduinosender/__init__.py b/arduinosender/__init__.py new file mode 100644 index 0000000..e69de29