4个职位/ 0个新
最后发表
GGQ_in
离线
最后看到:6个月,3天前
加入:2019-07-23 04:41
MTU限制问题,如何更改MTU

DA14580主从设备,我想1秒内发送只是500字节到主设备,使用Nofity还是读好呢?好像都受MTU的限制,MTU要如何更改呢,atts_mtu_exc_resp (uint8_t conidx, struct l2cc_att_mtu_req *点播);这个函数来协商吗?

我用定时器来Nofity发送数据时,我在gattc层使用gattc_set_mtu()和gattc_get_mtu(),也在usr_config更改了马克斯•mtu但是定时器死掉了。

设备:
CYibin
离线
最后看到:7个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

请问你是想在1 s内发送500字节,还是想“一次性“发送500字节?

前者可参考需求方例程的实现://www.wsdof.com/雷电竞官网登录products/dialog-serial-port-service..。

后者才需要用到MTU。MTU也需要主机支持才能修改成功。

GGQ_in
离线
最后看到:6个月,3天前
加入:2019-07-23 04:41
你好,我是想1 s内主机至少能够收到500字节。

你好,我是想1 s内主机至少能够收到500字节。
我现在修改MTU成功了之后,主机同时连接2 - 3个从机,用主机读方式获取数据,定时器最快设置为35岁,连接间隔为7,当其中一个从机断开后,主机就挂了,无法重连和继续读取,这么不稳定的情况如何解决吗?如何检测是否GATTC发生的错误?主机定时读取和读取接收数据如下:

空白test_read_ind_handler(空白)

uint8我;

struct test_env_tag * test_read = PRF_CLIENT_GET_ENV(TASK_GATTC, testh);

(我= 0;我+ +)< (APP_EASY_MAX_ACTIVE_CONNECTION);

testh_send_event_read (&testh_read - > con_info,
app_env[我].conidx,
testh_read - > testh.chars TESTH_LONG_VAL_CHAR .val_hdl
);

ke_timer_set (READ_SEND TASK_APP 35);

Static int gattc_read_ind_handler(ke_msg_id_t)
gattc_read_ind const *param,
ke_task_id_t const dest_id,
ke_task_id_t const src_id)

uint8_t connection_idx = KE_IDX_GET(src_id);

struct test_env * test_env = PRF_CLIENT_GET_ENV(dest_id, testh);

if (testh_env != NULL) //PRF_ERR_UNEXPECTED_LEN . txt

如果(connection_idx = = 0)

printf(“阅读0% s \ r \ n”,param - >价值);

如果(connection_idx = = 1)

printf(“阅读1% s \ r \ n”,param - >价值);

如果(connection_idx = = 2)

printf(“阅读2% s \ r \ n”,param - >价值);


其他的

printf (" read_ind = = NULL \ r \ n”);


如果(testh_env - > testh.svc。shdl = = ATT_INVALID_HANDLE) / /无效

ke_state_set (TASK_TESTH TESTH_IDLE);


返回(KE_MSG_CONSUMED);

CYibin
离线
最后看到:7个月1周前
工作人员
加入:2017-12-14 02:48
你好,

你好,

有一个多链路演示,已发送你qq邮箱