OP-BT/BTS 命令参考手册


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":""}
  • 说明:将系统重启

开机按键配置恢复功能

  • 功能说明:开机时通过按键组合快速恢复配置,无需进入命令模式
  • 使用方法:
    1. 开机时按住中键(中间按钮)
    2. LED1和LED2的红绿灯会点亮,提示进入配置恢复模式
    3. 等待5秒后,根据需求按下对应的按键组合:
      • OK键+中键:恢复用户默认值(从出厂配置加载并保存为用户配置)
      • 选择键(左键)+中键:恢复出厂默认值(设置并保存出厂配置和用户配置)
    4. 操作成功后,所有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
  • 命令:{"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)
  • 说明:查询产品的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\n baudrate=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