RTIDDSMicro-sequence

假如要在系统内的交互一个二进制数据,忽略大小端;可以将数据定义如下
sequence<octet, 255> payload

通过from_array赋值,通过
get_contiguous_buffer获取buffer。
目前已知存在如果二进制定义中间存在0,会导致后续数据为0.
 1 idl
 2 struct message_com {
 3     ...
 4     sequence<octet, 255> payload;
 5 };
 6 
 7 struct com_info {
 8     float x;
 9     float y;
10     float z;
11 };
12 /* Send message */
13 com_info info = {0};
14 message_com msg = {0};
15 
16 DDS_Long len = sizeof(info);
17 msg.payload.maximum(len);
18 msg.payload.length(len);
19 
20 msg.payload.from_array((CDR_Octet *)&info,  len);
21 
22 
23 24 /* Recv message */ 25 com_info info = {0}; 26 memcpy(&info, massage.payload.get_contiguous_buffer(), sizeof(tInfo)); 27

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章