我正在尝试创建一个作为串行端口连接的服务器的应用程序。为此,我正在创建具有两个特征的自定义配置文件:
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_PERITWAL具有以下功能,用户应从中央侧写入控制点特性,一旦它在外围设备中写入HANDLER USER_CUSTS1_CTRL_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(服务器)需要执行以知道是否已启用通知或不由客户端?
谢谢,
贾斯汀
justinturley,
是的,您可以使用AttMDB_Att_Get_Value()函数用Notify属性读取特性,并检查返回的值是否等于Prf_cli_start_ntf。如果这意味着中央启用了该特性,您还会在中央写入您的通知特性时对您的应用程序进行指示,请检查下一篇文章http://support.dialog-semicondiondiondum/bug-report-multi-periodic -appeas ...。
谢谢mt_dialog.