csr867x入門之spp使用(七)

2021-10-01 03:41:19 字數 1165 閱讀 5175

目錄簡述

使能gaia

spp資料傳送

spp資料接收

adk4.1預設是沒有spp應用實現的的,所以需要自己加入相關邏輯

adk底層提供了兩種方法:shim和gaia,本篇文章裡面主要是講解如何使用gaia來實現spp的資料收發,shim方式請參考下面的博文:

首先在配置選項中使用gaia功能,如下圖所示:

由於只提供了底層的資料傳送介面,所以我在gaiasendpacket()介面的基礎上,在上層封裝了乙個如下函式:

void gaia_send_sppdata(uint8 *payload, uint16 payload_length)

else

packet = mallocpanic(len);

if (packet)

if (flags & gaia_protocol_flag_check)

gaiasendpacket(gaia_data.gaia_transport, len, packet);

gaiatransportsettype(gaia_data.gaia_transport, type);

}

有兩個需要注意的地方:乙個是transtype,這個值決定了使用的是那個傳輸通道,比如spp,gatt,rfcomm等,所以這個地方我將他置為gaia_transport_spp;第二是通過gaiasendpacket介面傳送資料時,還需要封裝gaia的協議,組包格式可以參考build_packet()介面。

然後再利用at指令將資料傳送出去:

void handlesppsenddata(task t, const struct sppsenddata *send_data)

else

}

當接收到遠端發來的spp資料,首先進入gaia.c中的message_handler進行資料分發,然後進入在spp的處理函式gaiatransportspphandlemessage中判斷訊息型別,當為spp資料時,其msg id為message_more_data,然後到gaiatransportprocesssource資料進行處理。

csr867x入門之環境搭建(一)

目錄 開發環境搭建 開啟工程 工程配置 利用pstool.exe工具 與韌體一起燒錄到晶元中 編譯及燒錄 試用 首先安裝adk4.1 由於我當前使用的是adk4.1,可根據自己的需要安裝其他版本 和installbluesuite2.6 csr系列晶元的工具集 adk4.1安裝完成之後,目錄結構如下...

k8s入門系列之介紹篇

kubernetes介紹 1.背景介紹 雲計算飛速發展 iaas paas saas docker技術突飛猛進 一次構建,到處執行 容器的快速輕量 完整的生態環境 2.什麼是kubernetes kubernetes k8s 是google開源的容器集群管理系統 谷歌內部 borg 在docker技...

k8s入門系列之介紹篇

kubernetes介紹 1.背景介紹 雲計算飛速發展 iaas paas saas docker技術突飛猛進 一次構建,到處執行 容器的快速輕量 完整的生態環境 2.什麼是kubernetes kubernetes k8s 是google開源的容器集群管理系統 谷歌內部 borg 在docker技...