4#ifndef PROTOCORE_UMATI_H
5#define PROTOCORE_UMATI_H
53#define UMATI_NS_URI "http://opcfoundation.org/UA/MachineTool/"
PROTO_ENUM_PACKED
Application protocol spoken on a listener port or connection slot.
#define PROTOCORE_NS_LAYOUT(T,...)
Pin every dispatch slot of a table that is nothing but function pointers.
#define PROTOCORE_NS
Storage for a dispatch table. The const is load bearing.
One linear Axis' live monitoring value (OPC 40501-1 LinearAxisType, common subset).
double actual_position
ActualPosition (mm).
One Channel's live monitoring values (OPC 40501-1 ChannelType, common subset).
double feed_override
FeedOverride (%).
double rapid_override
RapidOverride (%).
const char * active_program
ActiveProgram.Name (the running NC program).
UmatiChannelState state
ChannelState.
MachineTool identification (OPC 40501-1 Identification, subtype of Machinery MachineIdentification).
const char * product_instance_uri
ProductInstanceUri (String) - the unique instance URI.
const char * manufacturer
Manufacturer (LocalizedText -> String).
const char * serial_number
SerialNumber (String).
const char * model
Model (LocalizedText -> String).
const char * software_revision
SoftwareRevision (String).
uint16_t year_of_construction
YearOfConstruction (UInt16, exposed as UInt32).
Dispatch table. Addressed by offset, so the layout is asserted below.
void(* bind)(uint8_t *, const UmatiMachineTool *)
One Spindle's live monitoring values (OPC 40501-1 SpindleType, common subset).
double override_value
OverrideValue (%).
double rotation_speed
RotationSpeed (rpm).
proto_bool is_rotating
IsRotating.
#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
void protocore_umati_bind(uint8_t *work, const UmatiMachineTool *mt)
Bind the MachineTool the resolvers serve. mt must outlive the .
enum PROTO_ENUM_PACKED UmatiChannelState
Channel state (OPC 40501-1 ChannelState). Exposed as Int32; the numeric values follow the companion-s...
uint8_t * protocore_umati_span(void)
The PROTOCORE_UMATI_BORROW bytes this module's state lives in.
PROTOCORE_NS UmatiNs Umati PROTOCORE_UNUSED
Module namespace.
enum PROTO_ENUM_PACKED UmatiOperationMode
MachineTool OperationMode (OPC 40501-1 MachineOperationMode). Exposed as Int32; the numeric values fo...
@ UMATI_CH_RESET
channel reset (no program active).
@ UMATI_CH_WAITING
waiting (e.g. for a synchronization / dwell).
@ UMATI_CH_RUNNING
a program is executing.
@ UMATI_OP_MANUAL
hand / jog operation.
@ UMATI_CH_INTERRUPTED
program interrupted / feed hold.
@ UMATI_OP_OTHER
a mode outside the ones below.
@ UMATI_OP_AUTOMATIC
running a stored program automatically.
@ UMATI_OP_SETUP
set-up / preparation.
@ UMATI_OP_MDA
manual data automatic (single-block MDI).
void protocore_umati_install(uint8_t *work, const UmatiMachineTool *mt)
Convenience: bind mt and register both resolvers on the OPC UA .