32#ifndef PROTOCORE_HAAS_MDC_H
33#define PROTOCORE_HAAS_MDC_H
43#define PC_HAAS_MDC_TCP_PORT 5051
45#define PC_HAAS_MDC_STX 0x02
47#define PC_HAAS_MDC_ETB 0x17
49#define PC_HAAS_MDC_PROMPT 0x3E
51#define PC_HAAS_MDC_MAX_FIELDS 8
60 HAAS_Q_SOFTWARE = 101,
63 HAAS_Q_TOOL_CHANGES = 200,
64 HAAS_Q_TOOL_IN_USE = 201,
65 HAAS_Q_POWERON_TIME = 300,
66 HAAS_Q_CUTTING_TIME = 301,
67 HAAS_Q_LAST_CYCLE = 303,
68 HAAS_Q_PREV_CYCLE = 304,
69 HAAS_Q_M30_COUNTER_1 = 402,
70 HAAS_Q_M30_COUNTER_2 = 403,
71 HAAS_Q_PROGRAM_STATUS = 500,
78 const char *field[PC_HAAS_MDC_MAX_FIELDS];
79 size_t field_len[PC_HAAS_MDC_MAX_FIELDS];
100size_t pc_haas_mdc_build_q(
char *buf,
size_t cap, uint16_t qnum);
107size_t pc_haas_mdc_build_var(
char *buf,
size_t cap, uint32_t var);
116bool pc_haas_mdc_parse(
const char *buf,
size_t len, HaasMdcResp *out);
122bool pc_haas_mdc_field(
const HaasMdcResp *r,
size_t idx,
const char **p,
size_t *l);
129bool pc_haas_mdc_value(
const HaasMdcResp *r,
const char **p,
size_t *l);
134bool pc_haas_mdc_is_error(
const HaasMdcResp *r);
142bool pc_haas_mdc_parse_status(
const HaasMdcResp *r, HaasMdcStatus *out);
150bool pc_haas_mdc_parse_macro(
const HaasMdcResp *r, uint32_t *var,
const char **value,
size_t *value_len);
160bool pc_haas_mdc_dprnt_line(
const char *buf,
size_t len,
const char **text,
size_t *text_len);
User-facing configuration for ProtoCore.