34#ifndef PROTOCORE_DNC_H
35#define PROTOCORE_DNC_H
45enum class DncCode : uint8_t
52enum class DncFlowByte : uint8_t
59enum class DncEiaCode : uint8_t
75uint8_t pc_dnc_iso_to_eia(
char c);
84char pc_dnc_eia_to_iso(uint8_t b);
91uint8_t pc_dnc_iso_add_parity(uint8_t ascii7);
100void pc_dnc_flow_init(DncFlow *f);
107bool pc_dnc_flow_feed(DncFlow *f, uint8_t rx);
110static inline bool pc_dnc_flow_can_send(
const DncFlow *f)
134size_t pc_dnc_encode_block(
const DncCfg *cfg,
const char *line,
size_t line_len, uint8_t *out,
size_t out_cap);
144size_t pc_dnc_encode_marker(
const DncCfg *cfg, uint8_t *out,
size_t out_cap);
150size_t pc_dnc_encode_leader(
const DncCfg *cfg, uint8_t *out,
size_t out_cap);
153enum class DncEvent : uint8_t
174void pc_dnc_decode_init(DncDecoder *d, DncCode code);
188DncEvent pc_dnc_decode_feed(DncDecoder *d, uint8_t wire);
User-facing configuration for ProtoCore.
#define PC_DNC_LINE_MAX
Largest G-code block (one line) the DNC decoder reassembles (PC_ENABLE_DNC).