智能跑步运动器械需要按照本协议完成对应功能开发. 觉醒运动Trywake AIOS通过本开放协议标准与智能跑步运动器械建立数据通讯,使得觉醒运动Trywake AIOS与智能跑步运动器械互联时提供智能交互体验.
通讯接口 :UART 波 特 率 :115200 bps 通讯方式 :上位机发送请求数据下位机必须回复请求,下位机基础数据需轮询主动发送
1 . Trywake AIOS-To-Terminal :上位机发送给下位机
① Control2Terminal协议组成
帧 头 | 数据长度 | Code | 数 据 | 校验码 | 帧 尾 |
---|
② Control2Terminal协议描述
帧 头 :FB【固定】 数 据 长 度 :去头去尾的数据长度总和 Code :参见下表中Code内容 数 据 :参见下表中数据内容 校 验 码 :去头去尾以外,所有数据和的低 8 位 1BYTE 校验码公式 : int checkCode = sumData & 255 帧 尾 :FC【固定】 示 例 :数据长度【1】 + Code【1】 + 校验码【1】 + 数据字节长度【N】
Code | 数 据 | |
---|---|---|
01 | 重置数据 0BYTE | N/A |
02 | 设置速度最小单位M,2BYTE | 例 : 1.00 km/h;value : 03 E8 |
03 | 设置坡度,1BYTEE | 例 : ∠10; value : 0A |
04 | 设置体征数据,体重Kg 1BYTE,年龄1BYTE,性别(1 or 0) 1BYTE | 例 : 70kg 25岁 男; value : 46 19 01 |
0A | 获取Trywake AIOS注册唯一码,0BYTE | N/A |
0B | 获取设备基本信息 min/max 速度,坡度 0BYTE | N/A |
14 | 启动 0BYTE | N/A |
15 | 终止 0BYTE | N/A |
16 | 唤醒设备 0BYTE | N/A |
③ Control2Terminal协议示例及描述
设置速度 | FB 05 02 03 E8 F2 FC |
---|---|
设置速度为 1km/h | |
设置坡度 | FB 04 03 0A 11 FC |
设置坡度为 10 | |
启 动 | FB 03 14 17 FC |
设置体征数据 | FB 06 04 46 19 01 6A FC |
体重70 25岁 男性 |
2 . Terminal-To-Trywake AIOS:下位机发送给上位机
① Terminal2Control协议组成
帧 头 | 数据长度 | Code | 数 据 | 校验码 | 帧 尾 |
---|
② Terminal2Control协议描述
帧 头 :FD【固定】 数 据 长 度 :去头去尾的数据长度总和 Code :参见下表中Code内容 数 据 :参见下表中数据内容 校 验 码 :去头去尾以外,所有数据和的低 8 位 1BYTE 校验码公式 : int checkCode = sumData & 255 帧 尾 :FE【固定】 示 例 :数据长度【1】 + Code【1】 + 校验码【1】 + 数据字节长度【N】
Code | 数 据 | |||
---|---|---|---|---|
0A | 获取Trywake AIOS注册唯一码 5BYTE | 例 : 123456789001(唯一码);value : 1C BE 99 1A 09 | ||
0B | 返回设备基本信息 6BYTE;SpeedMin(2BYTE);SpeedMax(2BYTE);SlpoeMin(1BYTE) ;SlpoeMax(1BYTE) | 例 : speed min 1.0km/h max 18.0km/h slope min ∠0 max ∠35;value : 03 E8 07 08 00 23 | ||
14 | 开始倒数开始 2BYTE;SumNum(1BYTE) CurrentNum(1BYTE) | 例 : SumNum 5 ,CurrentNum 1;value : 05 01 | ||
A0 | 待机状态 | N/A | ||
A115 | 设备正在运行状态->正在停止 当前速度必选-> | Key | Value | |
01 | 当前里程M 3BYTE,必须 | 5km : 00 13 88 | ||
02 | 当前消耗 kcal 2BYTE,必须 | 300kcal : 01 2C | ||
03 | 当前运行时间 3BYTE,必须 | (hh:mm:ss) : 0C 0C 0C | ||
04 | 当前心率 1BYTE | 90 : 5A | ||
05 | 当前步数 2BYTE | 4000 : 0F A0 | ||
06 | 当前速度 2BYTE,必须 | 10.0km/h : 27 10 | ||
07 | 目标速度 2BYTE,必须 | 30.0km/h : 75 30 | ||
08 | 当前坡度 1BYTE | ∠10 : 0A | ||
09 | 目标坡度 1BYTE | ∠35 : 23 | ||
A2 | 设备状态 | 其他未知状态 : 00 | ||
闲置状态 : 01 | ||||
设备故障状态 : 02 | ||||
禁止启动状态 : 03 | ||||
安全锁脱落状态 : 04 |
3 . Terminal2Control协议示例以及描述
返回唯一码 | FD 08 0A 1C BE 99 1A 09 A8 FE |
---|---|
唯一码为 : 123456789001 | |
返回基本信息 | FD 09 0B 03 E8 46 50 00 1E B3 FE |
最小速度 1km/h;最大速度 18km/h;最小坡度 0;最大坡度 30 | |
设备正在运行 | FD 1D A1 01 00 13 88 02 01 2C 03 0C 0C 0C 04 5A 05 0F A0 06 27 10 07 27 10 08 0A 09 0A 62 FE |
Key 里程 5km;消耗 300kcal;运行时间 12:12:12;心率 90;步数 4000;速度 10km/h;目标速度 10km/h;当前坡度 10;目标坡度 10 | |
返回倒数 | FD 05 14 05 04 22 FE |
待机状态 | FD 03 A0 A3 FE |
正在停止 | FD 09 15 06 27 10 07 00 00 62 FE |
Key 速度 10km/h;目标速度 0km/h | |
设备状态 | FD 04 A2 01 A7 FE |
闲置状态 |
正常通讯流程模拟 | |||||
---|---|---|---|---|---|
Control2Terminal | Terminal2Control | ||||
准备以及初始化 | |||||
主动发送 | 获取唯一码 | FB 03 0A 0D FC | 回复 | 返回唯一码信息 | FD 08 0A 1C BE 99 1A 09 A8 FE |
拿到唯一码请求服务器,获取硬件厂家信息 | - | ||||
主动发送 | 获取基本信息 | FB 03 0B 0E FC | 回复 | 返回基本信息 | FD 09 0B 03 E8 46 50 00 1E B3 FE |
主动发送 | 体征数据 | FB 06 04 46 19 01 6A FC | - | ||
- | 如果为睡眠状态,否则直接成为待机状态 | ||||
- | 主动 | 睡眠状态消息轮询 | FD 04 A2 01 A7 FE | ||
主动发送 | 取消休眠状态 | FB 03 16 19 FC | 主动 | 待机状态消息轮询 | FD 03 A0 A3 FE |
手动物理取消休眠 | |||||
点击开始跑步后的通讯阶段 | |||||
主动发送 | 启动跑步机 | FB 03 14 17 FC | 回复并主动 | 跑步机开始倒数 | |
- | 5 | FD 05 14 05 05 23 FE | |||
- | 4 | FD 05 14 05 04 22 FE | |||
- | 3 | FD 05 14 05 03 21 FE | |||
- | 2 | FD 05 14 05 02 20 FE | |||
- | 1 | FD 05 14 05 01 1F FE | |||
- | 主动 | 轮询发送运动消息(数据实时变化) | |||
- | FD 1D A1 01 00 00 00 02 00 00 03 00 00 01 04 00 05 00 00 06 03 E8 07 03 E8 08 00 09 00 C2 FE | ||||
主动发送 | 调整速度+1【2km/h】 | FB 05 02 07 D0 DE FC | FD 1D A1 01 00 00 00 02 00 00 03 00 00 01 04 00 05 00 00 06 03 E8 07 07 D0 08 00 09 00 AE FE | ||
主动发送 | 调整速度-1【1km/h】 | FB 05 02 03 E8 F2 FC | FD 1D A1 01 00 00 00 02 00 00 03 00 00 01 04 00 05 00 00 06 07 D0 07 03 E8 08 00 09 00 AE FE | ||
主动发送 | 调整坡度+1【∠1】 | FB 04 03 01 08 FC | FD 1D A1 01 00 00 00 02 00 00 03 00 00 01 04 00 05 00 00 06 03 E8 07 03 E8 08 00 09 01 C3 FE | ||
主动发送 | 调整坡度-1【∠0】 | FB 04 03 00 07 FC | FD 1D A1 01 00 00 00 02 00 00 03 00 00 01 04 00 05 00 00 06 03 E8 07 03 E8 08 01 09 00 C3 FE | ||
点击结束跑步后的通讯阶段 | |||||
主动发送 | 停止跑步 | FB 03 15 18 FC | 回复并主动 | 持续减速中 | FD 09 A1 06 03 E8 07 00 00 A2 FE |
减速到 0km/h 后,回到待机状态 | |||||
- | 主动 | 待机状态消息轮询 | FD 03 A0 A3 FE |
此通用算法(需带入速度和坡度值)适用于步行和跑步的所有情况,包含坡度变化时对METs的影响,不依赖查询对照表,根据运动速度、坡度、体重和运动时间,即可测算出运动消耗,还可以通过净代谢当量反向计算出运动速度,使用范围广且灵活,故步行和跑步推荐使用此算法.
通用算法 | |
---|---|
算法 | 步行运动热量消耗(Kcal)= { [(3.5 + 0.1 * 速度(m/min)+ 1.8 * 速度(m/min)* 坡度(%))/ 3.5 - 1 ] * 3.5(mL/kg/min)* 体重(kg)/ 1000 } * 5Kcal/L/min * 时间(min) |
跑步运动热量消耗(Kcal)= { [(3.5 + 0.2 * 速度(m/min)+ 0.9 * 速度(m/min)* 坡度(%))/ 3.5 - 1] * 3.5(mL/kg/min)* 体重(kg)/ 1000 } * 5Kcal/L/min * 时间(min) | |
其中 | 速度值(Km/h)转换(m/min):速度(Km/h)/ 3.6 * 60 = 速度(m/min) |
* 实际运动中跑步速度是在变化的,故在速度变化时需要分段计算运动热量并进行累加和计算,同时还需时刻关注体重值及运动者年龄的变化。 |