自动化BLE服务器将数据发送到BLE Central

⚠️
大家好. .感谢来到论坛。令人兴奋的消息!我们现在正在转移到新的论坛平台的过程中,它将提供更好的功能,并包含在主对话网站。所有的帖子和账号已经迁移。我们现在只接受新论坛的流量-请发布任何新的帖子在//www.xmece.com/support.我们会在接下来的几天修复bug /优化搜索和标记。
8个职位/ 0个新职位
最后发表
vishnuatdialog
离线
最后一次露面:1年3个星期前
加入:2017-07-25 07:44
自动化BLE服务器将数据发送到BLE Central

你好,对话框,
我们已将IMU传感器集成在I2C上的DA14585,这是成功的。之后,我们为IMU传感器(ACC,GYRO,TEMP)创建了新的特性,并通过使用控制点特性(0x01)发送触发来读取NRF连接应用上的所有传感器特性值。对于开发此应用程序,我们使用了BLE_PERIALIAL示例。
现在我们想要使用BLE中心设备读取相同的数据,我们想要在不发送任何触发器的情况下做到这一点。比如,当BLE中心连接到BLE服务器时,它应该自动发送传感器数据,而不需要任何外部触发器。这是否可能与可用的堆栈,如果是,告诉我们应该在ble_peripheral的例子中执行什么修改?

谢谢你!
D.Vishnu.

关键词:
设备:
mt_dialog.
离线
最后一次露面:6个月2个星期前
工作人员
加入:2015-06-08 34
嗨vishnuatdialog,

嗨vishnuatdialog,

所以你想创建一个基于585设备的中央应用程序,一旦设备连接到中央,它应该开始从外设读取数据或外设通知中心设备更新的值?如果是这种情况,那么您请求的项目就不仅仅是ble_app_peripheral的一个简单mod。为了实现这一点,您将不得不采取一个空项目配置堆栈为中心,发出扫描命令,并在收到适当的广告字符串后,您可以发出连接请求。在连接建立之后,您将必须发现外围设备上可用的所有特性。这意味着你将不得不创建一个中央剖面,将执行一个探索过程,将支持定制概要文件在外围方面一旦发现程序完成(和中央知道的所有特征支持特定的外围)开始发行(如果你读命令希望中央从外设读取数据)或者应该写入外设的CCC描述符(在特征是可通知的情况下),这样外设就会开始向中央发送数据。对于实现自定义的中央配置文件,没有文档、教程或简单的示例,但您可以将DSPS演示作为参考(主机端),以实现一些非常类似的东西,一个将执行发现并开始与中央通信的设备。

谢谢mt_dialog.

vishnuatdialog
离线
最后一次露面:1年3个星期前
加入:2017-07-25 07:44
你好,对话框,

你好,对话框,
以上,上面解释的是(客户端和服务器)的情况下基于DA14585。
但是,就我来说
BLE服务器(外设)为(DA14585 + IMU传感器)
BLE客户机(中央)(CC2650)不是基于DA14585的。
在上述情况下,我不想在BLE客户端中实现触发。每当BLE客户端连接到BLE服务器而不触发时,我希望读取数据。为此,我希望在自动的BLE_peripheral代码中进行更改,而不是在BLE客户端代码中。
是否有可能从BLE服务器(外设)读取数据而不写入0x01到控制点(触发)?

谢谢你!
D.Vishnu.

mt_dialog.
离线
最后一次露面:6个月2个星期前
工作人员
加入:2015-06-08 34
嗨vishnuatdialog,

嗨vishnuatdialog,

读取过程是一个命令,只有中央可以启动而不是外围设备,在BLE中,外围设备启动数据传输的唯一方法是通过通知来启动数据传输,这意味着您必须使您的特性通知。同样为了使中央从外设获取通知,它必须对通知特性执行写入请求,以便启用通知。因此,它不强制写入控制点,即BLE_APP_PERITWAL具有(控制点只是启用将触发通知的发送的计时器),但必须启用CCC在您想要发送其值的特征上。例如,当使用ble_app_peripheral时需要执行两个写入,以便从外围设备开始获取数据,一个是控制点,另一个写入是启用ADC特性的CCC,稍后是客户端的强制性获取您可以在相应回调的连接时启动触发的通知。

谢谢mt_dialog.

vishnuatdialog
离线
最后一次露面:1年3个星期前
加入:2017-07-25 07:44
你好,对话框,

你好,对话框,
但是,当我使用nRFconnect应用程序作为BLEcentral时,我只写到了控制点(0x01),然后按下启用通知箭头,然后按下读取箭头来接收外围数据。我没有写任何外部命令,使CCC从应用程序读取ADC值。
特性上的CCC是如何启用的,这是通过代码执行的,还是我们应该使用BLE Central来实现?
最后有可能接收外围数据而不从BLE Central写出任何命令?

谢谢你!
D.Vishnu.

mt_dialog.
离线
最后一次露面:6个月2个星期前
工作人员
加入:2015-06-08 34
嗨vishnuatdialog,

嗨vishnuatdialog,

当你按下通知启用按钮时,这就是中央所做的,它写入特征的CCC以便启用指定特征的通知。

如果你不写入CCC特征(即启用通知),中央将无法从该特定特征接收任何东西。

谢谢mt_dialog.

vishnuatdialog
离线
最后一次露面:1年3个星期前
加入:2017-07-25 07:44
你好,对话框,

你好,对话框,
如果我不想写控制点我怎么能自动触发计时器?

mt_dialog.
离线
最后一次露面:6个月2个星期前
工作人员
加入:2015-06-08 34
嗨vishnuatdialog,

嗨vishnuatdialog,

你可以设置一个定时器发出小延迟与设备连接后,并发送一个通知在定时器回调的,或者您可以使用写指示当中央写CCC(为了使通知)和启动一个计时器从那里或者直接发送通知。对于后面的方法,您所要做的就是在接收到CUSTS1_VAL_WRITE_IND时在user_catch_rest_hndl()函数中实现这个实现。

谢谢mt_dialog.