📄 emc_nml.hh
字号:
double aout[EMC_AUX_MAX_AOUT]; // digital output readings double ain[EMC_AUX_MAX_AIN]; // digital input readings};// EMC_SPINDLE type declarations// EMC_SPINDLE command base classclass EMC_SPINDLE_CMD_MSG:public RCS_CMD_MSG { public: EMC_SPINDLE_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_SPINDLE_INIT:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_INIT():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_INIT_TYPE, sizeof(EMC_SPINDLE_INIT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_SPINDLE_HALT:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_HALT():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_HALT_TYPE, sizeof(EMC_SPINDLE_HALT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_SPINDLE_ABORT:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_ABORT():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_ABORT_TYPE, sizeof(EMC_SPINDLE_ABORT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_SPINDLE_ON:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_ON():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_ON_TYPE, sizeof(EMC_SPINDLE_ON)), speed(0), factor(0), xoffset(0) { }; // For internal NML/CMS use only. void update(CMS * cms); double speed; // commanded speed in RPMs or maximum speed for CSS double factor; // Zero for constant RPM. numerator of speed for CSS double xoffset; // X axis offset compared to center of rotation, for CSS};class EMC_SPINDLE_OFF:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_OFF():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_OFF_TYPE, sizeof(EMC_SPINDLE_OFF)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_SPINDLE_FORWARD:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_FORWARD():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_FORWARD_TYPE, sizeof(EMC_SPINDLE_FORWARD)) { }; // For internal NML/CMS use only. void update(CMS * cms); double speed; // commanded speed in RPMs};class EMC_SPINDLE_REVERSE:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_REVERSE():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_REVERSE_TYPE, sizeof(EMC_SPINDLE_REVERSE)) { }; // For internal NML/CMS use only. void update(CMS * cms); double speed; // commanded speed in RPMs};class EMC_SPINDLE_STOP:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_STOP():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_STOP_TYPE, sizeof(EMC_SPINDLE_STOP)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_SPINDLE_INCREASE:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_INCREASE():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_INCREASE_TYPE, sizeof (EMC_SPINDLE_INCREASE)) { }; // For internal NML/CMS use only. void update(CMS * cms); double speed; // commanded speed in RPMs};class EMC_SPINDLE_DECREASE:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_DECREASE():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_DECREASE_TYPE, sizeof (EMC_SPINDLE_DECREASE)) { }; // For internal NML/CMS use only. void update(CMS * cms); double speed; // commanded speed in RPMs};class EMC_SPINDLE_CONSTANT:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_CONSTANT():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_CONSTANT_TYPE, sizeof (EMC_SPINDLE_CONSTANT)) { }; // For internal NML/CMS use only. void update(CMS * cms); double speed; // commanded speed in RPMs};class EMC_SPINDLE_BRAKE_RELEASE:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_BRAKE_RELEASE():EMC_SPINDLE_CMD_MSG (EMC_SPINDLE_BRAKE_RELEASE_TYPE, sizeof(EMC_SPINDLE_BRAKE_RELEASE)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_SPINDLE_BRAKE_ENGAGE:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_BRAKE_ENGAGE():EMC_SPINDLE_CMD_MSG (EMC_SPINDLE_BRAKE_ENGAGE_TYPE, sizeof(EMC_SPINDLE_BRAKE_ENGAGE)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_SPINDLE_ENABLE:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_ENABLE():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_ENABLE_TYPE, sizeof(EMC_SPINDLE_ENABLE)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_SPINDLE_DISABLE:public EMC_SPINDLE_CMD_MSG { public: EMC_SPINDLE_DISABLE():EMC_SPINDLE_CMD_MSG(EMC_SPINDLE_DISABLE_TYPE, sizeof(EMC_SPINDLE_DISABLE)) { }; // For internal NML/CMS use only. void update(CMS * cms);};// EMC_COOLANT type declarations// EMC_COOLANT command base classclass EMC_COOLANT_CMD_MSG:public RCS_CMD_MSG { public: EMC_COOLANT_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_COOLANT_INIT:public EMC_COOLANT_CMD_MSG { public: EMC_COOLANT_INIT():EMC_COOLANT_CMD_MSG(EMC_COOLANT_INIT_TYPE, sizeof(EMC_COOLANT_INIT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_COOLANT_HALT:public EMC_COOLANT_CMD_MSG { public: EMC_COOLANT_HALT():EMC_COOLANT_CMD_MSG(EMC_COOLANT_HALT_TYPE, sizeof(EMC_COOLANT_HALT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_COOLANT_ABORT:public EMC_COOLANT_CMD_MSG { public: EMC_COOLANT_ABORT():EMC_COOLANT_CMD_MSG(EMC_COOLANT_ABORT_TYPE, sizeof(EMC_COOLANT_ABORT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_COOLANT_MIST_ON:public EMC_COOLANT_CMD_MSG { public: EMC_COOLANT_MIST_ON():EMC_COOLANT_CMD_MSG(EMC_COOLANT_MIST_ON_TYPE, sizeof(EMC_COOLANT_MIST_ON)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_COOLANT_MIST_OFF:public EMC_COOLANT_CMD_MSG { public: EMC_COOLANT_MIST_OFF():EMC_COOLANT_CMD_MSG(EMC_COOLANT_MIST_OFF_TYPE, sizeof (EMC_COOLANT_MIST_OFF)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_COOLANT_FLOOD_ON:public EMC_COOLANT_CMD_MSG { public: EMC_COOLANT_FLOOD_ON():EMC_COOLANT_CMD_MSG(EMC_COOLANT_FLOOD_ON_TYPE, sizeof (EMC_COOLANT_FLOOD_ON)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_COOLANT_FLOOD_OFF:public EMC_COOLANT_CMD_MSG { public: EMC_COOLANT_FLOOD_OFF():EMC_COOLANT_CMD_MSG(EMC_COOLANT_FLOOD_OFF_TYPE, sizeof (EMC_COOLANT_FLOOD_OFF)) { }; // For internal NML/CMS use only. void update(CMS * cms);};// EMC_COOLANT status base classclass EMC_COOLANT_STAT_MSG:public RCS_STAT_MSG { public: EMC_COOLANT_STAT_MSG(NMLTYPE t, size_t s):RCS_STAT_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_COOLANT_STAT:public EMC_COOLANT_STAT_MSG { public: EMC_COOLANT_STAT(); // For internal NML/CMS use only. void update(CMS * cms); int mist; // 0 off, 1 on int flood; // 0 off, 1 on};// EMC_LUBE type declarations// EMC_LUBE command base classclass EMC_LUBE_CMD_MSG:public RCS_CMD_MSG { public: EMC_LUBE_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_LUBE_INIT:public EMC_LUBE_CMD_MSG { public: EMC_LUBE_INIT():EMC_LUBE_CMD_MSG(EMC_LUBE_INIT_TYPE, sizeof(EMC_LUBE_INIT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_LUBE_HALT:public EMC_LUBE_CMD_MSG { public: EMC_LUBE_HALT():EMC_LUBE_CMD_MSG(EMC_LUBE_HALT_TYPE, sizeof(EMC_LUBE_HALT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_LUBE_ABORT:public EMC_LUBE_CMD_MSG { public: EMC_LUBE_ABORT():EMC_LUBE_CMD_MSG(EMC_LUBE_ABORT_TYPE, sizeof(EMC_LUBE_ABORT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_LUBE_ON:public EMC_LUBE_CMD_MSG { public: EMC_LUBE_ON():EMC_LUBE_CMD_MSG(EMC_LUBE_ON_TYPE, sizeof(EMC_LUBE_ON)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_LUBE_OFF:public EMC_LUBE_CMD_MSG { public: EMC_LUBE_OFF():EMC_LUBE_CMD_MSG(EMC_LUBE_OFF_TYPE, sizeof(EMC_LUBE_OFF)) { }; // For internal NML/CMS use only. void update(CMS * cms);};// EMC_LUBE status base classclass EMC_LUBE_STAT_MSG:public RCS_STAT_MSG { public: EMC_LUBE_STAT_MSG(NMLTYPE t, size_t s):RCS_STAT_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_LUBE_STAT:public EMC_LUBE_STAT_MSG { public: EMC_LUBE_STAT(); // For internal NML/CMS use only. void update(CMS * cms); int on; // 0 off, 1 on int level; // 0 low, 1 okay};// EMC IO configuration classesclass EMC_SET_DIO_INDEX:public RCS_CMD_MSG { public: EMC_SET_DIO_INDEX():RCS_CMD_MSG(EMC_SET_DIO_INDEX_TYPE, sizeof(EMC_SET_DIO_INDEX)) { }; // For internal NML/CMS use only. void update(CMS * cms); int value; // one of enum EMC_SET_DIO_INDEX_XXX int index; // index, 0..max};class EMC_SET_AIO_INDEX:public RCS_CMD_MSG { public: EMC_SET_AIO_INDEX():RCS_CMD_MSG(EMC_SET_AIO_INDEX_TYPE, sizeof(EMC_SET_AIO_INDEX)) { }; // For internal NML/CMS use only. void update(CMS * cms); int value; // one of enum EMC_SET_AIO_INDEX_XXX int index; // index, 0..max};// EMC_IO is aggregate of all EMC IO-related status classes// EMC_IO command base classclass EMC_IO_CMD_MSG:public RCS_CMD_MSG { public: EMC_IO_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_IO_INIT:public EMC_IO_CMD_MSG { public: EMC_IO_INIT():EMC_IO_CMD_MSG(EMC_IO_INIT_TYPE, sizeof(EMC_IO_INIT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_IO_HALT:public EMC_IO_CMD_MSG { public: EMC_IO_HALT():EMC_IO_CMD_MSG(EMC_IO_HALT_TYPE, sizeof(EMC_IO_HALT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_IO_ABORT:public EMC_IO_CMD_MSG { public: EMC_IO_ABORT():EMC_IO_CMD_MSG(EMC_IO_ABORT_TYPE, sizeof(EMC_IO_ABORT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_IO_SET_CYCLE_TIME:public EMC_IO_CMD_MSG { public: EMC_IO_SET_CYCLE_TIME():EMC_IO_CMD_MSG(EMC_IO_SET_CYCLE_TIME_TYPE, sizeof(EMC_IO_SET_CYCLE_TIME)) { }; // For internal NML/CMS use only. void update(CMS * cms); double cycleTime;};// EMC_IO status base classclass EMC_IO_STAT_MSG:public RCS_STAT_MSG { public: EMC_IO_STAT_MSG(NMLTYPE t, size_t s):RCS_STAT_MSG(t, s) { heartbeat = 0; }; // For internal NML/CMS use only. void update(CMS * cms); unsigned long int heartbeat;};class EMC_IO_STAT:public EMC_IO_STAT_MSG { public: EMC_IO_STAT():EMC_IO_STAT_MSG(EMC_IO_STAT_TYPE, sizeof(EMC_IO_STAT)) { }; // For internal NML/CMS use only. void update(CMS * cms); // top-level stuff double cycleTime; int debug; // copy of EMC_DEBUG global // aggregate of IO-related status classes EMC_TOOL_STAT tool; EMC_COOLANT_STAT coolant; EMC_AUX_STAT aux; EMC_LUBE_STAT lube;};// EMC is aggregate of EMC_TASK, EMC_TRAJ, EMC_IO, etc.// EMC command base classclass EMC_CMD_MSG:public RCS_CMD_MSG { public: EMC_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_INIT:public EMC_CMD_MSG { public: EMC_INIT():EMC_CMD_MSG(EMC_INIT_TYPE, sizeof(EMC_INIT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_HALT:public EMC_CMD_MSG { public: EMC_HALT():EMC_CMD_MSG(EMC_HALT_TYPE, sizeof(EMC_HALT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_ABORT:public EMC_CMD_MSG { public: EMC_ABORT():EMC_CMD_MSG(EMC_ABORT_TYPE, sizeof(EMC_ABORT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};// EMC status base classclass EMC_STAT_MSG:public RCS_STAT_MSG { public: EMC_STAT_MSG(NMLTYPE t, size_t s):RCS_STAT_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_STAT:public EMC_STAT_MSG { public: EMC_STAT(); // For internal NML/CMS use only. void update(CMS * cms); // the top-level EMC_TASK status class EMC_TASK_STAT task; // subordinate status classes EMC_MOTION_STAT motion; EMC_IO_STAT io; int debug; // copy of EMC_DEBUG global};/* Declarations of EMC status class implementations, for major subsystems. These are defined in the appropriate main() files, and referenced by code in other files to get EMC status. */#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -