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

 

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