-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathserial_transfer_test.py
29 lines (23 loc) · 1.21 KB
/
serial_transfer_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# -*- coding: utf-8 -*-
import sys
import argparse
from ..protocol.serialport import SerialTransferProtocol, SerialPort, SerialTransferError
if __name__ == "__main__":
parser = argparse.ArgumentParser()
parser.add_argument("-p", "--port", help="Serial port name", default="COM65")
parser.add_argument("-t", "--timeout", help="Serial port timeout", default=1)
parser.add_argument("-b", "--baudrate", help="Serial port baudrate", default=38400)
args = vars(parser.parse_args())
port = SerialPort(port=args.get("port"), baudrate=args.get("baudrate"), timeout=args.get("timeout"))
serial_transaction = SerialTransferProtocol(port.write, port.read)
# Read test
try:
global_data, package_data = serial_transaction.recv(lambda x: print("Read:{0:.02f}%".format(x)))
print("Read success: global data size: {0:d}, package data size: {1:d}".format(
len(global_data), len(package_data)))
# Write test
if serial_transaction.send(global_data, package_data, lambda x: print("Write:{0:.02f}%".format(x))):
print("Write success!")
except SerialTransferError as error:
print("Serial Transfer data error:{}".format(error))
sys.exit(-1)