30#ifndef PROTOCORE_PACKML_H
31#define PROTOCORE_PACKML_H
35#if PROTOCORE_ENABLE_PACKML
45 PACK_ML_STATE_UNDEFINED = 0,
46 PACK_ML_STATE_CLEARING = 1,
47 PACK_ML_STATE_STOPPED = 2,
48 PACK_ML_STATE_STARTING = 3,
49 PACK_ML_STATE_IDLE = 4,
50 PACK_ML_STATE_SUSPENDED = 5,
51 PACK_ML_STATE_EXECUTE = 6,
52 PACK_ML_STATE_STOPPING = 7,
53 PACK_ML_STATE_ABORTING = 8,
54 PACK_ML_STATE_ABORTED = 9,
55 PACK_ML_STATE_HOLDING = 10,
56 PACK_ML_STATE_HELD = 11,
57 PACK_ML_STATE_UNHOLDING = 12,
58 PACK_ML_STATE_SUSPENDING = 13,
59 PACK_ML_STATE_UNSUSPENDING = 14,
60 PACK_ML_STATE_RESETTING = 15,
61 PACK_ML_STATE_COMPLETING = 16,
62 PACK_ML_STATE_COMPLETE = 17
68 PACK_ML_COMMAND_PROTOCORE_NONE = 0,
69 PACK_ML_COMMAND_RESET = 1,
70 PACK_ML_COMMAND_START = 2,
71 PACK_ML_COMMAND_STOP = 3,
72 PACK_ML_COMMAND_HOLD = 4,
73 PACK_ML_COMMAND_UNHOLD = 5,
74 PACK_ML_COMMAND_SUSPEND = 6,
75 PACK_ML_COMMAND_UNSUSPEND = 7,
76 PACK_ML_COMMAND_ABORT = 8,
77 PACK_ML_COMMAND_CLEAR = 9
83 PACK_ML_MODE_PRODUCING = 1,
84 PACK_ML_MODE_MAINTENANCE = 2,
85 PACK_ML_MODE_MANUAL = 3
99PackMlState protocore_packml_command(PackMlState s, PackMlCommand c);
106PackMlState protocore_packml_state_complete(PackMlState s);
109PackMlState protocore_packml_execute_complete(PackMlState s);
112proto_bool protocore_packml_is_acting(PackMlState s);
115proto_bool protocore_packml_command_valid(PackMlState s, PackMlCommand c);
118const char *protocore_packml_state_name(PackMlState s);
121const char *protocore_packml_command_name(PackMlCommand c);
130 PackMlState state_current;
131 PackMlMode unit_mode_current;
132 float mach_speed_actual;
133 uint32_t state_current_ms;
134 uint32_t acc_time_since_reset_ms;
135 uint32_t prod_processed;
136 uint32_t prod_defective;
140void protocore_packml_svc_init(PackMlMode mode);
146proto_bool protocore_packml_svc_command(PackMlCommand c);
153PackMlState protocore_packml_svc_state_complete(
void);
160void protocore_packml_svc_count(
proto_bool defective);
163proto_bool protocore_packml_svc_complete_run(
void);
166proto_bool protocore_packml_svc_set_mode(PackMlMode mode);
169void protocore_packml_svc_set_speed(
float mach_speed);
172PackMlState protocore_packml_svc_state(
void);
175void protocore_packml_svc_status(PackMlStatus *out);
PROTO_ENUM_PACKED
Application protocol spoken on a listener port or connection slot.
#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