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

亲爱的对话支持,

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

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

亲切的问候。

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

嗨dmueller,

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

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

谢谢mt_dialog.

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

嗨mt_dialog,

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

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

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

亲切的问候。

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

嗨dmueller,

处理BLE堆栈缓冲区一样很simplistic since it implements the entire BLE stack, things are not that simple and as an end user you are interfacing with the BLE concepts and not how the stack handles the RX/TX messages, but in the bottom line lets assume that we can, if you would like to send the value of a characteristic that has 2 bytes length via a notification then the stack will queue that message along with the pointer which it will be pointing to that characteristics data into a 18 length message buffer. So in case of a notification, lets take for example the custom profile which is implemented in the ble_app_peripheral, the application will send the CUSTS1_VAL_IND_REQ (application specific message) and the profile will issue a GATTC_SEND_EVT_CMD that will signal the stack to place into the TX buffer that a transmition is going to occur in the next connection interval. Now the notifications dont involve a confirmation from the other side (ACK from the master of the connection), but as soon as you send the GATTC_SEND_EVT_CMD the stack will reply with a confirmation message that the notification has been placed into the buffer. In order for the stack to let you know that the notification has entered the buffer it will reply with a GATTC_CMP_EVT and from the the gattc_cmp_evt_handler() the profile will notify the application (with a CUSTS1_VAL_NTF_CFM message) that the notification has succesfully entered the buffer and it will leave on the next connection interval. You can catch this message in the 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);
}
}

Exists a way to implement this?

亲切的问候。

mt_dialog.
离线
最后一次露面:2个月2周前
职员
加入: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之前,可能不会发送新值。

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

亲切的问候。