24#ifndef PROTOCORE_LONWORKS_H
25#define PROTOCORE_LONWORKS_H
29#if PROTOCORE_ENABLE_LONWORKS
38#define LON_NV_HDR_LEN 2
39#define LON_NV_TYPE_MASK 0xC0
40#define LON_NV_SEL_HI_MASK 0x3F
41#define LON_MSG_NV_UPDATE 0x80
42#define LON_MSG_NV_POLL 0x81
43#define LON_NV_SELECTOR_MAX 0x3FFF
78} LonworksSnvtTempEncodeArgs;
84} LonworksSnvtTempDecodeArgs;
92} LonworksSnvtSwitchEncodeArgs;
100} LonworksSnvtSwitchDecodeArgs;
139 LonworksBuildNvArgs build_nv_args;
140 LonworksParseNvArgs parse_nv_args;
141 LonworksSnvtTempEncodeArgs snvt_temp_encode_args;
142 LonworksSnvtTempDecodeArgs snvt_temp_decode_args;
143 LonworksSnvtSwitchEncodeArgs snvt_switch_encode_args;
144 LonworksSnvtSwitchDecodeArgs snvt_switch_decode_args;
151extern LonworksVars LonworksV;
156 void (*
const build_nv)(uint8_t *work);
157 void (*
const parse_nv)(uint8_t *work);
158 void (*
const snvt_temp_encode)(uint8_t *work);
159 void (*
const snvt_temp_decode)(uint8_t *work);
160 void (*
const snvt_switch_encode)(uint8_t *work);
161 void (*
const snvt_switch_decode)(uint8_t *work);
166void protocore_lonworks_build_nv(uint8_t *work);
167void protocore_lonworks_parse_nv(uint8_t *work);
168void protocore_lonworks_snvt_temp_encode(uint8_t *work);
169void protocore_lonworks_snvt_temp_decode(uint8_t *work);
170void protocore_lonworks_snvt_switch_encode(uint8_t *work);
171void protocore_lonworks_snvt_switch_decode(uint8_t *work);
177static const LonworksNs Lonworks __attribute__((unused)) = {
178 .build_nv = protocore_lonworks_build_nv,
179 .parse_nv = protocore_lonworks_parse_nv,
180 .snvt_temp_encode = protocore_lonworks_snvt_temp_encode,
181 .snvt_temp_decode = protocore_lonworks_snvt_temp_decode,
182 .snvt_switch_encode = protocore_lonworks_snvt_switch_encode,
183 .snvt_switch_decode = protocore_lonworks_snvt_switch_decode,
#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