Closed
Description
向消息队列发送消息时调用:
rt_mq_send(&mq, data, data_len);
可发送指定长度的消息。
而在接受时调用:
char buff[MAX_SIZE];
rt_mq_recv(&mq, buff, MAX_SIZE, timeout);
无法取到所发送数据的实际长度,必须自己设计数据结构在data中存放长度,造成编程上的不便以及不必要的开销。
建议给recv增加一个可传出实际消息长度的版本,类似这样:
rt_err_t rt_mq_recv_with_size(rt_mq_t mq,
void *buffer,
rt_size_t size,
rt_size_t *real_size,
rt_int32_t timeout)