服務(wù)與特征
Service UUID:
6E400001-B5A3-F393-E0A9-E50E24DCCA9E
Characteristic 1
UUID: 6E400003-B5A3-F393-E0A9-E50E24DCCA9E
屬性:通知(Notify)
數(shù)據(jù)長度:最大20字節(jié)
數(shù)據(jù)意義:RX特征字
Characteristic 2
UUID: 6E400002-B5A3-F393-E0A9-E50E24DCCA9E
屬性:寫(Write)
數(shù)據(jù)長度:最大20字節(jié)
數(shù)據(jù)意義:TX特征字
數(shù)據(jù)包格式
幀頭 | 命令 | 數(shù)據(jù) | 檢驗(yàn)位 | 幀尾 |
---|---|---|---|---|
0x7E | 0xxx | 0x... | CRC_8_compute() | 0x5A |
1 byte | 1 byte | n byte | 1 byte | 1 byte |
App 下傳數(shù)據(jù)到手環(huán)
命令及數(shù)據(jù)
命令 | 命令說明 | 數(shù)據(jù)標(biāo)示 | 數(shù)據(jù)大小及說明 |
---|---|---|---|
0x01 | 綁定手環(huán) | 0x... | 占2byte概而,發(fā)送 0-65535 的隨機(jī)數(shù)利赋,綁定后App/手環(huán)會記錄該隨機(jī)數(shù)滨巴,在下次連接時進(jìn)行比對 |
0x02 | 同步時間 | 0x... | 占6byte衡未,設(shè)置手環(huán)時間:年月日時分秒 |
0x03 | 解綁 | 0x41 | 占1 byte蕾管,解綁手環(huán) |
0x04 | 心率/血壓測量 | 0x42 | 占1 byte,心率血壓測量 |
0x05 | 啟動心電測量 | 0x43 | 占1 byte因谎,開始心電測量 |
0x06 | 停止心電測量 | 0x44 | 占1 byte敛瓷,停止心電測量 |
0x07 | 啟動消息通知 | 0x45,0xxx | 占2byte,第二字節(jié)代表:消息ID ( 0x41-QQ, 0x42-微信,0x43-來電, 0x44-短信, 0x45 -微博 ) |
0x08 | 停止消息通知 | 0x46,0xxx | 占2byte满葛,格式與開啟消息通知格式一致 |
0x09 | 獲取鬧鐘 | 0x47 | 占1 byte径簿,獲取全部鬧鐘 |
0x0A | 修改鬧鐘 | 0x48,0x... | 占8 byte,(1byte) 鬧鐘模式ID 嘀韧;(3byte)代表時間篇亭; 0x00 (1byte)(備用),(1byte)代表鬧鐘周期模式; (1byte)貪睡模式是否開啟 |
0x0B | 添加鬧鐘 | 0x49,0x... | 占8 byte 锄贷,格式與修改鬧鐘格式一致 |
0x0C | 刪除鬧鐘 | 0x0A,0xxx | 占2 byte译蒂,第二字節(jié)代表:鬧鐘ID (0x01 鬧鐘1 ,0x02 鬧鐘2, 0x03 鬧鐘3) |
0x0D | 數(shù)據(jù)同步(心率/血壓) | 0x0B | 占1 byte,同步心率/血壓數(shù)據(jù) |
0x0E | 獲取消息通知開關(guān)狀態(tài) | 0x0E | 占1 byte谊却,消息通知開關(guān)狀態(tài) |
0x0F | 獲取計(jì)步數(shù)據(jù) | ||
開啟/關(guān)閉鬧鐘 | 2 byte |
注:(鬧鐘數(shù)據(jù)格式說明)
鬧鐘周期模式: 一個字節(jié)的低7bit 代表周一到周日 為1 有效 為0無效
如0x83 代表周一和周二有鬧鐘(自定義) 如果是一次0x04(代表周三一次鬧鐘)
時間 : 3個字節(jié) 小時一個字節(jié) 分鐘一個字節(jié) 秒鐘一個字節(jié)
鬧鐘ID : 0x01 鬧鐘1 0x02 鬧鐘2 0x03 鬧鐘3
貪睡模式 :0x11 關(guān)閉貪睡 0x12 打開貪睡(鬧三次間隔10分鐘)
手環(huán) 上傳數(shù)據(jù)到 App
命令及數(shù)據(jù)
命令 | 命令說明 | 數(shù)據(jù)標(biāo)示 | 數(shù)據(jù)大小及說明 |
---|---|---|---|
0xE1 | 回復(fù)接收隨機(jī)數(shù)綁定 | 0xxx | 占1 byte柔昼,0x01 設(shè)備端第一次被連接狀態(tài);0x02 手環(huán)被其他手機(jī)綁定炎辨;0x03 隨機(jī)數(shù)相等正常連接捕透;0x04 失敗 |
0xE2 | 回復(fù)收到時間命令 | 0x12 | 回復(fù)收到同步時間 |
0xE3 | 回復(fù)解綁結(jié)果 | 0xxx | 占1 byte, 0x11 成功; 0x21 失敗 |
0xE4 | 回復(fù)心率碴萧、血壓數(shù)據(jù)值 | 0x... | 占8 byte乙嘀,回復(fù)啟動心率測量 : month(1byte)、day(1byte)破喻、hour(1byte)虎谢、min(1byte)、second(1byte)曹质、heart(1byte)婴噩、HighbloodPressure(1byte)、LowbloodPressure(1byte) |
0xE5 | 回復(fù)心電數(shù)據(jù)包 | 0x... | 占18 byte羽德,回復(fù)啟動心電測量:周期發(fā)送數(shù)據(jù)包 先暫時一次發(fā)送18個心電字節(jié) |
0xE6 | 回復(fù)停止心電檢測 | 0x14 | 占1 byte几莽,停止心電測量 |
0xE7 | 回復(fù)開啟消息通知 | 0x15 | 占1 byte,回復(fù)啟動消息通知 |
0xE8 | 回復(fù)關(guān)閉消息通知 | 0x16 | 占1 byte宅静,回復(fù)停止消息通知 |
0xE9 | 回復(fù)獲取鬧鐘 | 0x... | 占8 byte银觅,回復(fù)獲取鬧鐘 :鬧鐘ID (1byte) ; 鬧鐘時間(3byte)包含時、分坏为、秒; 鬧鐘是否開啟 (1byte)0x11代表打開 0x12代表關(guān); 鬧鐘周期(2byte) 0x00 0xxx; 鬧鐘貪睡模式 (1byte)0xxx究驴; 如果三個鬧鐘都設(shè)置了,則回復(fù)3條指令 |
0xEA | 回復(fù)設(shè)置鬧鐘 | 0xxx | 占1 byte匀伏,0x17(1byte)成功 0x27失敗 |
0xEB | 回復(fù)添加鬧鐘 | 0xxx | 占1 byte洒忧,0x18(1byte)成功 0x28失敗 |
0xEC | 回復(fù)刪除鬧鐘 | 0xxx | 占1 byte,0x19(1byte)成功 0x29失敗 |
0xED | 數(shù)據(jù)同步(包括心率够颠、血壓熙侍、歷史數(shù)據(jù)) | 0x... | 占9 byte,回復(fù)同步數(shù)據(jù):(1次心率血壓)year(1byte) 履磨、month(1byte) 蛉抓、day(1byte) 、hour(1byte) 剃诅、min(1byte) 巷送、second(1byte) 、heart(1byte)矛辕、HighbloodPressure(1byte)笑跛、LowbloodPressure(1byte) |
0xEE | 回復(fù)獲取消息通知 | 0x... | 占2 byte,回復(fù)消息狀態(tài):0xxx(1byte)消息ID; (1byte)開啟狀態(tài):0x20 代表打開 0x21 代表關(guān)閉 |
0xEF | 主動上發(fā)計(jì)步數(shù)據(jù) | 0x... | 占3 byte 聊品,計(jì)步數(shù)據(jù) (主動上傳計(jì)步) |
0xF1 | 回復(fù)獲取計(jì)步數(shù)據(jù) | 0x... | 占3 byte 飞蹂,計(jì)步數(shù)據(jù) (回復(fù)獲取計(jì)步) |
回復(fù)開啟/關(guān)閉鬧鐘 | 0x... | 占2 byte ,第一字節(jié)表示對應(yīng)的鬧鐘ID翻屈,第二字節(jié)代表開啟狀態(tài) |
注:(消息ID)
0x41 代表QQ消息
0x42 代表微信消息
0x43 代表 來電消息
0x44 代表短信消息
0x45 代表微博消息
數(shù)據(jù)校驗(yàn)方法
unsigned char CRC_8_compute (unsigned char * p_data, unsigned short length)
{
unsigned char i, crc = 0;
while(length--)
{
crc ^= *p_data++;
for(i=0; i<8; i++)
{
if(crc & 0x01)
crc = (unsigned char)((crc >> 1) ^ 0x8C);
else
crc >>= 1;
}
}
return crc;
}
// 校驗(yàn)字節(jié)從“命令”字節(jié)開始到“數(shù)據(jù)”結(jié)束
// 可以用格西CRC計(jì)算器1.0 軟件驗(yàn)證
附:
需要增加“開啟/關(guān)閉鬧鐘命令”陈哑,及回復(fù)命令;獲取計(jì)步數(shù)據(jù)的命令的數(shù)據(jù)標(biāo)示位沒有伸眶,是否需要增加惊窖。