你好对话框,
我们已将IMU传感器集成在I2C上的DA14585,这是成功的。之后,我们为IMU传感器(ACC,GYRO,TEMP)创建了新的特性,并通过使用控制点特性(0x01)发送触发来读取NRF连接应用上的所有传感器特性值。对于开发此应用程序,我们使用了BLE_PERIALIAL示例。
现在我们想使用BLE中央设备阅读相同的数据,我们想在没有发送任何触发器的情况下进行。就像,当连接到BLE服务器的BLE Central时,它应该在没有任何外部触发的情况下自动发送传感器数据。这是否可以使用可用的堆栈,如果是这样,请告诉我们我们应该在BLE_PERIALIAL示例中执行哪些修改?
谢谢
D.Vishnu.
关键词:
设备:
嗨Vishnuatdialog,
因此,您想根据585设备创建一个中央应用程序,一旦设备连接到中央,它应该开始从外设或外设通知中央设备与更新值的情况开始读取数据?如果这是这种情况,那么您请求的项目是BLE_APP_PERITERAL的简单MOD。为了实现您必须拍摄一个空项目,将堆栈配置为中心,发出扫描命令,并在收到正确的广告字符串后,您可以发出连接execet。在挑选连接后,您必须发现外围侧的所有特性。这意味着您必须创建一个中央配置文件,该配置文件将执行将支持外围设备上的自定义配置文件的发现过程,一旦完成发现过程(并且中央知道该特定于上支持的所有特征外设)开始发出读取命令(如果您希望从外围设备读取数据的核心),或者您应该写入外围设备的CCC描述符(如果是该特性是不可用的),以便外围将开始向数据发送数据中央。为了实现自定义中央配置文件,没有文档或教程或一个简单的示例,但是您可以将DSPS演示作为参考(主机侧),以便实现一个非常相似的东西,这将执行发现并开始通信的设备有一个中央。
谢谢mt_dialog.
你好对话框,
以上,上面解释的是(客户端和服务器)的情况下基于DA14585。
但是,在我的情况下
BLE服务器(外围设备)是(DA14585 + IMU传感器)
BLE客户端(中央)是(CC2650)不是基于DA14585的。
截至上述情况,我不希望在BLE客户端中实现触发。每当BLE客户端连接到BLE服务器而不触发时,我想读取数据。为此,我想在BLE_Peripheral代码中进行更改,而不是在BLE客户端代码中。
是否可以从BLE服务器(外设)读取数据而不将0x01写入控制点(触发)?
谢谢
D.Vishnu.
嗨Vishnuatdialog,
读取过程是一个命令,只有中央可以启动而不是外围设备,在BLE中,外围设备启动数据传输的唯一方法是通过通知来启动数据传输,这意味着您必须使您的特性通知。同样为了使中央从外设获取通知,它必须对通知特性执行写入请求,以便启用通知。因此,它不强制写入控制点,即BLE_APP_PERITWAL具有(控制点只是启用将触发通知的发送的计时器),但必须启用CCC在您想要发送其值的特征上。例如,当使用ble_app_peripheral时需要执行两个写入,以便从外围设备开始获取数据,一个是控制点,另一个写入是启用ADC特性的CCC,稍后是客户端的强制性获取您可以在相应回调的连接时启动触发的通知。
谢谢mt_dialog.
你好对话框,
但是,当我使用NRFConnect应用程序作为Blecentral时,我仅向控制点(0x01)写入,然后按下启用的通知箭头,然后按读取箭头以接收外围数据。我没有编写任何外部命令以使来自应用程序的CCC读取ADC值。
如何启用CCC对特性的是通过代码执行的,或者我们应该通过使用BLE Central来执行此操作吗?
最后有可能接收外围数据而不从BLE Central写出任何命令?
谢谢
D.Vishnu.
嗨Vishnuatdialog,
当您按下通知启用按钮时,这就是中心的所作所为,它将写入特性的CCC,以便启用指定特征的通知。
如果您不写信到CCC特性(即启用通知),则中央不会从该分析特性接收任何内容。
谢谢mt_dialog.
你好对话框,
如果我不想写入控制点,我如何自动触发计时器?
嗨Vishnuatdialog,
您可以在与设备连接后设置计时器以发出小延迟,并在该计时器的回调中发送通知,或者您可以在中央写入CCC时使用写入指示(以便启用通知)并且要么从那里开始计时器或直接发送通知。对于后面的所有您所要做的就是在user_catch_rest_hndl()函数中有此实现,当您收到Custs1_Val_Write_ind时。
谢谢mt_dialog.