24#ifndef PROTOCORE_SDI12_H
25#define PROTOCORE_SDI12_H
29#if PROTOCORE_ENABLE_SDI12
37#define SDI12_CRC_POLY 0xA001u
39#define SDI12_CRC_CHARS 3
49 char sensor_version[4];
75} Sdi12BuildIdentifyArgs;
84} Sdi12BuildMeasureArgs;
93} Sdi12BuildConcurrentArgs;
103} Sdi12BuildMeasureAdditionalArgs;
113} Sdi12BuildConcurrentAdditionalArgs;
123} Sdi12BuildContinuousArgs;
131} Sdi12BuildVerifyArgs;
149} Sdi12BuildChangeAddressArgs;
156} Sdi12BuildQueryAddressArgs;
166} Sdi12ParseMeasureArgs;
176} Sdi12ParseValuesArgs;
184} Sdi12ParseIdentifyArgs;
266 Sdi12BuildArgs build_args;
267 Sdi12BuildAckArgs build_ack_args;
268 Sdi12BuildIdentifyArgs build_identify_args;
269 Sdi12BuildMeasureArgs build_measure_args;
270 Sdi12BuildConcurrentArgs build_concurrent_args;
271 Sdi12BuildMeasureAdditionalArgs build_measure_additional_args;
272 Sdi12BuildConcurrentAdditionalArgs build_concurrent_additional_args;
273 Sdi12BuildContinuousArgs build_continuous_args;
274 Sdi12BuildVerifyArgs build_verify_args;
275 Sdi12BuildDataArgs build_data_args;
276 Sdi12BuildChangeAddressArgs build_change_address_args;
277 Sdi12BuildQueryAddressArgs build_query_address_args;
278 Sdi12ParseMeasureArgs parse_measure_args;
279 Sdi12ParseValuesArgs parse_values_args;
280 Sdi12ParseIdentifyArgs parse_identify_args;
281 Sdi12Crc16Args crc16_args;
282 Sdi12CrcEncodeArgs crc_encode_args;
283 Sdi12CheckCrcArgs check_crc_args;
290extern Sdi12Vars Sdi12V;
295 void (*
const build)(uint8_t *work);
296 void (*
const build_ack)(uint8_t *work);
297 void (*
const build_identify)(uint8_t *work);
298 void (*
const build_measure)(uint8_t *work);
299 void (*
const build_concurrent)(uint8_t *work);
300 void (*
const build_measure_additional)(uint8_t *work);
301 void (*
const build_concurrent_additional)(uint8_t *work);
302 void (*
const build_continuous)(uint8_t *work);
303 void (*
const build_verify)(uint8_t *work);
304 void (*
const build_data)(uint8_t *work);
305 void (*
const build_change_address)(uint8_t *work);
306 void (*
const build_query_address)(uint8_t *work);
307 void (*
const parse_measure)(uint8_t *work);
308 void (*
const parse_values)(uint8_t *work);
309 void (*
const parse_identify)(uint8_t *work);
310 void (*
const crc16)(uint8_t *work);
311 void (*
const crc_encode)(uint8_t *work);
312 void (*
const check_crc)(uint8_t *work);
317void protocore_sdi12_build(uint8_t *work);
318void protocore_sdi12_build_ack(uint8_t *work);
319void protocore_sdi12_build_identify(uint8_t *work);
320void protocore_sdi12_build_measure(uint8_t *work);
321void protocore_sdi12_build_concurrent(uint8_t *work);
322void protocore_sdi12_build_measure_additional(uint8_t *work);
323void protocore_sdi12_build_concurrent_additional(uint8_t *work);
324void protocore_sdi12_build_continuous(uint8_t *work);
325void protocore_sdi12_build_verify(uint8_t *work);
326void protocore_sdi12_build_data(uint8_t *work);
327void protocore_sdi12_build_change_address(uint8_t *work);
328void protocore_sdi12_build_query_address(uint8_t *work);
329void protocore_sdi12_parse_measure(uint8_t *work);
330void protocore_sdi12_parse_values(uint8_t *work);
331void protocore_sdi12_parse_identify(uint8_t *work);
332void protocore_sdi12_crc16(uint8_t *work);
333void protocore_sdi12_crc_encode(uint8_t *work);
334void protocore_sdi12_check_crc(uint8_t *work);
340static const Sdi12Ns Sdi12 __attribute__((unused)) = {
341 .build = protocore_sdi12_build,
342 .build_ack = protocore_sdi12_build_ack,
343 .build_identify = protocore_sdi12_build_identify,
344 .build_measure = protocore_sdi12_build_measure,
345 .build_concurrent = protocore_sdi12_build_concurrent,
346 .build_measure_additional = protocore_sdi12_build_measure_additional,
347 .build_concurrent_additional = protocore_sdi12_build_concurrent_additional,
348 .build_continuous = protocore_sdi12_build_continuous,
349 .build_verify = protocore_sdi12_build_verify,
350 .build_data = protocore_sdi12_build_data,
351 .build_change_address = protocore_sdi12_build_change_address,
352 .build_query_address = protocore_sdi12_build_query_address,
353 .parse_measure = protocore_sdi12_parse_measure,
354 .parse_values = protocore_sdi12_parse_values,
355 .parse_identify = protocore_sdi12_parse_identify,
356 .crc16 = protocore_sdi12_crc16,
357 .crc_encode = protocore_sdi12_crc_encode,
358 .check_crc = protocore_sdi12_check_crc,
#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