Files
mobile_comm/luatos/air780epm/module/Air780EPM/demo/fota/fota(使用fota核心库)/main.py
T
wangfq 173dd6874f init: Air780EPM 官方 LuatOS 项目代码基线
- 来源: 合宙 LuatOS 官方仓库 air780epm 模块完整代码
- 路径: luatos/air780epm/module/Air780EPM/demo 含官方 demo(含 mqtt/mqtts/socket/uart 等)
- 后续: 基于 demo 开发 UART<->MQTT 数据上报功能
2026-08-31 08:53:49 +08:00

42 lines
1.3 KiB
Python

#!/usr/bin/python3
# -*- coding: UTF-8 -*-
import serial, serial.tools.list_ports, sys, argparse
def find_virtual_port():
for port in serial.tools.list_ports.comports():
if port.vid == 0x19d1 and port.pid == 0x0001 and port.location and "x.6" in port.location:
return port.device
return None
# 解析命令行参数
parser = argparse.ArgumentParser()
parser.add_argument('-p', '--port', help='串口名称,如COM1或/dev/ttyS0')
args = parser.parse_args()
# 确定使用的串口
port = args.port or find_virtual_port()
if not port:
print("错误: 未找到虚拟串口且未指定串口")
sys.exit(1)
print(f"使用串口: {port}")
try:
with serial.Serial(port, 115200, timeout=1) as ser:
ser.write(b"#FOTA\n")
data = ser.read(128)
if data and data.startswith(b"#FOTA"):
print("设备响应", data)
with open("fota_uart.bin", "rb") as f:
while fdata := f.read(256):
print("发送升级包数据", len(fdata))
ser.write(fdata)
if resp := ser.read(128):
print("设备响应", resp)
print("发送完毕,退出")
else:
print("设备没响应", data)
except Exception as e:
print(f"错误: {e}")
sys.exit(1)