串口传输服务

串行传输服务允许用户通过 BLE 简单快速地传输串行数据。

服务 UUID 是 7369666c-695f-7364-0000-0000000000000。 它有两个特点: - 串口传输配置:UUID 7369666c-695f-7364-0001-0000000000000(须通知)。 - 串口传输数据:UUID 7369666c-695f-7364-0002-0000000000000(可读可写可通知)

尚未使用配置特性。

数据特性用于传输串行数据。 其数据格式为: - CateID, is categoryID for differernt users. - Flag, is for fragmentation. - 0x00: Completed packet. - 0x01: First packet. - 0x02: Continue packet. - 0x03: Last packet. - Length Packet length, is only available when flag equal 0x00; - Data, is serial data.

实现传输串行数据

用户只需与客户端协商确认 categoryID 并确保该 ID 与设备中的其他用户不同。 然后就可以传输数据了。

有关串行传输 API 的详细信息,请参阅 @ref Serial_tran 。

这是示例代码:


// Make sure the cagegoryID is different with other IDs in local.
#define APP_BLE_SERIAL_ID 0x1F

// Handle data from client.
void ble_app_serial_callback(uint8_t conn_idx, ble_serial_tran_data_t *data)
{
	int ret;
	ble_serial_tran_data_t send_data;
	uint8_t test_data[] = {0x01, 0x02, 0x03, 0x04};
	// The cateID should be same as registerdID APP_BLE_SERIAL_ID.
    LOG_I("cateID(%d), data(%d) %s\r\n", data->cateID, data->len, data->data);
	// Handle data from peer device start.
	
	// Handle data from peer device end.
	
	// Prepare send data to client
	send_data.cateID = APP_BLE_SERIAL_ID;
	send_data.len = sizeof(test_data);
	send_data.data = test_data;
	ret = ble_serial_tran_send_data(conn_idx, &send_data);
	LOG_I("result %d",ret);
}

// Register user defined cagegoryID and assoicated callback.
BLE_SERIAL_TRAN_EXPORT(APP_BLE_SERIAL_ID, ble_app_serial_callback);


*/