关闭

可穿戴设备(CC2541)上微信(3)

标签: 可穿戴设备软件微信
1931人阅读 评论(0) 收藏 举报
分类:

微信規定了藍牙 BLE 需要有以下兩個特點。

1:可以傳輸無限長度的數據。

2:雙工,讀寫可以並發,互不干擾。

藍牙無法傳輸無限長度的數據,為了實現這個目的,需要定議一個規範。     

ps:当然是把数据截成奋斗奋斗奋斗奋斗奋斗的,然后再发送了。。。要不然怎么办。。。就是下面的这个东东了。。。

注:把一个特征值一次传输的数据,称为一帧(不同类型的特征值一次传输的数据长度是不一样的)。


藍牙設備需暴露兩個特徵值﹝Characteristics﹞:Write 特徵值,Indication 特徵值。藍牙設備從 Write 特徵值接受數據,從 Indication 特徵值發送數據。

UUID 0xFEC8  Properties:Indicate            

UUID 0xFEC7  Properties:Read Write   


蓝牙的数据传输是通过特征值实现的,那既然已经有了接受和发送的特征值,那就可以读写了数据了。。。

蓝牙设备写过程:

1. 分帧:假设蓝牙手环上有1k数据,要发给手机微信。由于一个特征值长度有限(如20个字节),显然需要分多次才能传输完成。1k 数据,要分成 1024 字节/ 20 字节=51 个帧。剩下的 4 个字节,不足一帧(20个字节),需补齐为一帧并对剩下的 16 个字节赋 0。总共是 52 帧。

2. 发送第一个帧:把第一个帧的内容放入特征值里面。然后通知手机读取数据,通知有两种方式,Indication 和 notify,这里使用 Indication 方式,即带响应的通知。当通知完成的时候,可以认为手机已经读完数据。这就完成了发送第一个帧。

3. 按照 2 的步骤,依次发送剩下的帧。

按照此方法可以发送无线长度的数据。

蓝牙设备读过程:                                                                                              

当蓝牙设备发现读特征值收到数据的时候,就接收数据,并追加到设备的 buf 里。

 

注意:蓝牙设备必须等微信 app 订阅了 Characteristics 之后,才能 indicate 数据,否者会造成设备发送数据丢失的问题。


0
0
查看评论

可穿戴设备(CC2541)上微信(2)

adverData 和 scanResponseData
  • haozi0_0
  • haozi0_0
  • 2015-07-07 17:05
  • 6055

可穿戴设备(CC2541)上微信(8)

peripheral.c 文件中的 static void gapRole_ProcessGAPMsg( gapEventHdr_t *pMsg ) 中有如下程序: case GAP_LINK_TERMINATED_EVENT: { gapTerminateLinkEve...
  • haozi0_0
  • haozi0_0
  • 2015-07-20 15:22
  • 2453

可穿戴设备(CC2541)上微信(6)

读取设备的 MAC 地址: GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);#define GAPROLE_BD_ADDR             0x304  //!< ...
  • haozi0_0
  • haozi0_0
  • 2015-07-14 15:21
  • 1630

可穿戴设备(CC2541)上微信(4)

Source Code 加密
  • haozi0_0
  • haozi0_0
  • 2015-07-09 09:52
  • 1540

可穿戴设备(CC2541)上微信(1)

extern uint8_t Pack_Data(uint16 EmCmdIDData) ; extern uint8_t UnPack_Data(uint8_t *buf, int buf_len) ;
  • haozi0_0
  • haozi0_0
  • 2015-07-07 15:55
  • 2179

可穿戴设备(CC2541)上微信(7)

一、 微信客户端和 BLE 设备通信流程 1. 微信通过聊天窗口向 BLE 设备发送数据,数据流程如下: 微信客户端 ---> 微信服务器 ---> 客户服务器 ---> 微信服务器 ---> 微信客户端 ---> BLE 设备打印串口 2. BLE 设备向微信发送数据...
  • haozi0_0
  • haozi0_0
  • 2015-07-16 14:16
  • 1335

可穿戴设备(CC2541)上微信(5)

1. 当 BLE 设备与微信连接后,微信客户端通过下面的程序向 BLE 设备发送数据: static bStatus_t wechatIOT_WriteAttrCB( uint16 connHandle, gattAttribute_t *pAttr,uint8 *pValue, uint8 len...
  • haozi0_0
  • haozi0_0
  • 2015-07-13 15:42
  • 2185

cc2541 cc2640 接入微信AirSync协议

手头一款cc2640的穿戴设备要接入微信硬件平台,研究了几天,把一些心得记录一下,首先微信官方是有demo参考的,但是只有nordic的nrf51的代码和文档,至于TI的暂时还没有找到,论坛里面有个cc2541的demo,不过核心代码都是封装成库提供的,没有什么利用价值,如果是cc2541的开发,前...
  • gyb510
  • gyb510
  • 2015-12-22 13:25
  • 3446

CC254x(cc2540/cc2541)的微信AirSync调试笔记

本尊自诩为IOT小能手,一直没涉足蓝牙实在说不过去。刚好上个月底的时候计划做个BLE设备,这阵子利用业余时间自学了BLE协议栈,了解了GATT,磕磕绊绊完成CC254x的微信AirSync。就在今晚,听着Coldplay的“Be my mirror, my sword and shield”雄心万丈...
  • zddxmu
  • zddxmu
  • 2015-08-18 22:47
  • 5529

cc2541修改广播信号(以蓝牙接入微信为例)

读取设备的 MAC 地址: [html] view plaincopy GAPRole_GetParameter(GAPROLE_BD_ADDR, ownAddress);   [html] view plaincopy ...
  • dongdong0071
  • dongdong0071
  • 2015-10-10 10:56
  • 976
    个人资料
    • 访问:213320次
    • 积分:3008
    • 等级:
    • 排名:第13797名
    • 原创:77篇
    • 转载:66篇
    • 译文:0篇
    • 评论:45条
    最新评论