我正在尝试创建一个作为串行端口连接的服务器的应用程序。为此,我正在创建具有两个特征的自定义配置文件:
Tx:将来自服务器的1字节的数据发送到客户端。
Rx:将客户端发送到服务器的1字节数据。
我跟踪了教程4(创建自定义配置文件),但它只介绍了如何创建可以写入的特征。
显然,TX需要读取,但似乎无法找到如何从网站或示例项目中从特征读取的任何示例。
我也不能使用Sample128,因为为SDK 3设计,我正在使用SDK 5。
你能指出一些例子吗?
谢谢。
设备:
嗨Jamartin,
通常用于发射,使用通知特性,例如服务器端中的DSP应用程序它使用通知才能将数据发送到中央,也可以看一下App_ble_Peripheral项目,它也使用通知的特征来将数据发送到中央。
谢谢mt_dialog.
我已经审查了BLE_APP_PERITIVELAL示例,它有许多读取+通知特征定义。然而,不幸的是,每个特征的处理函数都是空的。所以我可以看到需要写的函数,但我不确定如何开始向客户发送数据。(临时使用iOS上的LightBlue)。由于当前代码是,尝试从特征读取返回“无值”。在处理程序函数中需要做些什么来向客户发送数据?我必须与内核进行互动吗?我是否能够一次发送1个字节,或者内核等到更多数据可用,并在多个字节的数据包中向客户端发送数据?
如此新的,将非常感谢详细的解释或示例。
嗨Jamartin,
ble_app_peripheral具有以下功能,用户应该从中央侧写入控制点特性,一旦它在外设中写入handler user_custs1_ctrl_wr_wr_wr_wr_wr_wr_ind_handler()将被触发将触发所写的指定特征的应用程序。该函数将触发计时器,当时间经过计时器的处理程序时,将被调用app_adcval1_timer_cb_handler()。定时器处理程序将分配通知消息CUSTS1_VAL_NTF_REQ,该消息包括要发送到中央的数据并将其发送到CUSTS1配置文件。来自Custs1_Task.c的Custs1_val_ntf_req_handler()将处理该消息,并将Notification命令发送到堆栈,从而向中央发送。为了获得这些通知的中心需要启用它们。我希望以上解释足以让你开始。
谢谢mt_dialog.
谢谢,这非常有帮助。我会看看我是否可以修改BLE_APP_PERITELAL项目以满足我的需求。
你好,
我有一个类似的问题,这个线程回答了一部分,所以谢谢你。我还想更多地了解通知操作。
我知道中央(客户)设备必须启用通知以允许服务器推送数据。是否有检查I(服务器)需要执行以知道是否已启用通知由客户端?
谢谢,
贾斯汀
贾斯蒂堡,
是的,您可以使用AttMDB_Att_Get_Value()函数用Notify属性读取特性,并检查返回的值是否等于prf_cli_start_ntf。如果这意味着中央已经启用了特征,您还可以在中央写入您的通知特性时对您的应用程序进行指示,请检查下一篇文章http://support.dialog-semicondiondiondum/bug-report-multi-periodic -appeas ...。
谢谢mt_dialog.