34#ifndef DETERMINISTICESPASYNCWEBSERVER_DNC_H
35#define DETERMINISTICESPASYNCWEBSERVER_DNC_H
45enum class DncCode : uint8_t
52enum class DncFlowByte : uint8_t
59enum class DncEiaCode : uint8_t
75uint8_t dnc_iso_to_eia(
char c);
84char dnc_eia_to_iso(uint8_t b);
91uint8_t dnc_iso_add_parity(uint8_t ascii7);
100void dnc_flow_init(DncFlow *f);
107bool dnc_flow_feed(DncFlow *f, uint8_t rx);
110static inline bool dnc_flow_can_send(
const DncFlow *f)
134size_t dnc_encode_block(
const DncCfg *cfg,
const char *line,
size_t line_len, uint8_t *out,
size_t out_cap);
144size_t dnc_encode_marker(
const DncCfg *cfg, uint8_t *out,
size_t out_cap);
150size_t dnc_encode_leader(
const DncCfg *cfg, uint8_t *out,
size_t out_cap);
153enum class DncEvent : uint8_t
174void dnc_decode_init(DncDecoder *d, DncCode code);
188DncEvent dnc_decode_feed(DncDecoder *d, uint8_t wire);
User-facing configuration for DeterministicESPAsyncWebServer.
#define DETWS_DNC_LINE_MAX
Largest G-code block (one line) the DNC decoder reassembles (DETWS_ENABLE_DNC).