23#ifndef PROTOCORE_HART_H
24#define PROTOCORE_HART_H
28#if PROTOCORE_ENABLE_HART
38#define HART_DELIM_BACK 0x01
39#define HART_DELIM_STX 0x02
40#define HART_DELIM_ACK 0x06
41#define HART_DELIM_LONG_ADDR 0x80
44#define HARTIP_MSG_REQUEST 0
45#define HARTIP_MSG_RESPONSE 1
46#define HARTIP_MSG_PUBLISH 2
47#define HARTIP_ID_SESSION_INIT 0
48#define HARTIP_ID_SESSION_CLOSE 1
49#define HARTIP_ID_KEEPALIVE 2
50#define HARTIP_ID_TOKEN_PDU 3
51#define HARTIP_HEADER_LEN 8
74 const uint8_t *payload;
101 const uint8_t *frame;
116} HartIpBuildHeaderArgs;
124} HartIpParseHeaderArgs;
157 HartChecksumArgs checksum_args;
158 HartBuildArgs build_args;
159 HartParseArgs parse_args;
160 HartIpBuildHeaderArgs ip_build_header_args;
161 HartIpParseHeaderArgs ip_parse_header_args;
168extern HartVars HartV;
173 void (*
const checksum)(uint8_t *work);
174 void (*
const build)(uint8_t *work);
175 void (*
const parse)(uint8_t *work);
176 void (*
const ip_build_header)(uint8_t *work);
177 void (*
const ip_parse_header)(uint8_t *work);
182void protocore_hart_checksum(uint8_t *work);
183void protocore_hart_build(uint8_t *work);
184void protocore_hart_parse(uint8_t *work);
185void protocore_hart_ip_build_header(uint8_t *work);
186void protocore_hart_ip_parse_header(uint8_t *work);
192static const HartNs Hart __attribute__((unused)) = {
193 .checksum = protocore_hart_checksum,
194 .build = protocore_hart_build,
195 .parse = protocore_hart_parse,
196 .ip_build_header = protocore_hart_ip_build_header,
197 .ip_parse_header = protocore_hart_ip_parse_header,
#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