基本概念
蓝⽛串⼝是基于 SPP 协议(Serial Port Profile),能在蓝⽛设备之间创建串⼝进⾏数据传输的⼀种设备。蓝⽛串⼝的⽬的是针对如何在两个不同设备(通信的两端)上的应⽤之间保证⼀条完整的通信路径。具体的基本流程如下: 沼气储气罐
设备B:这个设备等待另外⼀个设备发起连接请求。
协议栈分层
这个应⽤两边都是典型的传统应⽤,能够通过⼀个虚拟串⼝通道和对⽅通信。通过下图可以看出,SPP的协议栈使⽤的还是rfcomm通道,这个是蓝⽛中⽐较古⽼的通道了。
提升装置
基本流程
连接流程⼀般分成三个部分,如下所⽰:
1 创建虚拟连接:
A 使⽤SDP提交⼀个请求来查RFCOMM服务信道号码。
B 请求对远端设备进⾏认证。
C 向远端的RFCOMM通道发起⼀个新的L2CAP请求。
D 在L2CAP通道上初始化⼀个RFCOMM连接。
E f在RFCOMM连接上创建⼀个新的数据连接。
2 接受虚拟串⼝连接:
A 接受发起设备端的认证请求并做处理.
B 在L2CAP层接收⼀个新的连接。
毛刷制作C 接受RFCOMM连接请求在RFCOMM通道上
D 在RFCOMM通道上接收数据连接请求。
3 在本地SDP数据上注册服务
tps5430
SPP的API参数
/** A connection has been established with a remote device.
When this callback is received, the “spp_callback_Dev” field
contains a pointer to the remote device context.
*/
#define BTIF_SPP_EVENT_REMDEV_CONNECTED 0
/** A connection has been terminated for a remote device.
When this callback is received, the “spp_callback_her” field
contains a 0.
*/
#define BTIF_SPP_EVENT_REMDEV_DISCONNECTED 1
/** The data has been sent out. At this time the tx buffer can be released.
When this callback is received, the “spp_callback_her” field
is from data structure SppTxDone_t.
*/
threadx系统#define BTIF_SPP_EVENT_DATA_SENT 2
/
** A request to close a channel was received.
When this callback is received, the “spp_callback_her” field
contains a 0.
*/
#define BTIF_SPP_EVENT_REMDEV_DISCONNECTED_IND 3
/** A request to open a channel was received.
When this callback is received, the “spp_callback_Dev” field
contains a pointer to the remote device context.
This is an opportunitity for the server to reject the incoming request. To
reject the request modify spp_callback_parms.status to be BT_STATUS_CANCELLED.
*/荧光法溶解氧
#define BTIF_SPP_EVENT_REMDEV_CONNECTED_IND 4