OP-BT 所有命令列表
通讯
通讯测试软件:sscom32 手机蓝牙连接软件:蓝牙调试软件均可
蓝牙:安卓系统要求使用SPP方式通讯,IOS则使用BLE方式通讯 列出的蓝牙设备,蓝牙名称必须有特定的字串,OPBT,TES,EDMI,LAND,TP,SPP,BLE,TOOL OPBT系列图标 TP系列图标
OP系列命令通讯协议
支持通过串口或蓝牙与设备进行通讯。 所有命令修改后,如果需要重新开机后也生效,必须发送保存配置指令才行
命令格式
**命令为类json格式,可以多个参数同时设置,命令总长度不超过150个字符 例如:
- {“AtCommandMode”:true}
- {“LcdScreenFlag”:true,“UartSelectedIndex”:1,“UserConfigSave”:true}
命令说明
1,进入命令状态,{“AtCommandMode”:true},一次进入成功后,会一直处于命令状态 2,设置或查询参数 3,如果需要保存参数,{“UserConfigSave”:true} 4, 退出命令状态,{“AtCommandMode”:false}
**设备默认为透传模式,如需要参数设置,则必须进入命令模式
命令列表
1. 命令模式控制
进入命令模式
- 命令:
{"AtCommandMode":true}或OP>1\r\n - 返回:
{"OK":true}或OK\r\n表示成功进入命令模式 - 说明:进入后会一直保持在命令状态,如果需要重新进入透传模式,需退出命令模式
- 默认值:false
退出命令模式
- 命令:
{"AtCommandMode":false}或OP>0\r\n - 返回:
{"OK":false}或OK\r\n表示成功退出命令模式 - 说明:退出后恢复为透传模式
- 默认值:false
启动Python脚本运行
- 命令:
OP>2\r\n - 返回:无返回值,直接启动Python终端
- 说明:设置PythonRunMode为1,并根据通信模式自动设置Python脚本回显串口(UART2BT_MODE使用串口1,BT2UART_MODE使用串口0)。
- 默认值:0
2. 系统参数操作
恢复用户出厂设置
- 命令:
{"UserDefault":true} - 返回:
{"OK":“”}表示设置成功 - 说明:将系统参数恢复成用户出厂默认值,需发送保存配置命令,并重新开机才会生效
恢复厂家出厂设置
- 命令:
{"FactoryDefault":true} - 返回:
{"OK":“”}表示设置成功 - 说明:将系统参数恢复成用户出厂默认值,需发送保存配置命令,并重新开机才会生效
保存当前配置到用户
- 命令:
{"UserConfigSave":true} - 返回:
{"OK":“”}表示保存成功 - 说明:将当前参数保存为用户默认值
保存当前配置到厂家
- 命令:
{"FactoryConfigSave":true} - 返回:
{"OK":“”}表示保存成功 - 说明:将当前参数保存为用户默认值
系统重新启动
- 命令:
{"Reboot":true} - 返回:
{"OK":""} - 说明:将系统重启
开机按键配置恢复功能
- 功能说明:开机时通过按键组合快速恢复配置,无需进入命令模式
- 使用方法:
- 开机时按住中键(中间按钮)
- LED1和LED2的红绿灯会点亮,提示进入配置恢复模式
- 等待5秒后,根据需求按下对应的按键组合:
- OK键+中键:恢复用户默认值(从出厂配置加载并保存为用户配置)
- 选择键(左键)+中键:恢复出厂默认值(设置并保存出厂配置和用户配置)
- 操作成功后,所有LED会点亮1秒作为提示
- 注意事项:
- 此功能在开机时执行,需要在LCD初始化完成后、配置加载前进行操作
- 如果5秒后没有检测到有效的按键组合,LED会自动熄灭,系统继续正常启动
- 恢复出厂默认值会同时更新出厂配置和用户配置,请谨慎使用
- 恢复用户默认值仅更新用户配置,出厂配置保持不变
3. 配置查询
设备配置查询
- 命令:
{"CurrentDeviceConfig":"?"} - 返回:包含设备型号、版本、序列号等信息的JSON数据,例如下面的内容
{
"Model": "OP-BT-585",
"Customize Model": "OP-BT-585",
"Software Version": "V4.1-585_20241208",
"Hardware Version": "V3.08-585_20241208",
"Hardware Version1": "V3.08-585_20241208",
"Hardware Serial NO": "20241208001",
"OPBT Software Version": "V4.1-585_20241208",
"OPBT Hardware Version": "V3.08-585_20241208",
"OPBT Hardware Serial Number": "20241208001",
"Storage Capacity": "WB 16MB", // 硬件SPI模式显示格式:厂商 容量;软SPI模式显示格式:*厂商 容量(如"*WB 16MB")
"BT Name SPP": "ZENOVATE SPP",
"BT Name BLE": "ZENOVATE BLE",
"BT Pin": "1234",
"BT UUID0": "18F0",
"BT UUID1": "2AF0",
"BT UUID2": "2AF1",
"Battery voltage": 3809,
"System voltage": 3756,
"System temperature": 247,
"Charging Flag": false,
"Battery Level": 45
}
系统配置查询
- 命令:
{"CurrentSysConfig":"?"} - 返回:包含系统的设置信息的JSON数据,例如下面的内容
{
"Language": "English",
"Debug": 0,
"Customized Mode": 0,
"Quick Charge": false,
"Battery Voltage Low": 3400,
"Battery Voltage Temp Alarm": 50,
"System Charge Temp Low": -10,
"System Charge Temp High": 50,
"System Turn Off Time": 2000,
"System Sleep Time": 1200,
"Screen Sleep Time": 600,
"Screen Black Time": 120,
"Screen Auto Turn Off": true,
"Screen Brightness": 100,
"Flashlight Delay": 10,
"OP Low Power Mode": true,
"External Usb Mode": true,
"Transmit Power": 16,
"LED Switch Status": [
true, true, true, true, true,
true, true, true, true, true
],
"RecvSens": [
90, 91, 92, 93, 94,
95, 96, 97, 98, 99
]
}
通讯参数配置查询
- 命令:
{"CurrentCommConfig":"?"} - 返回:包含系统的设置信息的JSON数据,例如下面的内容
{
"Comm Protocol": "IEC6205621",
"User Iec Hdlc Mode": true,
"User Iec Mid Mode": false,
"IEC1107 Auto Baudrate": true,
"Uart Selected Index": 0,
"IEC Mid Uart": "300,E,7,1",
"OP BaudRate": "9600,N,8,1",
"BT BaudRate": "115200,N,8,1",
"IEC BaudRate": "300,E,7,1",
"OP Preset BaudRate": [
"9600,N,8,1",
"19200,N,8,1",
"300,E,7,1",
"38400,N,8,1",
"4800,N,8,1",
"9600,E,7,1",
"2400,E,7,1",
"300,E,7,1",
"9600,N,8,1",
"19200,N,8,1"
]
}
4. 蓝牙相关配置
SPP 名称查询和设置
-
命令:
{"BtSppName":"?"} -
返回示例:
{"BT Name SPP":"ZENOVATE SPP"} -
说明:查询当前SPP蓝牙名称
-
默认值:“ZENOVATE SPP”
-
命令:
{"BtSppName":"XXXXX"} -
返回:
{"OK":"XXXXX"} -
说明:设置SPP蓝牙名称,最长支持20个字节,重新开机才会生效
-
默认值:“ZENOVATE SPP”
BLE 名称设置
-
命令:
{"BtBleName":"?"} -
返回:
{"BT Name BLE":"ZENOVATE BLE"} -
说明:查询当前BLE蓝牙名称
-
默认值:“ZENOVATE BLE”
-
命令:
{"BtBleName":"XXXXX"} -
返回:
{"OK":"XXXXX"} -
说明:设置BLE蓝牙名称,最长支持15个字节
-
默认值:“ZENOVATE BLE”
PIN 码设置
-
命令:
{"BtPin":"?"} -
返回:
{"BT PIN":"1234"} -
说明:查询当前PIN码,默认值为1234
-
默认值:“1234”
-
命令:
{"BtPin":"XXXX"} -
返回:
{"OK":"XXXX"} -
说明:设置新的PIN码,必须为4位10进制数
-
默认值:“1234”
UUID 设置
-
命令:
{"uuid0":"?"} -
返回:
{"uuid0":"18F0"} -
说明:查询UUID0的当前值
-
默认值:“18F0”
-
命令:
{"uuid0":"XXXX"} -
返回:
{"OK":"XXXX"} -
说明:设置UUID0值,支持4位或16位16进制数
-
默认值:“18F0”
-
命令:
{"uuid1":"?"} -
返回:
{"uuid1":"2AF0"} -
说明:查询UUID1的当前值
-
默认值:“2AF0”
-
命令:
{"uuid1":"XXXX"} -
返回:
{"OK":"XXXX"} -
说明:设置UUID1值,支持4位或16位16进制数
-
默认值:“2AF0”
-
命令:
{"uuid2":"?"} -
返回:
{"uuid2":"2AF1"} -
说明:查询UUID2的当前值
-
默认值:“2AF1”
-
命令:
{"uuid2":"XXXX"} -
返回:
{"OK":"XXXX"} -
说明:设置UUID2值,支持4位或16位16进制数
-
默认值:“2AF1”
**蓝牙SPP和BLE方式的查询和设置
-
命令:
{"BtBleSppMode":"?"} -
返回例子:
{"BtBleSppMode":0} -
说明:查询当前蓝牙SPP和BLE方式,参看蓝牙手册
-
默认值:0
-
命令:
{"BtBleSppMode":NN} -
返回:
{"OK":NN} -
说明:设置蓝牙SPP和BLE方式,参看蓝牙手册
-
默认值:0
主从机查询和设置
-
命令:
{"ServerMacAddress":"?"} -
返回例子:
{"ServerMacAddress":"001122334455"} -
说明:查询要连接到的BLE服务器的MAC地址
-
默认值:空
-
命令:
{"ServerMacAddress":"112233445566"} -
返回例子:
{"OK":"001122334455"} -
说明:设置要连接到的BLE服务器的MAC地址
-
默认值:空
5. 系统参数配置
自动关机时间 (Idle Before Auto Device Off)
-
命令:
{"SystemTurnOffTime":"?"} -
返回:
{"SystemTurnOffTime":2000} -
说明:查询当前自动关机时间设置
-
默认值:2000秒
-
命令:
{"SystemTurnOffTime":NNN} -
返回:
{"OK":NNN} -
说明:设置自动关机时间,NNN=0表示不关机,其他值为延时时间(秒)
-
默认值:2000秒
系统休眠时间 (Idle Before Hibernate)
-
命令:
{"SystemSleepTime":"?"} -
返回:
{"SystemSleepTime":1200} -
说明:查询当前系统休眠时间设置,单位:秒
-
默认值:1200秒
-
命令:
{"SystemSleepTime":NNN} -
返回:
{"OK":NNN} -
说明:设置系统休眠时间,NNN=0表示不休眠,其他值为延时时间(秒)
-
默认值:1200秒
屏幕关闭时间 (Idle Before Screen Off)
-
命令:
{"ScreenSleepTime":"?"} -
返回:
{"ScreenSleepTime":600} -
说明:查询当前屏幕休眠时间设置,单位:秒
-
默认值:600秒
-
命令:
{"ScreenSleepTime":NNN} -
返回:
{"OK":NNN} -
说明:设置屏幕休眠时间,NNN=0表示不休眠,其他值为延时时间(秒)
-
默认值:600秒
屏幕自动关闭 (Auto Screen Off)
-
命令:
{"ScreenAutoTurnOff":"?"} -
返回:
{"ScreenAutoTurnOff":true} -
说明:查询当前屏幕自动关闭设置,返回true或false
-
默认值:true
-
命令:
{"ScreenAutoTurnOff":true|false} -
返回:
{"OK":true|false} -
说明:true=允许自动关闭,false=禁止自动关闭
-
默认值:true
屏幕变暗时间 (Idle Before Screen Dark)
-
命令:
{"ScreenBlackTime":"?"} -
返回:
{"ScreenBlackTime":120} -
说明:查询当前屏幕变暗时间设置,单位:秒
-
默认值:120秒
-
命令:
{"ScreenBlackTime":NNN} -
返回:
{"OK":NNN} -
说明:设置屏幕变暗时间,NNN=0表示不变暗,其他值为延时时间(秒)
-
默认值:120秒
手电筒自动关闭时间 (Auto Flashlight Off)
-
命令:
{"FlashlightDelay":"?"} -
返回:
{"FlashlightDelay":10} -
说明:查询当前手电筒自动关闭时间设置,单位:秒
-
默认值:10秒
-
命令:
{"FlashlightDelay":NNN} -
返回:
{"OK":NNN} -
说明:设置手电筒自动关闭时间,范围0-120秒
-
默认值:10秒
屏幕亮度 (Screen Brightness)
-
命令:
{"ScreenBrightness":"?"} -
返回:
{"ScreenBrightness":100} -
说明:查询当前屏幕亮度设置,单位:%,范围0-100
-
默认值:100%
-
命令:
{"ScreenBrightness":NNN} -
返回:
{"OK":NNN} -
说明:设置屏幕亮度,范围0-100(%)
-
默认值:100%
光电头功率设置 (IR Power)
-
命令:
{"OPLowPowerMode":"?"} -
返回:
{"OPLowPowerMode":true} -
说明:查询当前光电头功率模式,true=正常模式,false=高功率模式
-
默认值:true
-
命令:
{"OPLowPowerMode":true|false} -
返回:
{"OK":true|false} -
说明:true=低功率模式,false=高功率模式
-
默认值:true
OP低功耗总开关 (Enable OP Low Power vs 38K PWM)
-
命令:
{"OPLowPowerEnable":"?"} -
返回:
{"OPLowPowerEnable":true|false} -
说明:控制是否允许OP低功耗功能。当为true时,按照
OPLowPowerMode设置驱动低功耗引脚(PA7); 当为false时,禁用低功耗并启用PWM5输出38KHz方波(默认占空比50%) -
默认值:true
-
命令:
{"OPLowPowerEnable":true|false} -
返回:
{"OK":true|false} -
说明:true=允许OP低功耗功能(PA7生效), false=禁止OP低功耗并启用38KHz方波输出(PWM5)
USB通讯模式 (USB Mode)
-
命令:
{"ExternalUsbMode":"?"} -
返回:
{"ExternalUsbMode":true|false} -
说明:查询当前USB通讯模式设置,返回true或false
-
默认值:true
-
命令:
{"ExternalUsbMode":true|false} -
返回:
{"OK":true|false} -
说明:true=支持USB串口,false=不支持USB串口
-
默认值:true
快速充电设置 (Quick Charge)
-
命令:
{"QuickChargeFlag":"?"} -
返回:
{"QuickChargeFlag":false} -
说明:查询当前充电模式设置,返回true或false
-
默认值:false
-
命令:
{"QuickChargeFlag":true|false} -
返回:
{"OK":true|false} -
说明:true=快速充电,false=普通充电
-
默认值:false
临时波特率设置
-
命令:
{"OP BaudRate":"?"} -
返回:
{"OP BaudRate":"9600,N,8,1"} -
说明:查询当前临时波特率设置,返回值为字符串
-
默认值:9600,N,8,1
-
命令:
{"OP BaudRate":"9600,N,8,1"} -
返回:
{"OK":"9600,N,8,1"} -
说明:设置当前临时波特率,设置值马上生效,设置参数格式参看下面
-
默认值:9600,N,8,1
-
命令:
{"BT BaudRate":"?"} -
返回:
{"BT BaudRate":"115200,N,8,1"} -
说明:查询当前蓝牙模块的波特率
-
默认值:115200,N,8,1
-
命令:
{"BT BaudRate":"57600,N,8,1"} -
返回:
{"OK":"57600,N,8,1"} -
说明:设置蓝牙模块的波特率,设置值马上生效,设置参数格式参看下面
-
默认值:115200,N,8,1
波特率预设表查询或设置
-
命令:
{"UartSelectedIndex":"?"} -
返回:
{"UartSelectedIndex":0} -
说明:查询当前使用的预设波特率索引
-
默认值:0
-
命令:
{"UartSelectedIndex":N} -
返回:
{"OK":N} -
说明:设置预设波特率索引,N范围0-9
-
默认值:0
UART最大索引值查询或设置
-
命令:
{"UartMaxIndex":"?"} -
返回:
{"UartMaxIndex":9} -
说明:查询UART可用的最大索引值,此值会影响菜单中显示的波特率选项数量。UART预设有10个波特率配置(索引0-9),这个参数控制在菜单界面中最多显示多少个波特率选项
-
默认值:9
-
命令:
{"UartMaxIndex":N} -
返回:
{"OK":N} -
说明:设置UART可用的最大索引值,N范围1-9。例如设置为4时,菜单中将只显示索引0-4共5个波特率选项(包含Return选项);设置为9时显示全部10个选项。系统会自动限制最大值为9
-
默认值:9
串口通讯参数设置
-
查询命令: 支持两种查询方式
-
数组查询(向后兼容):
{"UartForwardConfig":"?"}或{"UartForwardConfig":""} -
数组返回:
{"UartForwardConfig":["0,10,10,50,10,...","3,40,100,...",...,"1152,5,5,..."]}(返回所有10组配置) -
单项查询:
{"UartForwardConfig":"波特率值"}(波特率值: 0,3,12,24,48,96,192,384,576,1152) -
单项返回:
{"UartForwardConfig":"波特率,10,10,50,10,20,10,50,10"}(返回指定波特率的配置字符串) -
查询示例:
{"UartForwardConfig":"96"}返回{"UartForwardConfig":"96,5,5,50,10,20,10,50,10"} -
说明:核心通讯参数设置,如果已经设定指定客户配置,则此配置可能不会生效,例如埃及,墨西哥等
-
格式:“波特率,串口1接收超时时间阈值,串口1转发延时超时时间,串口1转发状态超时时间,串口1转发前需要接收的字符数,串口0接收超时时间阈值,串口0转发延时超时时间,串口0转发状态超时时间,串口0转发前需要接收的字符数”
-
波特率: 0=默认,3=300,12=1200,24=2400,48=4800,96=9600,192=19200,384=38400,576=57600,1152=115200
-
串口1接收超时时间阈值:Uart1RecvTimeoutThreshold, 默认值10ms, UART接收超时阈值(毫秒),不能为0
-
串口1转发延时超时时间:uart1_to_uart0_delay_timeout,默认值10ms, 延时转发超时时间(毫秒), 即使没有达到 uart1_to_uart0_delay_chars字符数,超过此时间也会触发转发, 不能为0
-
串口1转发状态超时时间:uart1_to_uart0_forward_timeout,转发模式持续超时时间(毫秒), 控制转发模式的最大持续时间,防止转发模式长时间占用系统资源, 超时后自动退出转发模式,恢复正常状态
-
串口1转发前需要接收的字符数:uart1_to_uart0_delay_chars,延时转发字符数阈值,当UART缓冲区累积字符数达到此值时,立即触发转发,实现批量转发,提高传输效率
-
串口0接收超时时间阈值:Uart0RecvTimeoutThreshold,
-
串口0转发延时超时时间:uart0_to_uart1_delay_timeout,
-
串口0转发状态超时时间:uart0_to_uart1_forward_timeout,
-
串口0转发前需要接收的字符数:uart0_to_uart1_delay_chars,
-
设置命令:
{"UartForwardConfig":"波特率,串口1接收超时时间阈值,串口1转发延时超时时间,串口1转发状态超时时间,串口1转发前需要接收的字符数,串口0接收超时时间阈值,串口0转发延时超时时间,串口0转发状态超时时间,串口0转发前需要接收的字符数"} -
设置返回:
{"OK":"波特率,10,10,50,10,20,10,50,10"} -
设置示例:
{"UartForwardConfig":"96,5,5,50,10,20,10,50,10"} -
默认值: 10组预设波特率配置的默认参数值(波特率索引0-9对应0,3,12,24,48,96,192,384,576,1152)
- 索引0 (默认):
0,10,10,50,10,20,10,50,10 - 索引1 (300bps):
3,40,100,100,30,40,40,50,20 - 索引2 (1200bps):
12,25,25,50,20,25,25,50,20 - 索引3 (2400bps,埃及模式):
24,20,10,20,350,20,10,20,10 - 索引4 (4800bps):
48,10,10,50,10,20,10,50,10 - 索引5 (9600bps):
96,5,5,50,10,20,10,50,10 - 索引6 (19200bps):
192,5,5,50,10,20,10,50,10 - 索引7 (38400bps):
384,5,5,50,10,20,10,50,10 - 索引8 (57600bps):
576,5,5,50,10,20,10,50,10 - 索引9 (115200bps,捷克气表):
1152,5,5,20,300,20,10,20,60
- 索引0 (默认):
-
命令:
{"OP Preset BaudRate":"?"} -
返回例子:
{
"OP Preset BaudRate": [
"9600,N,8,1", // 波特率9600,无校验,8数据位,1停止位
"19200,N,8,1", // 波特率19200,无校验,8数据位,1停止位
"300,E,7,1", // 波特率300,偶校验,7数据位,1停止位
"38400,N,8,1", // 波特率38400,无校验,8数据位,1停止位
"4800,N,8,1", // 波特率4800,无校验,8数据位,1停止位
"9600,E,7,1", // 波特率9600,偶校验,7数据位,1停止位
"2400,E,7,1", // 波特率2400,偶校验,7数据位,1停止位
"300,E,7,1", // 波特率300,偶校验,7数据位,1停止位
"9600,N,8,1", // 波特率9600,无校验,8数据位,1停止位
"19200,N,8,1" // 波特率19200,无校验,8数据位,1停止位
]
}
-
说明:查询预设的波特率配置列表
-
命令:
{"OP Preset BaudRate":["9600,N,8,1","115200,N,8,1",.....]}光电头波特率10组 -
返回例子:
{"OK|FAIL":""} -
说明:设置预设的波特率配置列表,OK=设置成功,FAIL=设置失败
波特率参数格式说明:
- 波特率:300-115200(300,600,1200,2400,4800,9600,19200,38400,57600,115200)
- 校验位:N=无校验,E=偶校验,O=奇校验
- 数据位:5-8位
- 停止位:0/1=1位停止位,2=2位停止位
串口1全双工模式查询和设置
-
命令:
{"Uart1FullDuplexMode":"?"} -
返回:
{"Uart1FullDuplexMode":true} -
说明:查询串口1是否处于全双工模式。true=全双工模式(正常收发模式),false=半双工模式(发送时清除接收缓冲区,避免接收到自己发送的数据)
-
默认值:true(全双工模式)
-
命令:
{"Uart1FullDuplexMode":true} -
返回:
{"OK":true} -
说明:设置串口1为全双工模式(正常收发模式)。这是默认模式,适用于大多数硬件连接场景
-
默认值:true(全双工模式)
-
命令:
{"Uart1FullDuplexMode":false} -
返回:
{"OK":false} -
说明:设置串口1为半双工模式。在半双工模式下,当使用串口1发送数据时,系统会在发送完成后延时一段时间(发送10位bit的时间,根据波特率自动计算)后清除接收缓冲区,以避免接收到自己发送的数据回环。此功能主要用于解决某些硬件连接中可能出现的发送数据回环问题
-
默认值:true(全双工模式)
注意:
- 全双工模式是默认模式,适用于大多数硬件连接场景,可以获得最佳的双向通信性能
- 半双工模式主要用于解决硬件连接中可能出现的发送数据回环问题。如果您的硬件连接正常,建议使用全双工模式
- 在半双工模式下,发送数据完成后会自动清除接收缓冲区,这可能会影响正常的双向通信。请根据实际硬件连接情况选择合适的模式
- 延时清除时间会根据当前波特率自动计算,延时时间为发送10位bit的时间(微秒级精度),确保在数据完全发送完毕后再清除接收缓冲区
串口转发模式查询和设置
-
命令:
{"UartForwardMode":"?"} -
返回:
{"UartForwardMode":0}或{"UartForwardMode":1} -
说明:查询当前串口转发模式。0=实时方案(默认),1=封包形式
-
默认值:0(实时方案)
-
命令:
{"UartForwardMode":0} -
返回:
{"OK":0} -
说明:设置串口转发为实时方案(默认)
-
命令:
{"UartForwardMode":1} -
返回:
{"OK":1} -
说明:设置串口转发为封包形式。采用封包式接收,任一串口有数据即进入接收循环同时轮询两个串口,达到封包大小或超时后退出接收并转发,支持命令处理
6. 文件操作
** 列出文件或文件夹操作**
- 命令:
{"FileDir":"/"} - 返回例子:
{"FileDir":["py","test.txt","test.py"]} - 说明:返回指定文件夹的所有文件名
** 打开文件或创建文件操作**
- 命令:
{"FileOpen":"/test.txt"} - 返回:
{"FileOpen":N} - 说明:打开或生成一个文件"/test.txt",返回N=0,表示打开或生成文件成功,其他值表示打开文件失败
** 文件写操作**
- 命令:
{"FileWrite":"112233445566778899AABBCCDDEEFF"}或{"FileWrite":"112233445566778899AABBCCDDEEFF,AB"} - 返回:
{"FileWrite":N} - 说明:向之前打开的文件写入数据,格式为十六进制字符串,每2个十六进制为一个字节。可选包含校验和(逗号后为校验和),返回写入的字节数(N>=0表示成功,N为负数则表示失败,其中N=-2表示校验和验证失败,N=-1表示文件未打开)
** 文件读操作**
- 命令:
{"FileRead":N} - 返回例子:
{"FileRead":"112233445566778899AABBCCDDEEFF,AB"} - 说明:从之前打开的文件中读入N个数据,返回格式"十六进制数据,校验和",校验和为所有读取字节的累加和(2位十六进制),返回数值0表示读完,负数表示失败
** 文件关闭操作**
- 命令:
{"FileClose":"/test.txt"} - 返回:
{"FileClose":N} - 说明:关闭之前打开的文件,返回N=0,表示关闭成功,其他值表示关闭失败
** 文件或文件夹删除操作**
- 命令:
{"FileRemove":"/test.txt"} - 返回:
{"FileRemove":N} - 说明:删除指定的文件或空文件夹,返回N=0,表示删除成功,其他值表示删除失败
** 文件或文件夹重命名操作**
- 命令:
{"FileRename":"/old.txt,/new.txt"} - 返回:
{"FileRename":N} - 说明:重命名文件或文件夹,参数为逗号分隔的旧路径和新路径,返回N=0表示重命名成功,其他值表示失败
** 文件信息查询操作**
- 命令:
{"FileStat":"/test.txt"} - 返回:
{"FileStat":"1,1024,test.txt"} - 说明:查询文件或文件夹信息,返回格式"type,size,name",type=1表示文件,type=2表示目录
** 文件定位操作**
- 命令:
{"FileSeek":"100,0"} - 返回:
{"FileSeek":N} - 说明:设置文件读写位置,参数格式"offset,whence",offset为偏移量0开始,whence=0(SET)/1(CUR)/2(END),返回新的文件位置,
** 文件当前位置查询**
- 命令:
{"FileTell":"?"} - 返回:
{"FileTell":N} - 说明:查询当前文件读写位置,返回当前位置偏移量(字节)
** 文件重置位置操作**
- 命令:
{"FileRewind":true} - 返回:
{"FileRewind":N} - 说明:将文件读写位置重置到文件开头,返回N=0表示成功
** 文件大小查询**
- 命令:
{"FileSize":"?"} - 返回:
{"FileSize":N} - 说明:查询当前打开文件的大小,返回文件总字节数
** 文件系统大小查询**
- 命令:
{"FsSize":"?"} - 返回:
{"FsSize":N} - 说明:查询文件系统总大小,返回分配的块总数
** 文件系统遍历操作**
- 命令:
{"FsTraverse":true} - 返回:
{"FsTraverse":[1,2,3,4,...]} - 说明:遍历文件系统中所有已使用的块,返回包含块地址的数组
** 文件系统剩余空间查询**
- 命令:
{"FsFreeSize":"?"} - 返回:
{"FsFreeSize":N} - 说明:查询文件系统剩余可用空间,返回字节数
** 文件系统剩余空间查询(KB)**
- 命令:
{"FsFreeSizeKB":"?"} - 返回:
{"FsFreeSizeKB":N} - 说明:查询文件系统剩余可用空间,返回KB数(1024字节=1KB)
- 注意:所有
File*/Dir*/Fs*相关JSON命令仅在内部文件系统挂载成功时可用(内部状态FsMountOk!=FALSE)。如果文件系统挂载失败,这些命令会返回负数错误码,同时ErrorCode的 Bit 16 会被置位,便于诊断外置存储或文件系统异常。
** 目录打开操作**
- 命令:
{"DirOpen":"/py"} - 返回:
{"DirOpen":0}或{"DirOpen":-1} - 说明:打开指定目录,查询时返回当前打开的目录路径,返回数值0表示成功,返回数值负数表示失败
** 目录关闭操作**
- 命令:
{"DirClose":true} - 返回:
{"DirClose":N} - 说明:关闭当前打开的目录,返回N=0表示成功,返回数值负数表示失败
** 目录读取操作**
- 命令:
{"DirRead":"?"} - 返回:
{"DirRead":"1,1024,test.txt"} - 说明:读取目录中的下一个条目,返回格式"type,size,name",type=1表示文件,type=2表示目录,返回数值0表示没有更多条目,返回数值负数表示失败
** 目录定位操作**
- 命令:
{"DirSeek":100} - 返回:
{"DirSeek":N} - 说明:设置目录读取位置,返回N=0表示成功,返回数值负数表示失败
** 目录当前位置查询**
- 命令:
{"DirTell":"?"} - 返回:
{"DirTell":N} - 说明:查询目录当前位置,返回当前位置偏移量,返回数值负数表示失败
** 目录重置位置操作**
- 命令:
{"DirRewind":true} - 返回:
{"DirRewind":N} - 说明:将目录读取位置重置到开头,返回N=0表示成功,返回数值负数表示失败
** 目录创建操作**
- 命令:
{"FileMkDir":"/py"}或{"FileMkDir":"?"}或{"FileMkDir":""} - 返回:
{"FileMkDir":N}或{"FileMkDir":""} - 说明:创建指定路径的目录。查询时(参数为"?“或空字符串)返回空字符串;创建时返回N=0表示创建成功,返回数值负数表示创建失败(如目录已存在返回-17,路径不存在返回-2等)。需要外置存储器存在且文件系统挂载成功才能创建目录
7. 与硬件相关系统信息查询和设置
** 硬件CPU唯一ID号查询**
- 命令:
{"McuUniqeID":"?"} - 返回:
{"McuUniqeID":N} - 说明:查询MCU的唯一ID号
** 硬件MCU型号查询**
- 命令:
{"CpuType":"?"} - 返回例子:
{"CpuType":583} - 说明:查询MCU的型号
硬件设备版本号查询和设置
-
命令:
{"HardwareVersion":"?"} -
返回例子:
{"HardwareVersion":"V3.08-585_20241208"} -
说明:查询硬件设备的版本号
-
命令:
{"HardwareVersion":"V3.08-583_20241208"} -
返回例子:
{"OK":"V3.08-583_20241208"} -
范围:20字符以内
-
说明:查询硬件设备的版本号
硬件设备序列号查询和设置
-
命令:
{"HardwareSerialNo":"?"} -
返回例子:
{"HardwareSerialNo":"1234567890"} -
说明:查询硬件设备的序列号
-
命令:
{"HardwareSerialNo":"1122334455"} -
返回例子:
{"OK":"1122334455"} -
范围:30字符以内
-
说明:设置硬件设备的序列号
固件版本号查询和设置
-
命令:
{"SoftwareVersion":"?"} -
返回例子:
{"SoftwareVersion":"V4.1-585_20241208"} -
说明:查询固件的版本号
-
命令:
{"SoftwareVersion":"V4.1-585_20241208"} -
返回例子:
{"OK":"V4.1-585_20241208"} -
范围:20字符以内
-
说明:设置固件的版本号
产品出厂内部型号查询和设置
-
命令:
{"Model":"?"} -
返回例子:
{"Model":"OP-BTS-583"} -
说明:查询产品内部型号
-
命令:
{"Model":"OP-BT-585"} -
返回例子:
{"OK":"OP-BT-585"} -
范围:20字符以内
-
说明:查询产品内部型号
用户定制的产品型号查询和设置
-
命令:
{"CustomizeModel":"?"} -
返回例子:
{"CustomizeModel":"OP-BTS-EDMI"} -
说明:查询产品客户定制的型号
-
命令:
{"CustomizeModel":"OP-BT-EDMI"} -
返回例子:
{"OK":"OP-BT-EDMI"} -
范围:20字符以内
-
说明:设置产品客户定制的型号
产品是否有LCD屏的查询和设置
-
命令:
{"LcdScreenFlag":"?"} -
返回:
{"LcdScreenFlag":true|false} -
说明:查询产品是否有LCD屏,true=有LCD屏,false=无LCD屏
-
默认值:false
-
命令:
{"LcdScreenFlag":true|false} -
返回:
{"OK":true|false} -
说明:设置产品是否有LCD屏,true=有LCD屏,false=无LCD屏
-
默认值:false
协议IEC自动波特率跳转的支持查询和设置
-
命令:
{"IECAutoFlag":"?"} -
返回:
{"IECAutoFlag":true|false} -
说明:查询产品是否支持IEC自动波特率跳转,true=支持,false=不支持
-
默认值:true
-
命令:
{"IECAutoFlag":true|false} -
返回:
{"OK":true|false} -
说明:设置产品是否支持IEC自动波特率跳转,true=支持,false=不支持
-
默认值:true
协议IEC HDLC的支持查询和设置
-
命令:
{"UserIecHdlcModeFlag":"?"} -
返回:
{"UserIecHdlcModeFlag":true|false} -
说明:查询产品是否支持IEC HDLC协议,true=支持,false=不支持
-
默认值:true
-
命令:
{"UserIecHdlcModeFlag":true|false} -
返回:
{"OK":true|false} -
说明:设置产品是否支持IEC HDLC协议,true=支持,false=不支持
-
默认值:true
协议IEC中间波特率是否支持查询和设置,主要是针对EDMI订制的产品
-
命令:
{"UserIecMidModeFlag":"?"} -
返回:
{"UserIecMidModeFlag":true|false} -
说明:查询产品是否支持IEC中间波特率设置,true=支持,false=不支持
-
默认值:true
-
命令:
{"UserIecMidModeFlag":true|false} -
返回:
{"OK":true|false} -
说明:查询产品是否支持IEC中间波特率设置,true=支持,false=不支持
-
默认值:true
固件的主从模式的查询和设置
-
命令:
{"HostFlag":"?"} -
返回:
{"HostFlag":true|false} -
说明:查询产品的方从方式,true=主机,false=从机(连接终端设备的产品)
-
默认值:false
-
命令:
{"HostFlag":true|false} -
返回:
{"OK":true|false} -
说明:设置产品的方从方式,true=主机,false=从机(连接终端设备的产品)
-
默认值:false
用户定制模式的查询和设置
-
命令:
{"CustomizedMode":"?"} -
返回:
{"CustomizedMode":N} -
默认值:0
-
说明:查询产品的用户模式, N=0,默认模式 N=1,埃及 N=2,EDMI N=3,itron N=4,sensus N=5,landgyr N=6,tespro N=7,EDMI开启模式(EDMI ON Mode)- 关闭IEC自动波特率和HDLC模式,适用于EDMI电表的直接连接模式 N=8,EDMI关闭模式(EDMI OFF Mode)- 开启IEC自动波特率和HDLC模式,适用于EDMI电表的自动协商模式 N=9,墨西哥
-
命令:
{"CustomizedMode":N} -
返回:
{"OK":N} -
说明:设置产品的用户模式,N参照上面说明
- 当设置为N=7(EDMI开启模式)时,系统会自动设置IECAutoifOn=false和UserIecHdlcModeFlag=false
- 当设置为N=8(EDMI关闭模式)时,系统会自动设置IECAutoifOn=true和UserIecHdlcModeFlag=true
- 注意:EDMI开启模式和关闭模式主要用于EDMI电表的两种不同连接方式,可通过菜单中的"IEC自动波特率"选项快速切换
-
默认值:0
** 开机LOGO的显示时间查询和设置**
-
命令:
{"LogoDisplayTime":"?"} -
返回:
{"LogoDisplayTime":N} -
说明:查询产品的开机LOGO的显示时间,单位毫秒
-
范围:0-5000
-
默认值:2000
-
命令:
{"LogoDisplayTime":N} -
返回:
{"OK":N} -
说明:设置产品的开机LOGO的显示时间,单位毫秒
-
默认值:2000
LCD语言的查询和设置
-
命令:
{"Language":"?"} -
返回:
{"Language":N} -
说明:查询产品的LCD语言,N=0,中文,N=1,英文
-
默认值:1
-
命令:
{"Language":N} -
返回:
{"OK":N} -
说明:设置产品的LCD语言,N=0,中文,N=1,英文
-
默认值:1
通讯协议的查询和设置
-
命令:
{"CommProtocol":"?"} -
返回:
{"CommProtocol":N} -
说明:查询产品的通讯协议,N查看下面列表 N=0:IEC 62056-21 N=1:ANSI C12.18 Normal N=2:ANSI C12.18 Type 2 N=3:ANSI C12.18 DTR Ctrl
-
默认值:0
-
命令:
{"CommProtocol":N} -
返回:
{"OK":N} -
说明:设置产品的通讯协议,N查看上面列表
-
默认值:0
脚本方式的查询和设置
- 命令:
{"PythonRunMode":N} - 返回:
{"OK":N} - 说明:设置进入脚本方式,N查看下面列表 N=0:不使用脚本 N=1:终端模式 N=2:文件模式 N=3:立即运行模式
运行Python文件的查询和设置
-
命令:
{"PythonFileRun":"?"}或{"PythonFileRun":""} -
返回:
{"PythonFileRun":"文件名"} -
说明:查询当前要运行的Python文件名
-
命令:
{"PythonFileRun":"文件名"} -
返回:
{"OK":"文件名"} -
说明:设置要运行的Python文件名,文件名最长30字符。设置后会将文件名复制到CurrentScriptFile变量中,同时将PythonScriptRun设置为true,系统会在下次循环中运行该Python文件,文件默认路径会加上”/py/"
安全解锁功能相关命令
安全解锁功能为 PikaScript 脚本执行提供可选的密码保护机制,防止设备丢失后被恶意使用。
安全PIN码的查询和设置
-
命令:
{"SecurityPinCode":"?"}或{"SecurityPinCode":""} -
返回:
{"SecurityPinCode":"********"} -
说明:查询当前安全PIN码(返回掩码,不显示实际密码)
-
命令:
{"SecurityPinCode":"10110010"} -
返回:
{"SecurityPinCode":"OK"}或{"SecurityPinCode":"FAIL"} -
说明:设置新的安全PIN码,必须是8位且仅包含字符'0’或'1’。设置成功返回OK,格式错误返回FAIL
-
默认值:“00000000”
远程解锁
- 命令:
{"SecurityUnlock":"10110010"} - 返回:
{"SecurityUnlock":"OK"}或{"SecurityUnlock":"FAIL"} - 说明:通过JSON命令远程解锁设备。密码正确则解锁成功,解锁状态保持到关机重启或超时
- 注意:解锁成功后会重置解锁超时计时器
解锁状态查询
- 命令:
{"SecurityStatus":"?"}或{"SecurityStatus":""} - 返回:
{"SecurityStatus":true}或{"SecurityStatus":false} - 说明:查询当前解锁状态,true=已解锁,false=未解锁
安全功能开关的查询和设置
-
命令:
{"SecurityEnable":"?"} -
返回:
{"SecurityEnable":true|false} -
说明:查询安全解锁功能是否启用,true=启用,false=禁用
-
命令:
{"SecurityEnable":true|false} -
返回:
{"OK":true|false} -
说明:设置安全解锁功能开关。禁用后调用CheckUnlock()直接返回成功,跳过验证
-
默认值:false
解锁超时时间的查询和设置
-
命令:
{"SecurityUnlockTimeout":"?"} -
返回:
{"SecurityUnlockTimeout":N} -
说明:查询解锁状态的超时时间,单位秒。0表示永不过期
-
命令:
{"SecurityUnlockTimeout":N} -
返回:
{"OK":N} -
说明:设置解锁状态的超时时间,单位秒。解锁后超过此时间自动重新锁定,0表示永不过期
-
默认值:0(永不过期)
充电允许的温度下限值的查询和设置
-
命令:
{"SysTempLow":"?"} -
返回:
{"SysTempLow":N} -
说明:查询产品的充电允许的温度下限值,单位摄氏度
-
默认值:-10
-
命令:
{"SysTempLow":N} -
返回:
{"OK":N} -
说明:设置产品的充电允许的温度下限值,单位摄氏度,范围-10-20摄氏度
-
默认值:-10
充电允许的温度上限值的查询和设置
-
命令:
{"SysTempHigh":"?"} -
返回:
{"SysTempHigh":N} -
说明:查询产品的充电允许的温度上限值,单位摄氏度
-
默认值:50
-
命令:
{"SysTempHigh":N} -
返回:
{"OK":N} -
说明:设置产品的充电允许的温度上限值,单位摄氏度,范围20-80摄氏度
-
默认值:50
自动关机的电压下限值的查询和设置
-
命令:
{"BatVoltLow":"?"} -
返回:
{"BatVoltLow":N} -
说明:查询产品的自动关机的电压下限值,单位毫伏
-
默认值:3400
-
命令:
{"BatVoltLow":N} -
返回:
{"OK":N} -
说明:设置产品的自动关机的电压下限值,单位毫伏,范围3000-3700毫伏
-
默认值:3400
是否启用蜂鸣器的查询和设置
-
命令:
{"BeepFlag":"?"} -
返回:
{"BeepFlag":true|false} -
说明:查询蜂鸣器启用方式,true=允许发声,false=禁止发声
-
默认值:true
-
命令:
{"BeepFlag":true|false} -
返回:
{"OK":true|false} -
说明:设置蜂鸣器启用方式,true=允许发声,false=禁止发声
-
默认值:true
蓝牙连接时重置系统休眠计数查询和设置
-
命令:
{"BtStatusResetSleep":"?"} -
返回:
{"BtStatusResetSleep":true|false} -
说明:查询当蓝牙连接时是否重置系统休眠计数器,true=重置,false=不重置。休眠计数器控制设备何时进入休眠状态,连接蓝牙时重置计数器可以延长设备待机时间
-
默认值:true
-
命令:
{"BtStatusResetSleep":true|false} -
返回:
{"OK":true|false} -
说明:设置当蓝牙连接时是否重置系统休眠计数器,true=重置,false=不重置
- 当设置为true时:蓝牙连接成功时会重置系统休眠计数器,延长设备待机时间,避免在有蓝牙连接的情况下意外进入休眠
- 当设置为false时:即使蓝牙连接成功也不会重置系统休眠计数器,设备仍按原有设置时间进入休眠状态
-
默认值:true
注意: 此参数仅影响蓝牙连接时的休眠计数重置,不影响数据通信状态(gDataCommFlag)的休眠重置行为
键盘中键功能查询和设置
-
命令:
{"KeyMidFunction":"?"} -
返回:
{"KeyMidFunction":0} -
说明:查询键盘中键的功能设置。中键通常位于设备上的中间位置,用于执行快捷操作
-
默认值:0
-
命令:
{"KeyMidFunction":N} -
返回:
{"OK":N} -
说明:设置键盘中键的功能,N范围0-9
- N=0:状态轮显功能,单击中键循环显示系统状态信息(电池电压、温度、连接状态等)
- N=1:波特率切换功能,单击中键循环切换预设波特率索引(从当前索引+1开始,超过UartMaxIndex时回到0),并立即应用新的波特率设置
- N=2:IEC自动波特率切换功能,单击中键切换IEC自动波特率功能的开关状态。
- N=3:一键执行脚本功能,单击中键执行最近一次在菜单中选择的脚本文件
- N=4-9:保留功能,供后续扩展使用(可用于自定义快捷操作)
-
默认值:0
注意:
- 当设置KeyMidFunction=1时,中键会成为波特率切换快捷键,替代原有的状态显示功能。切换时会自动应用新的UART配置,无需重启设备
- 当设置KeyMidFunction=2时,中键可用于快速切换IEC自动波特率功能。运行时有效.重启后恢复开机状态
- 当设置KeyMidFunction=3时,中键可用于一键执行脚本功能。需要先在菜单中选择要执行的脚本文件,然后按中键即可执行。执行前会检查外置存储器和脚本文件有效性
LED指示灯是否允许亮灯的查询和设置
-
命令:
{"LedOnFlag":"?"} -
返回:
{"LedOnFlag":[true,true,true,true,true,true,true,true,true,true]} -
说明:查询产品的LED指示灯是否允许亮灯,返回10个值,分别对应10个LED指示灯,true=允许亮灯,false=不允许亮灯
-
默认值:全部允许亮灯
-
命令:
{"LedOnFlag":[true,true,true,true,true,true,true,true,true,true]} -
返回:
{"OK":1} -
说明:设置产品的LED指示灯是否允许亮灯,返回10个值,分别对应10个LED指示灯,true=允许亮灯,false=不允许亮灯
-
默认值:全部允许亮灯
WS2812 全彩状态灯模式的查询和设置
-
命令:
{"UseTraditionalLed":"?"} -
返回:
{"UseTraditionalLed":true|false} -
说明:查询当前指示灯工作模式。true=使用传统 6 个独立 RGB 指示灯;false=使用 2 颗级联 WS2812 全彩 LED 替代原来的 6 个独立 RGB 指示灯(LED1/LED2 的红绿蓝)
-
默认值:true
-
命令:
{"UseTraditionalLed":true|false} -
返回:
{"OK":true|false} -
说明:true=使用传统 6 个独立 LED;false=启用 WS2812 模式(PA11 输出单线时序驱动 2 颗 WS2812,全自动映射原有 LED 的红/绿/蓝状态)
-
默认值:true
Flash空间的查询
- 命令:
{"FlashSize":"?"} - 返回示例:
- 硬件SPI模式:
{"FlashSize":"WB 16MB"}或{"FlashSize":"GD 32MB"}(格式:厂商 容量) - 软SPI模式:
{"FlashSize":"*WB 16MB"}或{"FlashSize":"*GD 32MB"}(格式:*厂商 容量,*表示使用软SPI) - 未知厂商或容量:
{"FlashSize":"EF17"}或{"FlashSize":"*EF17"}(格式:芯片ID或*芯片ID)
- 硬件SPI模式:
- 说明:查询产品的Flash空间大小,返回字符串格式。当使用软SPI模式时,容量信息前会自动添加"*“标记,便于识别当前使用的SPI通信方式。支持的厂商包括:WB(华邦)、GD(兆易创新)、PY(普冉)、MX(旺宏)、XM(武汉新芯)、BY(博雅)、ZD(澜智)等
Flash格式化命令
- 命令:
{"FlashFormat":true} - 返回:
{"FlashFormat":N} - 说明:
- 当N=0时表示格式化并重新挂载成功;当N<0时表示LittleFS返回的错误码(例如挂载失败或底层读写失败)。
- 命令执行流程为:先关闭当前打开的文件和目录句柄,然后对外置Flash执行
lfs_format(&lfs_w25qxx, &lfscfg);格式化成功后调用lfs_mount()重新挂载文件系统,并在挂载成功时更新FsMountOk标志、清除ErrorCode中的Bit 16(ERROR_BIT_FS_MOUNT_FAIL),同步pika_lfs_handle/mylfs句柄、自动创建/py目录并重新计算存储空间百分比。 - 该操作会清空当前文件系统上的所有文件和目录,请务必在执行前备份需要保留的数据,仅在确需重新初始化文件系统或修复严重损坏时使用。
电池电压的查询
- 命令:
{"BatteryVoltage":"?"} - 返回:
{"BatteryVoltage":N} - 说明:查询产品的电池电压,单位毫伏
系统电压的查询
- 命令:
{"SystemVoltage":"?"} - 返回:
{"SystemVoltage":N} - 说明:查询产品的系统电压,单位毫伏
系统温度的查询
- 命令:
{"SystemTemp":"?"} - 返回:
{"SystemTemp":N} - 说明:查询产品的系统温度,单位摄氏度*10,例如246表示24.6摄氏度
配置错误码查询
- 命令:
{"ErrorCode":"?"} - 返回:
{"ErrorCode":"00000000"} - 说明:查询当前配置验证错误码,返回32位16进制字符串。系统在配置加载时会自动验证关键配置字段的有效性,如果字段不在有效范围内,系统会自动修复为默认值,并设置ErrorCode的对应位
- 默认值:“00000000”(表示无错误)
ErrorCode位定义表格
ErrorCode是一个32位错误码,每个位对应一个配置字段组的验证结果:
| Bit位置 | 对应字段组 | 说明 |
|---|---|---|
| Bit 0 | TPUart整体 | TPUart的Baudrate、DataBit、Parity、StopBit任一字段不在范围内 |
| Bit 1 | BTUart整体 | BTUart的Baudrate、DataBit、Parity、StopBit任一字段不在范围内 |
| Bit 2 | Uart[10]数组 | Uart数组中任一元素的任一字段不在范围内 |
| Bit 3 | QuickChargeIfOn | QuickChargeIfOn不在0-1范围内 |
| Bit 4 | ExternalUsbMode | ExternalUsbMode不在0-1范围内 |
| Bit 5 | SysTempHigh | SysTempHigh不在30-70范围内 |
| Bit 6 | SysTempLow | SysTempLow不在-20到25范围内 |
| Bit 7 | UartMaxIndex | UartMaxIndex不在1-9范围内 |
| Bit 8 | UartSelectedIndex | UartSelectedIndex > 9 |
| Bit 9 | CustomizedMode | CustomizedMode > 9 |
| Bit 10 | Language | Language > 3 |
| Bit 11 | BatVoltLow | BatVoltLow不在3300-3700范围内 |
| Bit 12 | SystemSleepTime | SystemSleepTime > 30000 |
| Bit 13 | SystemTurnOffTime | SystemTurnOffTime不在120-7200范围内 |
| Bit 14 | LogoDisplayTime | LogoDisplayTime > 10000 |
| Bit 15 | UartForwardConfig数组 | UartForwardConfig数组中任一元素任一字段不在1-1000范围内 |
| Bit 16 | 文件系统挂载失败 | LittleFS文件系统挂载失败(内部 FsMountOk=false),所有文件/目录相关JSON命令被禁用,仅返回错误码 |
| Bit 30 | cfg中有错误 | cfg配置中有任一字段超出范围 |
| Bit 31 | RunCfg中有错误 | RunCfg配置中有任一字段超出范围 |
ErrorCode使用示例
查询当前错误码:
{"ErrorCode":"?"}
返回:{"ErrorCode":"00008005"}
解析16进制错误码 “00008005”:
- 转换为二进制:00000000000000001000000000000101
- Bit 0 = 1:TPUart配置有误,已自动修复为默认值
- Bit 2 = 1:Uart数组中有配置项超出范围,已自动修复为默认值
- Bit 15 = 1:UartForwardConfig数组中有配置项超出范围,已自动修复为默认值
注意事项
- ErrorCode仅用于指示哪些配置字段被自动修复,不影响设备正常工作
- 系统每次重新加载配置时都会重新验证并更新ErrorCode
- 可以通过查询ErrorCode来诊断配置问题,但通常情况下无需用户干预
显示当前用户配置
- 命令:
{"CurrentUserSysConfig":"?"} - 返回例子:
{"Quick Charge":false,"System Turn Off Time":2000,"System Sleep Time":1200,"Screen Sleep Time":600,"Screen Black Time":120,"Screen Auto Turn Off":true,"Flashlight Delay Time":10,"Screen Brightness":100,"OP Low Power Mode":true,"External Usb Mode":true}
未使用的命令
- 命令:
{"BatTempAlarm":"?"} - 命令:
{"TranPower":"?"} - 命令:
{"RecvSens":"?"}
TP系列命令协议
返回电池电压
- 命令:
GetBatteryVolt\r\n - 返回: V=3912\r\n
返回TP的版本号
- 命令:
version?\r\n - 返回(非EDMI): OK,VER=01.00
- 返回(EDMI): edmi-3.06\r\n
返回OP的硬件和固件版本号
- 命令:
BTVERSION\r\n - 返回例子: V3.08-585_20241208,V4.1-585_20241208
开启IEC自动波特率功能
- 命令:
OPIECAUTOON\r\n - 返回: OK\r\n
- 说明:开启IEC自动波特率功能,运行时有效,重启后恢复开机状态
关闭IEC自动波特率功能
- 命令:
OPIECAUTOOFF\r\n - 返回: OK\r\n
- 说明:关闭IEC自动波特率功能,运行时有效,重启后恢复开机状态
设置波特率参数
-
命令:
<BaudTra><i|n|p|q|m|r>,<baudrate=300-115200>,<parity=N|E|O>,<datalen=5|6|7|8>,<stopbit=0|1|2>[,]\r\nbaudrate=300-15200 parity=N|E|O 检验位 无校验|奇检验|偶检验 datalen=5|6|7|8 数据长度 5-8位 stopbit=0|1|2 停止位 1位|1位|2位 -
返回(EDMI): OK
-
返回(非EDMI): OK,VER=01.00
-
命令:
<BaudInit>,<baudrate=300-115200>,<parity=N|E|O>,<datalen=5|6|7|8>,<stopbit=0|1|2>[,]\r\n -
返回(非EDMI): OK,VER=01.00
-
命令:
<BaudOp>,<baudrate=300-115200>,<parity=N|E|O>,<datalen=5|6|7|8>,<stopbit=0|1|2>[,]\r\n -
返回: OK\r\n
-
命令:
<BaudAlt>,<baudrate=300-115200>,<parity=N|E|O>,<datalen=5|6|7|8>,<stopbit=0|1|2>[,]\r\n -
返回: OK\r\n
-
说明: 设置光电头串口参数,与BaudOp功能相同
-
命令:
<BaudStart>,<baudrate=300-115200>,<parity=N|E|O>,<datalen=5|6|7|8>,<stopbit=0|1|2>[,]\r\n -
返回: OK\r\n
-
说明: 打开IEC自动波特率功能,设置初始IEC波特率,与BaudTrap功能相同但返回格式统一
-
命令:
<BaudMid>,<baudrate=300-115200>,<parity=N|E|O>,<datalen=5|6|7|8>,<stopbit=0|1|2>[,]\r\n -
返回: OK\r\n
-
说明: 设置IEC中间波特率,主要用于EDMI模式,与BaudTram功能相同但返回格式统一
-
命令:
\x55\xDE\xF2\xD6\xC1\x91\x5C\x9E\xB8\x31\xBD\x68\x11\x9F\x0D\x0A -
返回:OK\r\n
-
说明:AT ON
-
命令:
\x55\xBE\xD6\xC9\x9C\x21\x4C\x9E\xB6\x32\xBD\xC1\x00\x9F\x0D\x0A -
返回:OK\r\n
-
说明:AT OFF