SYD8801是一款低功耗高性能藍牙低功耗SOC,內建了高性能2.4GHz射頻收發機、32位ARM Cortex-M0處理器、128kB Flash存儲器、以及豐富的數字接口。SYD8801片上內建了Balun無需阻抗比對網絡、高效率DCDC降壓轉換器,适合用于可穿戴、物聯網裝置等。具體可咨詢:http://www.sydtek.com/
關于微信接入的内容請看:http://blog.csdn.net/chengdong1314/article/details/78070453
SYD8801微信接入測試結果-精簡協定
這裡首先使用AirSyncDebugger軟體進行調試,調試結果如下:
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIiN0kjMzYTNzETOykDM3EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
微信接入的資料請看:http://download.csdn.net/download/chengdong1314/10001695
關于SYD8801端的微信接入的源代碼請和SYD官方索要!官方有提供詳細資源和源代碼!
下面來真正的連接配接微信!
第一步當然是組建微信公衆号,這方面的工作請看前面提及的資料:http://blog.csdn.net/chengdong1314/article/details/78070453
這裡要提醒一下:
第一微信公衆号的配置必須要對,否則不可能連接配接成功
第二MAC位址必須要和公衆号的比對對的上
第三必須的過得了AirSyncDebugger的測試
進入公衆号時顯示連接配接中,如下左圖,如果各方面配置不對則會顯示連接配接0個裝置,如下右圖:
如果連接配接成功則會顯示成功連接配接到1個裝置,如下左圖所示,這時候可以在微信運動看到上傳的步數,如下右圖:
這時候抓包到的資料如下,确實手環上傳了步數:
SYD8801微信接入測試結果-AirSync
關于AirSync的說明請看部落格http://blog.csdn.net/chengdong1314/article/details/78070453的相關章節
這裡使用AirSyncDebugger軟體進行調試,第一步先進行設定,包括DEVICE_TYPE和DEVICE_ID,這兩個的定義在《mpbledemo2.h》溫江中,如下:
#define DEVICE_TYPE "gh_ca9217796a90" //device type,需填入您申請到的微信測試id号
#define DEVICE_ID "gh_ca9217796a90_dc295255d8de6c6fd0597acaf2f41d06" //deviceid,需填入您申請到的deviceid
設定步驟如下(注意:手指指的地方就是要點選的地方),這裡輸入的DEVICE_TYPE和DEVICE_ID要和代碼對應上:
接下來就是測試截圖(注意:從第二個圖開始(device_auth發送)都要用按鍵切換兩次到記步界面,這時候手環才會發送相應資料包,因為發送的調用在記步界面開始的地方):
發送資料包的入口代碼:
另外在《ble_wechat_service.h》檔案中定義了目前是微信精簡協定還是AIRSYNC,定義_WECHAT_代表使用精簡協定,定義__AIRSYNC__代表使用AIRSYNC,目前都是分開測試的,合在一起還沒有測試,不過理論上可行!
關于SYD8801端的微信接入的源代碼請和SYD官方索要!官方有提供詳細資源和源代碼!
最後下面是AirSyncDebugger軟體的日志:
***** onTestBroadcastRecord *****
result = true, Has 0xfee7 or standard service in broadcast record
廣播包:03 19 05 00 02 01 05 05 03 01 00 E7 FE 09 FF 00 00 E0 39 76 BD 26 95 06 09 55 41 52 54 46 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
***** onTestManufatureData *****
resut= true, 廣播包中 manufacture specific data 字段中MAC位址校驗成功.
***** onDiscoverService *****
result = true, DiscoverService success
Discovered Services
ServiceUUID: 00001800-0000-1000-8000-00805f9b34fb
ServiceUUID: 00001801-0000-1000-8000-00805f9b34fb
ServiceUUID: 0000180a-0000-1000-8000-00805f9b34fb
ServiceUUID: 0000180f-0000-1000-8000-00805f9b34fb
ServiceUUID: 00000001-0000-1000-8000-00805f9b34fb
ServiceUUID: 0000fee7-0000-1000-8000-00805f9b34fb
ServiceUUID: 0000ff00-0000-1000-8000-00805f9b34fb
***** onTestHasWeChatService *****
result = true, has WeChatService or standard service
***** onTestHasIndicateCharacteristic *****
result = true, has WeChat Indicate Characteristic
***** onTestHasWriteCharacteristic *****
result = true, has Wechat Write Characteristic
***** onTestHasReadCharacteristic *****
result = true, Has WeChat read characteristic
***** onTestWriteCharacteristicPermisson *****
result = true, has Write permission
***** onTestIndicateCharacteristicPermisson *****
result = true, has Indication permission
***** onTestReadCharacteristicPermisson *****
result = true, Read Characteristic is read able
***** onTestStartIndicating *****
result = true, can Start Indicate
***** onConnected *****
result = true, connected
------onDataReceived------
data length = 20
data dump = FE 01 00 57 27 11 00 01 0A 00 12 10 A9 31 21 A9 B4 A7 3B BA
data receive seq = 1
------onDataReceived------
data length = 20
data dump = 3C 53 1D 2B F9 A6 04 27 18 84 80 04 20 01 28 01 62 31 67 68
data receive seq = 2
------onDataReceived------
data length = 20
data dump = 5F 63 61 39 32 31 37 37 39 36 61 39 30 5F 64 63 32 39 35 32
data receive seq = 3
------onDataReceived------
data length = 20
data dump = 35 35 64 38 64 65 36 63 36 66 64 30 35 39 37 61 63 61 66 32
data receive seq = 4
------onDataReceived------
data length = 7
data dump = 66 34 31 64 30 36 00
data receive seq = 5
***** onTestRecvAuthReqtWhenStartedIndicating *****
result = true, received auth request pack
***** onTestIsValidAuthReqPack *****
result = true, is a valid auth request pack
AuthRequestPack: FE 01 00 57 27 11 00 01 0A 00 12 10 A9 31 21 A9 B4 A7 3B BA 3C 53 1D 2B F9 A6 04 27 18 84 80 04 20 01 28 01 62 31 67 68 5F 63 61 39 32 31 37 37 39 36 61 39 30 5F 64 63 32 39 35 32 35 35 64 38 64 65 36 63 36 66 64 30 35 39 37 61 63 61 66 32 66 34 31 64 30 36 00
has BaseRequest
has Md5DeviceTypeAndDeviceId, Md5DeviceTypeAndDeviceId = A9 31 21 A9 B4 A7 3B BA 3C 53 1D 2B F9 A6 04 27
Md5DeviceTypeAndDeviceId BitLength = 128bit
Md5DeviceTypeAndDeviceId checkout success
no MacAddress field!
has ProtoVersion field, ProtoVersion = 65540
has AuthProto field, AuthProto = 1
has AuthMethod field, AuthMethod = EAM_md5
no AesSign field!
has DeviceName field, DeviceName = gh_ca9217796a90_dc295255d8de6c6fd0597acaf2f41d06
**** send auth response ****
data len = 14
data dump = FE 01 00 0E 4E 21 00 01 0A 02 08 00 12 00
------onDataReceived------
data length = 16
data dump = FE 01 00 10 27 13 00 02 0A 00 1A 04 11 22 33 44
data receive seq = 6
***** onTestRecvInitReqPack *****
result = true, received init request pack
***** onTestIsValidInitReqPack *****
result = true, valid init request pack: has BaseRequest
has Challenge field, Challenge = 11 22 33 44
**** send init request response ****
data len = 25
data dump = FE 01 00 19 4E 23 00 02 0A 02 08 00 10 B4 24 18 F8 AC 01 20 D1 BB CA BF 07
------onDataReceived------
data length = 20
data dump = FE 01 00 27 27 12 00 03 0A 00 12 1B FE CF 00 01 00 1B 00 01
data receive seq = 7
------onDataReceived------
data length = 19
data dump = 00 03 00 00 48 65 6C 6C 6F 2C 20 57 65 43 68 61 74 21 00
data receive seq = 8
*** receive SendDataRequest ****
date type = manufactureSvr data
data len = 31
data dump = 0A 00 12 1B FE CF 00 01 00 1B 00 01 00 03 00 00 48 65 6C 6C 6F 2C 20 57 65 43 68 61 74 21 00
**** send SendData Response(echo request) ****
data len = 45
data dump = FE 01 00 2D 4E 22 00 03 0A 02 08 00 12 1F 0A 00 12 1B FE CF 00 01 00 1B 00 01 00 03 00 00 48 65 6C 6C 6F 2C 20 57 65 43 68 61 74 21 00
***** onTestIsValidSendDataRequest *****
result = true, is a valid SendDataRequest pack: has BaseRequest field
has Data field, data = FE CF 00 01 00 1B 00 01 00 03 00 00 48 65 6C 6C 6F 2C 20 57 65 43 68 61 74 21 00
no Type field, use default manufactureSvr data type
**** send ManufactureSvr Push ****
data len = 22
data dump = FE 01 00 16 75 31 00 00 0A 00 12 08 31 32 33 34 35 36 37 38 18 00
**** send Html Push ****
data len = 23
data dump = FE 01 00 17 75 31 00 00 0A 00 12 08 31 32 33 34 35 36 37 38 18 91 4E
**** send wxWristBand Push ****
data len = 14
data dump = FE 01 00 0E 75 31 00 00 0A 00 12 00 18 01
**** send EnterDeviceChatView Push ****
data len = 14
data dump = FE 01 00 0E 75 32 00 00 0A 00 10 01 18 01
**** send Exit ChatView Push ****
data len = 14
data dump = FE 01 00 0E 75 32 00 00 0A 00 10 02 18 01
**** send Enter HtmlChatView Push ****
data len = 14
data dump = FE 01 00 0E 75 32 00 00 0A 00 10 01 18 02
**** send Exit HtmlChatView Push ****
data len = 14
data dump = FE 01 00 0E 75 32 00 00 0A 00 10 02 18 02
**** send enterBackground Push ****
data len = 12
data dump = FE 01 00 0C 75 33 00 00 0A 00 10 01
**** send enterForground Push ****
data len = 12
data dump = FE 01 00 0C 75 33 00 00 0A 00 10 02
**** send enterSleep Push ****
data len = 12
data dump = FE 01 00 0C 75 33 00 00 0A 00 10 03
*****Disconnected Device*****