Trywake AIOS
智能跑步运动器械
通讯开放协议标准

协议说明

智能跑步运动器械需要按照本协议完成对应功能开发.
觉醒运动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
A1
15
设备正在运行状态->
正在停止 当前速度必选->
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)
    * 实际运动中跑步速度是在变化的,故在速度变化时需要分段计算运动热量并进行累加和计算,同时还需时刻关注体重值及运动者年龄的变化。