你可以从各种设备(服务器、电脑等)向 HackDock 发送指令,以控制 HackDock 的 LED 亮灭、蜂鸣器发声等。
HackDock 使用串口进行配置。
打开任意串口调试工具,例如 串口调试助手,选择正确的端口,配置波特率为 115200,连接 HackDock。
请使用字符串模式与 HackDock 通讯。
配置指令的每一条都以 AT
开头,英文分号 ;
结尾。指令内部不要出现空格、换行,不能出现非标准 ASCII 码以外的字符。
配置指令列表,下表中类似 <ssid>
的模块,请替换为实际值,不要加尖括号:
指令格式 | 返回值示意 | 解释 |
---|---|---|
AT; | OK | ping 测试 |
AT+SETSSID=<ssid>; | SSID: xxxx | 配置 WiFi SSID |
AT+SETPASS=<pass>; | Password: xxxx | 配置 WiFi 密码 |
AT+SETIP=<ipv4>; | IP: 192.168.1.2 | 配置设备 IP |
AT+SETNETMASK=<ipv4>; | Net mask: 255.255.255.0 | 配置设备子网掩码 |
AT+SETGATEWAY=<ipv4>; | Gateway: 192.168.1.1 | 配置设备网关 IP |
AT+SAVECONFIG; | Saved | 保存配置 |
AT+CLEARCONFIG; | Config cleared | 清除所有配置 |
错误指令 | Bad Command | |
未实现的功能 | Not implement | |
指令太长 | Command too long, max 100 bytes |
注意:
AT+SETSSID=<ssid>;
和 AT+SETPASS=<pass>;
这两个命令是必须的;AT+SAVECONFIG;
以保存参数。配置参数后,请断电并重新上电,然后设备将连接 WiFi。
上电后,LED 0 会以 2Hz 闪烁并尝试连接 WiFi。若未配置参数或无法连接 WiFi,LED 0 会以 8Hz 闪烁。若你已经配置了 WiFi 参数,但 LED 0 仍长时间处于 2Hz 连接状态,请检查 WiFi 环境。
若连接成功,LED 0 会熄灭。
设备连接 WiFi 后,可进行 UDP 通讯。设备 IP 请见上一节介绍,UDP 端口为 6666。
如果仅调试,可以使用 sokit 工具 与 HackDock 进行 UDP 通讯。
UDP 报文的格式如下,整数采用小端模式传输:
请求报文格式为 [packageId][cmd][index][value]
字段 | 类型 | 释义 |
---|---|---|
packageId | uint32_t | 报文序号,由发送方指定,设备会返回相同的序号 |
cmd | uint8_t | 详见下方“控制字” |
index | uint16_t | 详见下方“参数请求列表” |
value | uint32_t | 详见下方“参数请求列表” |
响应报文格式为 [packageId][code][value]
字段 | 类型 | 释义 |
---|---|---|
packageId | uint32_t | 报文序号,返回请求的序号 |
code | uint8_t | 详见下方“响应码” |
value | uint32_t | 详见下方“参数响应列表” |
控制字 | 含义 |
---|---|
0x00 | 读取 |
0x01 | 写入 |
响应码 | 含义 |
---|---|
0x00 | OK |
0x01 | 请求格式不正确 |
0x02 | 不允许的操作 |
0x03 | 值不允许 |
0x04 | 内部错误 |
0x05 | 其他错误 |
参数 | 含义 | 支持的控制字 | value 的取值范围 |
---|---|---|---|
0x0000 | ping | 0x00 | 任意 |
0x0001 | 读取设备类型 | 0x00 | 任意 |
0x1000 | 设定 LED 0 的状态 | 0x01 | 0: 常亮;1:8Hz 闪烁;2:2Hz 闪烁;3:0.5Hz 闪烁;4:常灭 |
0x1001 | 设定 LED 1 的状态 | 0x01 | 0: 常亮;1:8Hz 闪烁;2:2Hz 闪烁;3:0.5Hz 闪烁;4:常灭 |
0x1010 | 设定蜂鸣器状态 | 0x01 | 0:常鸣;1:滴滴响;2:静音 |
0x1020 | 设定自定义引脚 0 的状态 | 0x01 | 0:输出低电平;1:输出高电平 |
0x1021 | 设定自定义引脚 1 的状态 | 0x01 | 0:输出低电平;1:输出高电平 |
0x2000 | 读取按键距离上次按下的毫秒数 | 0x00 | 任意 |
参数 | 含义 | value 的值 |
---|---|---|
0x0000 | pong | 0x19260817 |
0x0001 | 返回设备类型 | 27 |
0x1000 | 设定成功 | 0 |
0x1001 | 设定成功 | 0 |
0x1010 | 设定成功 | 0 |
0x1020 | 设定成功 | 0 |
0x1021 | 设定成功 | 0 |
0x2000 | 返回按键距离上次按下的毫秒数 | 距离上次按下的毫秒数 |
例如,我想让 LED 1 以 2Hz 闪烁,可发送下述 UDP 报文:
[0x01 0x00 0x00 0x00 0x01 0x01 0x10 0x02 0x00 0x00 0x00]
在任何情况下,短按功能按键,可以将蜂鸣器静音。