⚠️
嗨,...感谢您来论坛。令人兴奋的消息!我们现在正在迁至我们的新论坛平台,将提供更好的功能,并包含在主对话框网站中。所有帖子和帐户都已迁移。我们现在只接受新论坛上的流量 - 请发布任何新线程https://www.dialog-seminile.com/support.。我们将在未来几天修复错误/优化搜索和标记。
7个帖子/ 0新
最后一篇
dmueller.
离线
最后一次露面:3年10个月前
加入:2017-04-12 10:04
BLE堆栈状态

亲爱的对话支持,

是否有一种简单的方法来检查BLE堆栈状态是否是免费的?

我想编写一个程序,一旦发送旧的数值,就会通过蓝牙发送数值。

亲切的问候。

设备:
mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨dmueller,

嗨dmueller,

对不起,但我不太明白,你能澄清吗?

如果您想在帖子的第二行进行描述,您可以使用指示(中央必须确认消息的接收,以便在中央收到指示时,您将获得完成的消息。另一方面,也使用通知,但客户端没有确认应用程序级别的接收。

谢谢mt_dialog.

dmueller.
离线
最后一次露面:3年10个月前
加入:2017-04-12 10:04
嗨mt_dialog,

嗨mt_dialog,

如果我想发送两个字节,则此字节存储在堆栈上。我可以像缓冲区一样填充堆栈。或者这不是真的吗?

我的问题是,我可以通过标志或另一个指示符来认识到这个堆栈/缓冲区是否已满或空白?

是的,我想做。在中央有通知。但我希望服务器能够识别它是否可以发送。

亲切的问候。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨dmueller,

嗨dmueller,

与缓冲区一样交换BLE堆栈是非常简单的,因为它实现了整个BLE堆栈,事情并不是那么简单,并且作为最终用户,您可以与BLE概念接口,而不是堆栈如何处理RX / TX消息,但在底线让我们可以假设我们可以通过通知发送具有2个字节长度长度的特征的值,然后堆栈将与指针队一起队列,该指针将指向该特征数据到18中的指针长度消息缓冲区。因此,如同通知,所以允许拍摄例如在BLE_APP_PERITELAL中实现的自定义配置文件,该应用程序将发送CUSTS1_VAL_IND_REQ(应用程序特定消息),配置文件将发出CUTTC_SEND_EVT_CMD,以将堆栈发送到TX缓冲区在下一个连接间隔中会发生发送。现在,通知不涉及从另一侧的确认(来自连接主机的ACK),但一旦发送Gattc_send_evt_cmd,堆栈将回复该消息,即通知已放入缓冲区中。为了让您知道通知已输入缓冲区,它将与GattC_CMP_EVT和来自GattC_CMP_EVT_HANDLER()回复配置文件将通知应用程序(使用CUSTS1_VAL_NTF_CFM消息)通知已成功输入缓冲区和它将留在下一个连接间隔。您可以在user_catch_rest_hndl()中捕获此消息。

谢谢mt_dialog.

dmueller.
离线
最后一次露面:3年10个月前
加入:2017-04-12 10:04
嗨mt_dialog,

嗨mt_dialog,

谢谢你的答案。不幸的是,这不是我的意思,因为我发送了一些东西,只有在发送某些东西后才会出现。但我也想认识到BLE堆栈中的任何东西。

我想每次发送一个新值,当没有值堆栈时。在Programm的Begin,通常BLE堆栈是oft。我想实施这样的东西:
如果(BLE堆栈中没有什么)
{
struct susts1_val_ntf_req * req = ke_msg_alloc_dyn(custs1_val_ntf_req,task_custs1,task_app,custs1_val_ntf_req,def_cust1_adc_val_1_char_len);

静态UINT16_T样本;
Sample =(Sample <= 0xFFFF)?(样品+ 1):0;

req-> conhdl = app_env-> conhdl;
req-> handle = cust1_idx_adc_val_1_val;
req-> length = def_cust1_adc_val_1_char_len;
memcpy(req->值,和样本,def_cust1_adc_val_1_char_len);
KE_MSG_SEND(REQ);

if(ke_state_get(task_app)== app_connected)
{
//再次设置它,直到控制特性接收到停止命令
timer_used = app_easy_timer(app_peripheral_ctrl_timer_delay,app_adcval1_timer_cb_handler);
}
}

存在一种实现这一目标的方法吗?

亲切的问候。

mt_dialog.
离线
最后一次露面:2个月1周前
职员
加入:2015-06-08 11:34
嗨dmuller,

嗨dmuller,

我不确定我理解这种实现的原因,是的,确认消息一旦通知成功放置在TX缓冲区中,直到连接间隔瞬间出现并且数据被释放,就会发送回到应用程序。您可以尝试使用l2cm_get_nb_buffer_available()函数,该函数将返回低级缓冲区中数据的可用大小。

谢谢mt_dialog.

dmueller.
离线
最后一次露面:3年10个月前
加入:2017-04-12 10:04
嗨mt_dialog,

嗨mt_dialog,

我想在下一个值后发送一个值。在发送PROVOST ONE之前,可能不会发送新值。

非常感谢您的帮助。现在它有效。

亲切的问候。