📄 emc.hh
字号:
// For internal NML/CMS use only. void update(CMS * cms);};class EMC_MOTION_ABORT:public EMC_MOTION_CMD_MSG { public: EMC_MOTION_ABORT():EMC_MOTION_CMD_MSG(EMC_MOTION_ABORT_TYPE, sizeof(EMC_MOTION_ABORT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_MOTION_SET_AOUT:public EMC_MOTION_CMD_MSG { public: EMC_MOTION_SET_AOUT():EMC_MOTION_CMD_MSG(EMC_MOTION_SET_AOUT_TYPE, sizeof(EMC_MOTION_SET_AOUT)) { }; // For internal NML/CMS use only. void update(CMS * cms); unsigned char index; // which to set double start; // value at start double end; // value at end unsigned char now; // wether command is imediate or synched with motion};class EMC_MOTION_SET_DOUT:public EMC_MOTION_CMD_MSG { public: EMC_MOTION_SET_DOUT():EMC_MOTION_CMD_MSG(EMC_MOTION_SET_DOUT_TYPE, sizeof(EMC_MOTION_SET_DOUT)) { }; // For internal NML/CMS use only. void update(CMS * cms); unsigned char index; // which to set unsigned char start; // binary value at start unsigned char end; // binary value at end unsigned char now; // wether command is imediate or synched with motion};// EMC_MOTION status base classclass EMC_MOTION_STAT_MSG:public RCS_STAT_MSG { public: EMC_MOTION_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;};// number of axes in EMC_MOTION_STAT class#define EMC_AXIS_MAX 8class EMC_MOTION_STAT:public EMC_MOTION_STAT_MSG { public: EMC_MOTION_STAT():EMC_MOTION_STAT_MSG(EMC_MOTION_STAT_TYPE, sizeof(EMC_MOTION_STAT)) { }; // For internal NML/CMS use only. void update(CMS * cms); // aggregate of motion-related status classes EMC_TRAJ_STAT traj; EMC_AXIS_STAT axis[EMC_AXIS_MAX]; int debug; // copy of EMC_DEBUG global};// declarations for EMC_TASK classes// EMC_TASK command base classclass EMC_TASK_CMD_MSG:public RCS_CMD_MSG { public: EMC_TASK_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_INIT:public EMC_TASK_CMD_MSG { public: EMC_TASK_INIT():EMC_TASK_CMD_MSG(EMC_TASK_INIT_TYPE, sizeof(EMC_TASK_INIT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_HALT:public EMC_TASK_CMD_MSG { public: EMC_TASK_HALT():EMC_TASK_CMD_MSG(EMC_TASK_HALT_TYPE, sizeof(EMC_TASK_HALT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_ABORT:public EMC_TASK_CMD_MSG { public: EMC_TASK_ABORT():EMC_TASK_CMD_MSG(EMC_TASK_ABORT_TYPE, sizeof(EMC_TASK_ABORT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_SET_MODE:public EMC_TASK_CMD_MSG { public: EMC_TASK_SET_MODE():EMC_TASK_CMD_MSG(EMC_TASK_SET_MODE_TYPE, sizeof(EMC_TASK_SET_MODE)) { }; // For internal NML/CMS use only. void update(CMS * cms); enum EMC_TASK_MODE_ENUM mode;};class EMC_TASK_SET_STATE:public EMC_TASK_CMD_MSG { public: EMC_TASK_SET_STATE():EMC_TASK_CMD_MSG(EMC_TASK_SET_STATE_TYPE, sizeof(EMC_TASK_SET_STATE)) { }; // For internal NML/CMS use only. void update(CMS * cms); enum EMC_TASK_STATE_ENUM state;};class EMC_TASK_PLAN_OPEN:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_OPEN():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_OPEN_TYPE, sizeof(EMC_TASK_PLAN_OPEN)) { }; // For internal NML/CMS use only. void update(CMS * cms); char file[LINELEN];};class EMC_TASK_PLAN_RUN:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_RUN():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_RUN_TYPE, sizeof(EMC_TASK_PLAN_RUN)) { }; // For internal NML/CMS use only. void update(CMS * cms); int line; // line to run from; 0 or 1 means from start, // negative means run through to verify};class EMC_TASK_PLAN_READ:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_READ():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_READ_TYPE, sizeof(EMC_TASK_PLAN_READ)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_PLAN_EXECUTE:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_EXECUTE():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_EXECUTE_TYPE, sizeof(EMC_TASK_PLAN_EXECUTE)) { }; // For internal NML/CMS use only. void update(CMS * cms); char command[LINELEN];};class EMC_TASK_PLAN_PAUSE:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_PAUSE():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_PAUSE_TYPE, sizeof(EMC_TASK_PLAN_PAUSE)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_PLAN_STEP:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_STEP():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_STEP_TYPE, sizeof(EMC_TASK_PLAN_STEP)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_PLAN_RESUME:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_RESUME():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_RESUME_TYPE, sizeof(EMC_TASK_PLAN_RESUME)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_PLAN_END:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_END():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_END_TYPE, sizeof(EMC_TASK_PLAN_END)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_PLAN_CLOSE:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_CLOSE():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_CLOSE_TYPE, sizeof(EMC_TASK_PLAN_CLOSE)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_PLAN_INIT:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_INIT():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_INIT_TYPE, sizeof(EMC_TASK_PLAN_INIT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TASK_PLAN_SYNCH:public EMC_TASK_CMD_MSG { public: EMC_TASK_PLAN_SYNCH():EMC_TASK_CMD_MSG(EMC_TASK_PLAN_SYNCH_TYPE, sizeof(EMC_TASK_PLAN_SYNCH)) { }; // For internal NML/CMS use only. void update(CMS * cms);};// EMC_TASK status base classclass EMC_TASK_STAT_MSG:public RCS_STAT_MSG { public: EMC_TASK_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_TASK_STAT:public EMC_TASK_STAT_MSG { public: EMC_TASK_STAT(); // For internal NML/CMS use only. void update(CMS * cms); enum EMC_TASK_MODE_ENUM mode; // EMC_TASK_MODE_MANUAL, etc. enum EMC_TASK_STATE_ENUM state; // EMC_TASK_STATE_ESTOP, etc. enum EMC_TASK_EXEC_ENUM execState; // EMC_DONE,WAITING_FOR_MOTION, etc. enum EMC_TASK_INTERP_ENUM interpState; // EMC_IDLE,READING,PAUSED,WAITING int motionLine; // line motion is executing-- may lag int currentLine; // line currently executing int readLine; // line interpreter has read to char file[LINELEN]; char command[LINELEN]; EmcPose origin; // origin, in user units, currently active EmcPose toolOffset; // tool offset, in general pose form int activeGCodes[ACTIVE_G_CODES]; int activeMCodes[ACTIVE_M_CODES]; double activeSettings[ACTIVE_SETTINGS]; CANON_UNITS programUnits; // CANON_UNITS_INCHES,MM,CM int interpreter_errcode; // return value from rs274ngc function // (only useful for new interpreter.)};// declarations for EMC_TOOL classes// EMC_TOOL command base classclass EMC_TOOL_CMD_MSG:public RCS_CMD_MSG { public: EMC_TOOL_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TOOL_INIT:public EMC_TOOL_CMD_MSG { public: EMC_TOOL_INIT():EMC_TOOL_CMD_MSG(EMC_TOOL_INIT_TYPE, sizeof(EMC_TOOL_INIT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TOOL_HALT:public EMC_TOOL_CMD_MSG { public: EMC_TOOL_HALT():EMC_TOOL_CMD_MSG(EMC_TOOL_HALT_TYPE, sizeof(EMC_TOOL_HALT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TOOL_ABORT:public EMC_TOOL_CMD_MSG { public: EMC_TOOL_ABORT():EMC_TOOL_CMD_MSG(EMC_TOOL_ABORT_TYPE, sizeof(EMC_TOOL_ABORT)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TOOL_PREPARE:public EMC_TOOL_CMD_MSG { public: EMC_TOOL_PREPARE():EMC_TOOL_CMD_MSG(EMC_TOOL_PREPARE_TYPE, sizeof(EMC_TOOL_PREPARE)) { }; // For internal NML/CMS use only. void update(CMS * cms); int tool;};class EMC_TOOL_LOAD:public EMC_TOOL_CMD_MSG { public: EMC_TOOL_LOAD():EMC_TOOL_CMD_MSG(EMC_TOOL_LOAD_TYPE, sizeof(EMC_TOOL_LOAD)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TOOL_UNLOAD:public EMC_TOOL_CMD_MSG { public: EMC_TOOL_UNLOAD():EMC_TOOL_CMD_MSG(EMC_TOOL_UNLOAD_TYPE, sizeof(EMC_TOOL_UNLOAD)) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TOOL_LOAD_TOOL_TABLE:public EMC_TOOL_CMD_MSG { public: EMC_TOOL_LOAD_TOOL_TABLE():EMC_TOOL_CMD_MSG (EMC_TOOL_LOAD_TOOL_TABLE_TYPE, sizeof(EMC_TOOL_LOAD_TOOL_TABLE)) { }; // For internal NML/CMS use only. void update(CMS * cms); char file[LINELEN]; // name of tool table, empty means default};class EMC_TOOL_SET_OFFSET:public EMC_TOOL_CMD_MSG { public: EMC_TOOL_SET_OFFSET():EMC_TOOL_CMD_MSG(EMC_TOOL_SET_OFFSET_TYPE, sizeof(EMC_TOOL_SET_OFFSET)) { }; // For internal NML/CMS use only. void update(CMS * cms); int tool; double length; double diameter;};// EMC_TOOL status base classclass EMC_TOOL_STAT_MSG:public RCS_STAT_MSG { public: EMC_TOOL_STAT_MSG(NMLTYPE t, size_t s):RCS_STAT_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_TOOL_STAT:public EMC_TOOL_STAT_MSG { public: EMC_TOOL_STAT(); // For internal NML/CMS use only. void update(CMS * cms); EMC_TOOL_STAT operator =(EMC_TOOL_STAT s); // need this for [] members int toolPrepped; // tool ready for loading, 0 is no tool int toolInSpindle; // tool loaded, 0 is no tool CANON_TOOL_TABLE toolTable[CANON_TOOL_MAX + 1];};// EMC_AUX type declarations// EMC_AUX command base classclass EMC_AUX_CMD_MSG:public RCS_CMD_MSG { public: EMC_AUX_CMD_MSG(NMLTYPE t, size_t s):RCS_CMD_MSG(t, s) { }; // For internal NML/CMS use only. void update(CMS * cms);};class EMC_AUX_INIT:public EMC_AUX_CMD_MSG { public: EMC_AUX_INIT():EMC_AUX_CMD_MSG(EMC_AUX_INIT_TYPE, sizeof(EMC_AUX_INIT)) { }; // For internal
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -