一、收发测试-服务端(已有串口设备可以忽略)
import datetime
import random
import sys
import time
import serial
com_name = "COM2"
com_baud_rate = 115200
ser = serial.Serial(com_name, com_baud_rate)
if __name__ == '__main__':
ser.close()
try:
ser.open()
except serial.SerialException as e:
print("Error opening serial port: %s" % e)
ser.close()
sys.exit()
echo_bytes = "服务端收到了你的回答,你发送的是:\n".encode("utf-8")
prompt_bytes = "server@com2#\n".encode()
try:
# ser.readline()
while True:
ser.write(prompt_bytes)
ser.flush()
read_data = ser.readline()
ser.write(echo_bytes)
ser.write(read_data)
# ser.write(b"\n")
# time.sleep(1)
finally:
ser.close()
二、简单的串口助手,可以连接一的服务器端,或者已有设备
import datetime
import random
import sys
import time
from threading import Thread
import serial
import logging
logger = logging.getLogger(__name__)
log_file_name_suffix = "app.log"
def init_log():
logger.setLevel(logging.DEBUG)
# 创建日志格式
# formatter = logging.Formatter('%(pastime)s - %(name)s - %(levelness)s - %(message)s')
formatter = logging.Formatter('%(message)s')
stdout_handler = logging.StreamHandler()
stdout_handler.setLevel(logging.INFO)
stdout_handler.setFormatter(formatter)
# file_log_name = random.Random.
file_handler = logging.FileHandler('app.log')
file_handler.setLevel(logging.DEBUG)
file_handler.setFormatter(formatter)
# 添加处理程序到日志记录器
logger.addHandler(stdout_handler)
logger.addHandler(file_handler)
com_name = "COM1"
com_baud_rate = 115200
ser = serial.Serial(com_name, com_baud_rate)
def thead_read_com():
while True:
new_data = ser.readline()
new_str = new_data.decode("utf-8")[:-1:]
# server@com2#
logger.info()
# time.sleep(1)
# print(new_data.decode("utf-8"), end="")
def thead_write_com():
prompt_str = "@" + com_name + "#"
while True:
# logger.debug(prompt_str)
input_str = input()
logger.debug(input_str)
ser.write(input_str.encode("utf-8"))
ser.write(b"\n")
ser.flush()
if __name__ == '__main__':
init_log()
logger.info(datetime.datetime.now())
ser.close()
try:
ser.open()
except serial.SerialException as e:
logger.error("Error opening serial port: %s" % e)
ser.close()
sys.exit()
try:
Thread(target=thead_write_com).start()
Thread(target=thead_read_com).start()
while True:
time.sleep(36)
finally:
ser.close()
2310

被折叠的 条评论
为什么被折叠?



