34#ifndef PROTOCORE_DDS_H
35#define PROTOCORE_DDS_H
39#if PROTOCORE_ENABLE_DDS
44#define RTPS_SM_PAD 0x01
45#define RTPS_SM_ACKNACK 0x06
46#define RTPS_SM_HEARTBEAT 0x07
47#define RTPS_SM_GAP 0x08
48#define RTPS_SM_INFO_TS 0x09
49#define RTPS_SM_INFO_SRC 0x0c
50#define RTPS_SM_INFO_REPLY_IP4 0x0d
51#define RTPS_SM_INFO_DST 0x0e
52#define RTPS_SM_INFO_REPLY 0x0f
53#define RTPS_SM_DATA 0x15
54#define RTPS_SM_DATA_FRAG 0x16
55#define RTPS_FLAG_ENDIAN 0x01
56#define RTPS_HEADER_LEN 20
57#define RTPS_GUIDPREFIX_LEN 12
68typedef void (*protocore_rtps_submessage_cb)(uint8_t submessage_id, uint8_t flags,
const uint8_t *contents,
69 size_t contents_len,
void *arg);
74 const uint8_t *guid_prefix;
75 const uint8_t *vendor_id;
81 const uint8_t *contents;
82 uint16_t contents_len;
83 uint8_t submessage_id;
104 protocore_rtps_submessage_cb on_submessage;
130 RtpsSubmessageArgs sub;
139extern RtpsVars RtpsV;
144 void (*
const header)(uint8_t *work);
145 void (*
const submessage)(uint8_t *work);
146 void (*
const parse)(uint8_t *work);
151void protocore_rtps_header(uint8_t *work);
152void protocore_rtps_submessage(uint8_t *work);
153void protocore_rtps_parse(uint8_t *work);
159static const RtpsNs Rtps __attribute__((unused)) = {
160 .header = protocore_rtps_header,
161 .submessage = protocore_rtps_submessage,
162 .parse = protocore_rtps_parse,
166extern const uint8_t RTPS_VERSION[2];
#define PROTOCORE_BEGIN_DECLS
Give a header's declarations C linkage, so their symbol names carry no parameter types.
_Bool proto_bool
The truth value.
#define PROTOCORE_END_DECLS