英文名称: FIT MONSTER Fitness Device BLE Protocol for Treadmill
| 项目 / Item | 内容 / Content |
|---|---|
| 当前版本 / Current Version | V1.0 |
| 修订日期 / Revision Date | 2024.12.01 |
| 修订人 / Editor | Sam |
| 版本号 / Version | 修订日期 / Revision Date | 修订人 / Editor | 修订内容 / Revision Content |
|---|---|---|---|
| V1.0 | 2024.12.01 | Sam | 新建 / New File |
| 类型 | UUID | 备注 |
|---|---|---|
| Service 服务 | FFF0 | 广播时支持,连接后可获取 |
| Characteristic 接收 | FFF1 | 支持Notify、Indicate |
| Characteristic 发送 | FFF2 | 支持Write、WriteWithoutResponse |
| 0x02 | CMD | SCMD | DATA | FCS | 0x03 |
|---|---|---|---|---|---|
| 起始码 | 指令 | 子指令 | 数据 | 校验码 | 终止码 |
| 字段 | 长度 | 取值 | 描述 |
|---|---|---|---|
| 起始码 | 1Byte | 0x02 | 表征通讯帧开头,固定的1字节数据,为十六进制 |
| 指令 | 1Byte | 0x50(示例) | 指令标识 |
| 子指令 | 1Byte | 0x00(示例) | 子指令标识 |
| 数据 | 不定 | 不定 | 写入或读取的数据,长度依指令不同而不同。数据采用【小端】对齐方式,即低字节在前,高字节在后。 例:数据0x1234,数据码为0x34 0x12;数据0x12345678,数据码为0x78 0x56 0x34 0x12 |
| 校验码 | 1Byte | 不定 | 帧校验,所有指令码(CMD、SCMD)与数据码(DATA)字节按位异或后的值 |
| 终止码 | 1Byte | 0x03 | 表征通讯帧结束,固定的1字节数据,为十六进制 |
| 表示符 | 类型 | 长度 |
|---|---|---|
| B | 无符号字节 | 1Byte |
| W | 无符号整型 | 2Byte |
| L | 无符号长整型 | 4Byte |
| N | 无符号多字节 | nByte |
| START | CMD | SCMD | DATA | FCS | END | |
|---|---|---|---|---|---|---|
| 0x02 | 0x7F | 0x00 | 0x01 | 0x02 | 0x7C | 0x03 |
| START | CMD | FCS | END |
|---|---|---|---|
| 0x02 | 0x7F | 0x7F | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x50 | 0x00 | 0x50 | 0x03 |
| START | CMD | SCMD | DATA | FCS | END | |
|---|---|---|---|---|---|---|
| 0x02 | 0x50 | 0x00 | 厂商(W) | 机型(W) | xx | 0x03 |
| 字段 | 取值/说明 |
|---|---|
| 起始码 | 0x02 |
| 指令 | 0x50 |
| 子指令 | 0x00 |
| 厂商码 | 16位的无符号数,厂商代码由蓝牙模块供应商分配后固定 |
| 机型码 | 16位的无符号数,需由制造商向蓝牙模块供应商官方申请 |
| FCS | 帧校验,所有指令码(CMD、SCMD)与数据码(DATA)字节按位异或后的值 |
| 结束码 | 0x03 |
厂商码:0x1234(其中高4位为设备类型,示例1为椭圆机)
机型码:0x5678
蓝牙发送:02 50 00 50 03
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x50 | 0x00 | 0x50 | 0x03 |
| 字节 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
|---|---|---|---|---|---|---|---|---|---|
| 类型 | START | CMD | SCMD | DATA | FCS | END | |||
| 值 | 0x02 | 0x50 | 0x00 | 34 | 12 | 78 | 56 | xx | 0x03 |
| 设备类型 | 十进制 | 十六进制 | 字节 |
|---|---|---|---|
| 跑步机 | 0 | 0x0 | 4位 |
| 椭圆机 | 1 | 0x1 | 4位 |
| 健身车 | 2 | 0x2 | 4位 |
| 划船机 | 3 | 0x3 | 4位 |
| START | CMD | SCMD | FCS | END | |
|---|---|---|---|---|---|
| 0x02 | 0x50 | 0x02 | 0x52 | 0x03 |
| START | CMD | SCMD | DATA | FCS | END | ||
|---|---|---|---|---|---|---|---|
| 0x02 | 0x50 | 0x02 | 最高速度(B) | 最低速度(B) | xx | 0x03 |
| 参数 | 单位说明 |
|---|---|
| 最高速度 | 单位:0.1km/h 或0.1mi/h,100代表10.0km/h 或10.0mi/h |
| 最低速度 | 单位:0.1km/h 或0.1mi/h,100代表10.0km/h 或10.0mi/h |
| START | CMD | SCMD | DATA | FCS | END | |
|---|---|---|---|---|---|---|
| 0x02 | 0x50 | 0x02 | 最高速度(W) | 最低速度(W) | xx | 0x03 |
| CMD | SCMD | END |
|---|---|---|
| 0x50 | 0x03 | 0x03 |
| 位 | 说明 |
|---|---|
| 1-0 | 0:不支持暂停;1:支持暂停 |
| 2-1 | 1:支持心率预警 |
| 7-2 | 预留 |
| 9 | 预留 |
| START | CMD | FCS | END |
|---|---|---|---|
| 0x02 | 0x51 | 0x51 | 0x03 |
| START | CMD | DATA | FCS | END | |
|---|---|---|---|---|---|
| 0x02 | 0x51 | 状态(B) | 数据(N) | xx | 0x03 |
| 状态(B) | 数据(N) |
|---|---|
| (0x00) 待机 | NA |
| (0x02) 倒计时启动 | 启动倒计时-秒(B) |
| (0x01) 停机、(0x03) 运行中、(0x04) 减速停止、(0x0A) 暂停 | 当前速度(B)、当前坡度(B)、当前时间(W)、当前距离(W)、当前热量(W)、当前步数(W)、当前心率(B)、预留(B) |
| (0x05) 故障 | 故障码(B) |
| (0x06) 禁用 | 禁用码(B):1-安全锁脱落;2-设备睡眠 |
| 数据 | 单位 | 数据 | 单位 |
|---|---|---|---|
| 速度 | 0.1km/h 或0.1mi/h | 热量 | 0.1 千卡 |
| 坡度 | 1 档 | 步数 | 步 |
| 时间 | 秒 | 心率 | 1 次 |
| 距离 | 0.001km 或0.001mile | - | - |
| START | CMD | DATA | FCS | END | |
|---|---|---|---|---|---|
| 0x02 | 0x51 | 状态(B) | 数据(N) | xx | 0x03 |
| 状态(B) | 数据(N) |
|---|---|
| (0x00) 待机 | NA |
| (0x02) 倒计时启动 | 启动倒计时-秒(B) |
| (0x01) 停机、(0x03) 运行中、(0x04) 减速停止、(0x0A) 暂停 | 当前速度(W)、当前坡度(B)、当前时间(W)、当前距离(W)、当前热量(W)、当前步数(W)、当前心率(B)、预留(B) |
| (0x05) 故障 | 故障码(B) |
| (0x06) 禁用 | 禁用码(B):1-安全锁脱落;2-设备睡眠 |
| START | CMD | SCMD | DATA | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x53 | 0x01 | 预留 | xx | 0x03 |
| START | CMD | SCMD | DATA | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x53 | 0x01 | 倒计时(B) | xx | 0x03 |
| START | CMD | SCMD | DATA | FCS | END | |
|---|---|---|---|---|---|---|
| 0x02 | 0x53 | 0x02 | 目标速度(B) | 目标坡度(B) | xx | 0x03 |
| START | CMD | SCMD | DATA | FCS | END | |
|---|---|---|---|---|---|---|
| 0x02 | 0x53 | 0x02 | 当前实际速度(B) | 当前实际坡度(B) | xx | 0x03 |
| START | CMD | SCMD | DATA | FCS | END | |
|---|---|---|---|---|---|---|
| 0x02 | 0x53 | 0x02 | 目标速度(W) | 目标坡度(B) | xx | 0x03 |
| START | CMD | SCMD | DATA | FCS | END | |
|---|---|---|---|---|---|---|
| 0x02 | 0x53 | 0x02 | 目标速度(W) | 目标坡度(B) | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x53 | 0x03 | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x53 | 0x03 | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x53 | 0x0A | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x53 | 0x0A | xx | 0x03 |
| START | CMD | SCMD | DATA | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x53 | 0x9f | 标志位(W)、数据(N) | xx | 0x03 |
| 参数 | 格式 | 大小 | 取值 | 解释 |
|---|---|---|---|---|
| Flags | 16Bits | 2 Octets | Bit0 | 参数包含解锁码 |
| Bit1 | 参数包含心率 | |||
| Bit2 | 参数包含总卡路里 | |||
| Bit3 | 参数包含动态卡路里 | |||
| Bit4 | 参数包含计步 | |||
| Bit5-15 | 保留 | |||
| UnlockCode | Octets | 6 | 0-F的6个数字 | 厂家自定义,6字节解锁码 |
| Heart Rate | Unit8 | 1 | 心率值 | 心率值 |
| Total Energy | Unit16 | 2 | 总卡路里 | 总卡路里 |
| Dynamic Energy | Unit16 | 2 | 动态卡路里 | 动态卡路里 |
| Step Count | Unit16 | 2 | 实时步数 | 实时步数 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x62 | 0x01 | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x62 | 0x02 | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x62 | 0x03 | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x62 | 0x04 | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x62 | 0x0B | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x62 | 0x0C | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xC3 | 0x87 | 0x03 |
| START | CMD | SCMD | DATA | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xC3 | 连接状态(B) | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xC5 | 0x81 | 0x03 |
| START | CMD | SCMD | DATA(N Bytes)(大端) | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xC5 | 示例:"FS-xxxxxx" XXXX | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xC6 | 0x82 | 0x03 |
| START | CMD | SCMD | DATA(6 Bytes)(大端) | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xC6 | XX:XX:XX:XX:XX:XX | xx | 0x03 |
| START | CMD | SCMD | DATA(N Bytes)(大端) | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xC7 | xx | xx | 0x03 |
| START | CMD | SCMD | DATA | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xC7 | 确认码(B) | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xD1 | 0x80 | 0x03 |
| START | CMD | SCMD | DATA(N Bytes)(大端) | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xD1 | 示例:"FS-xxxxxx"(XXXX) | xx | 0x03 |
| START | CMD | SCMD | DATA(N Bytes)(大端) | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xC8 | xx | xx | 0x03 |
| START | CMD | SCMD | - | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xC8 | - | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xC9 | xx | 0x03 |
| START | CMD | SCMD | DATA(大端) | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xC9 | 示例:FS-BT-C1(xxx) | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xCA | xx | 0x03 |
| START | CMD | SCMD | DATA(大端) | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xCA | 示例:FS240528001(xxx) | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xCB | 0x8F | 0x03 |
| START | CMD | SCMD | DATA(音频连接状态(B)) | DATA(播放状态(B)) | 预留 | 预留 | FCS | END |
|---|---|---|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xCB | 0=未连接,1=已连接 | 0=未播放,1=正在播放 | 0x00 | 0x00 | xx | 0x03 |
| START | CMD | SCMD | DATA | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x46 | 0x03 | 心率阈值(B) | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x46 | 0x03 | xx | 0x03 |
| START | CMD(0x44) | SCMD(0xD2) | DATA1(1 Byte 配置数据) | DATA2(5 Bytes 配置数据) | DATA3(1 Byte 配置数据) | DATA4(1 Byte 配置数据) | FCS(0x95) | END |
|---|---|---|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xD2 | 配置数据1 | 配置数据2 | 配置数据3 | 配置数据4 | 0x95 | 0x03 |
| 位 | 说明 | 位 | 说明 |
|---|---|---|---|
| 0 | 1:无线心率打开;0:无线心率关闭 | 4 | RFU(保留) |
| 1 | RFU(保留) | 5 | RFU(保留) |
| 2 | RFU(保留) | 6 | RFU(保留) |
| 3 | RFU(保留) | 7 | RFU(保留) |
| Byte | 说明 |
|---|---|
| Byte 0 | 1:音频配对需要密码;0:音频配对不需要密码 |
| Byte 1~4 | 配对密码:例如 1234(只能是 0~9 的数字) |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xD2 | xx | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xC2 | 0x86 | 0x03 |
| START | CMD | SCMD | DATA | FCS | END |
|---|---|---|---|---|---|
| 0x02 | 0x44 | 0xCC | 0X01:开启OTA模式;0X00:关闭OTA模式 | XX | 0x03 |
| START | CMD | SCMD | FCS | END |
|---|---|---|---|---|
| 0x02 | 0x44 | 0xCC | xx | 0x03 |