⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xemc.cc

📁 CNC 的开放码,EMC2 V2.2.8版
💻 CC
📖 第 1 页 / 共 5 页
字号:
  if (done) {    XtVaGetValues(toolSetOffsetTool, XtNstring, &str1, NULL);    XtVaGetValues(toolSetOffsetLength, XtNstring, &str2, NULL);    XtVaGetValues(toolSetOffsetDiameter, XtNstring, &str3, NULL);    if (1 == sscanf(str1, "%d", &tool) &&        1 == sscanf(str2, "%lf", &length) &&        1 == sscanf(str3, "%lf", &diameter)) {      sendToolSetOffset(tool, length, diameter);    }  }  XtPopdown(toolSetOffsetShell);}static void toolSetOffsetUpAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  char string[256];  sprintf(string, "%d", emcStatus->io.tool.toolInSpindle);  XtVaSetValues(toolSetOffsetTool, XtNstring, string, NULL);  sprintf(string, "%f",          emcStatus->motion.traj.actualPosition.tran.z -          emcStatus->task.origin.tran.z);  XtVaSetValues(toolSetOffsetLength, XtNstring, string, NULL);  XtVaSetValues(toolSetOffsetDiameter, XtNstring, "0.0", NULL);  dialogPopup(NULL, toolSetOffsetShell, NULL);  // trap window kill  XSetWMProtocols(XtDisplay(topLevel), XtWindow(toolSetOffsetShell), &killAtom, 1);}static Pixel toolSetOffsetFormBorderColor;static int toolSetOffsetReturnIsDone = 1;static void toolSetOffsetReturnAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  if (toolSetOffsetReturnIsDone) {    toolSetOffsetDoDone(1);  }  else {    toolSetOffsetDoDone(0);  }}static void toolSetOffsetDoneCB(Widget w, XtPointer client_data, XtPointer call_data){  toolSetOffsetDoDone(1);}static void toolSetOffsetCancelCB(Widget w, XtPointer client_data, XtPointer call_data){  toolSetOffsetDoDone(0);}static void toolSetOffsetTabAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  if (toolSetOffsetReturnIsDone) {    setBorderColor(toolSetOffsetDone, toolSetOffsetFormBorderColor);    setBorderColor(toolSetOffsetCancel, pixelRed);    toolSetOffsetReturnIsDone = 0;  }  else {    setBorderColor(toolSetOffsetDone, pixelRed);    setBorderColor(toolSetOffsetCancel, toolSetOffsetFormBorderColor);    toolSetOffsetReturnIsDone = 1;  }}static void doPosOffsetDone(){  String string;  char cmd[256];  double val;  string = XawDialogGetValueString(posOffsetDialog);  if (1 == sscanf(string, "%lf", &val)) {    // send MDI command    // FIXME-- this RS-274-NGC specific; need to add NML way to do this    sprintf(cmd, "G92%s%f\n",            activeAxis == 0 ? "X" :            activeAxis == 1 ? "Y" :            activeAxis == 2 ? "Z" : "X",            val);    sendMdiCmd(cmd);  }  XtPopdown(posOffsetShell);}static void posOffsetUpAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  if (w == posLabel[0]) {    activeAxis = 0;  }  else if (w == posLabel[1]) {    activeAxis = 1;  }  else if (w == posLabel[2]) {    activeAxis = 2;  }  XtVaSetValues(posOffsetDialog, XtNvalue, "0.0", NULL);  dialogPopup(NULL, posOffsetShell, NULL);  // trap window kill  XSetWMProtocols(XtDisplay(topLevel), XtWindow(posOffsetShell), &killAtom, 1);}static void posOffsetReturnAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  doPosOffsetDone();}static void doJogSpeedDone(){  String string;  int val;  char labelString[80];  string = XawDialogGetValueString(jogSpeedDialog);  if (1 == sscanf(string, "%d", &val)) {    jogSpeed = val;    if (jogSpeed > maxJogSpeed) {      jogSpeed = maxJogSpeed;    }    sprintf(labelString, "%d", jogSpeed);    setLabel(jogSpeedLabel, labelString);    redraw = 1;  }  XtPopdown(jogSpeedShell);}static void jogSpeedReturnAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  doJogSpeedDone();}static void doFeedOverrideDone(){  String string;  double val;  string = XawDialogGetValueString(feedOverrideDialog);  if (1 == sscanf(string, "%lf", &val)) {    sendFeedOverride(val / 100.0);  }  XtPopdown(feedOverrideShell);}static void feedOverrideReturnAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  doFeedOverrideDone();}static void programRunCB(Widget w, XtPointer client_data, XtPointer call_data){  sendProgramRun(programStartLine);}static void programPauseCB(Widget w, XtPointer client_data, XtPointer call_data){  sendProgramPause();}static void programResumeCB(Widget w, XtPointer client_data, XtPointer call_data){  sendProgramResume();}static void programStepCB(Widget w, XtPointer client_data, XtPointer call_data){  sendProgramStep();}static void programVerifyCB(Widget w, XtPointer client_data, XtPointer call_data){  programStartLine = -1;  sendProgramRun(programStartLine);}static void helpXemcReturnAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  XtPopdown(helpXemcShell);}static void helpAboutReturnAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  XtPopdown(helpAboutShell);}static void genericDoneCB(Widget w, XtPointer client_data, XtPointer call_data){  XtPopdown((Widget) client_data);}// button handling codestatic void downAction(Widget w,                       XEvent *ev,                       String *params,                       Cardinal *numParams){  char string[80];  if (w == spindleIncLabel) {    sendSpindleIncrease();  }  else if (w == spindleDecLabel) {    sendSpindleDecrease();  }  else if (w == jogMinusLabel) {    if (jogIncrement > 0.0) {      sendJogIncr(activeAxis, -jogSpeed, jogIncrement);    }    else {      sendJogCont(activeAxis, -jogSpeed);    }  }  else if (w == jogPlusLabel) {    if (jogIncrement > 0.0) {      sendJogIncr(activeAxis, jogSpeed, jogIncrement);    }    else {      sendJogCont(activeAxis, jogSpeed);    }  }  else if (w == posLabel[0]) {    activeAxis = 0;  }  else if (w == posLabel[1]) {    activeAxis = 1;  }  else if (w == posLabel[2]) {    activeAxis = 2;  }  else if (w == jogSpeedLabel) {    // pop up menu to change jog speed    XtVaSetValues(jogSpeedDialog,                  XtNvalue, "",                  NULL);    dialogPopup(NULL, jogSpeedShell, NULL);    // trap window kill    XSetWMProtocols(XtDisplay(topLevel), XtWindow(jogSpeedShell), &killAtom, 1);  }  else if (w == jogSpeedDecLabel) {    // change it once here and redraw    if (--jogSpeed <= 0) {      jogSpeed = 1;    }    sprintf(string, "%d", jogSpeed);    setLabel(jogSpeedLabel, string);    redraw = 1;    // set jogSpeedChange so that timer callback will continue to change    // until button up clears it    jogSpeedChange = -1;  }  else if (w == jogSpeedIncLabel) {    // change it once here and redraw    if (++jogSpeed > maxJogSpeed) {      jogSpeed = maxJogSpeed;    }    sprintf(string, "%d", jogSpeed);    setLabel(jogSpeedLabel, string);    redraw = 1;    // set jogSpeedChange so that timer callback will continue to change    // until button up clears it    jogSpeedChange = +1;  }  else if (w == feedOverrideLabel) {    // pop up menu to change feed override    XtVaSetValues(feedOverrideDialog,                  XtNvalue, "",                  NULL);    dialogPopup(NULL, feedOverrideShell, NULL);    // trap window kill    XSetWMProtocols(XtDisplay(topLevel), XtWindow(feedOverrideShell), &killAtom, 1);  }  else if (w == feedOverrideDecLabel) {    // change it once here and redraw    if ((feedOverride -= 10) <= 0) {      feedOverride = 0;    }    sprintf(string, "%3d", feedOverride);    setLabel(feedOverrideLabel, string);    redraw = 1;    // set feedOverrideChange so that timer callback will continue to change    // until button up clears it    feedOverrideChange = -1;  }  else if (w == feedOverrideIncLabel) {    // change it once here and redraw    if ((feedOverride += 10) > maxFeedOverride) {      feedOverride = maxFeedOverride;    }    sprintf(string, "%3d", feedOverride);    setLabel(feedOverrideLabel, string);    redraw = 1;    // set feedOverrideChange so that timer callback will continue to change    // until button up clears it    feedOverrideChange = +1;  }  else {    printf("down\n");  }}static void upAction(Widget w,                     XEvent *ev,                     String *params,                     Cardinal *numParams){  if (w == spindleIncLabel) {    sendSpindleConstant();  }  else if (w == spindleDecLabel) {    sendSpindleConstant();  }  else if (w == jogMinusLabel) {    // only stop it if it's continuous jogging    if (jogIncrement <= 0.0) {      sendJogStop(axisJogging);    }  }  else if (w == jogPlusLabel) {    // only stop it if it's continuous jogging    if (jogIncrement <= 0.0) {      sendJogStop(axisJogging);    }  }  else if (w == posLabel[0]) {  }  else if (w == posLabel[1]) {  }  else if (w == posLabel[2]) {  }  else if (w == jogSpeedDecLabel) {    jogSpeedChange = 0;  }  else if (w == jogSpeedIncLabel) {    jogSpeedChange = 0;  }  else if (w == feedOverrideDecLabel) {    feedOverrideChange = 0;    sendFeedOverride((double) feedOverride / 100.0);  }  else if (w == feedOverrideIncLabel) {    feedOverrideChange = 0;    sendFeedOverride((double) feedOverride / 100.0);  }  else {    printf("up\n");  }}static void mdiReturnAction(Widget w, XEvent *event, String *params, Cardinal *num_params){  String string;  XtVaGetValues(mdiFormText, XtNstring, &string, NULL);  sendMdiCmd(string);}// key handling code// FIXME-- better way to get these?#define XEVENT_TYPE_XKEY_KEY_PRESS_EVENT 2#define XEVENT_TYPE_XKEY_KEY_RELEASE_EVENT 3#define XKEY_EVENT_STATE_NONE    0x00#define XKEY_EVENT_STATE_SHIFT   0x01#define XKEY_EVENT_STATE_CONTROL 0x04#define XKEY_EVENT_STATE_ALT     0x08#define KEY_ESC     9#define KEY_F1     67#define KEY_F2     68#define KEY_F3     69#define KEY_F4     70#define KEY_F5     71#define KEY_F6     72#define KEY_F7     73#define KEY_F8     74#define KEY_F9     75#define KEY_F10    76#define KEY_F11    95#define KEY_F12    96#define KEY_PGUP   99#define KEY_PGDN  105#define KEY_LEFT  100#define KEY_RIGHT 102#define KEY_UP     98#define KEY_DOWN  104#define KEY_X      53#define KEY_Y      29#define KEY_Z      52#define KEY_HOME   97#define KEY_END   103#define KEY_1      10#define KEY_2      11#define KEY_3      12#define KEY_4      13#define KEY_5      14#define KEY_6      15#define KEY_7      16#define KEY_8      17#define KEY_9      18#define KEY_0      19#define KEY_O      32#define KEY_E      26#define KEY_R      27#define KEY_T      28#define KEY_P      33#define KEY_V      55#define KEY_A      38#define KEY_S      39#define KEY_L      46#define KEY_B      56#define KEY_F      41#define KEY_COMMA  59#define KEY_PERIOD 60#define KEY_I      31#define KEY_C      54static int keyReleaseOut = 0;   // set if we saw a release, cleared right away                                // if the key repeat kicks back on, else it                                // goes through as a true key releasestatic double keyReleaseTime = 0.0;static unsigned int keyPressState;static unsigned int keyPressKeycode;static unsigned int keyReleaseState;static unsigned int keyReleaseKeycode;static void keyPressAction(unsigned int state, unsigned int keycode){  char string[256];  static double saveJogIncrement = 0.1000;  switch (keycode) {  case KEY_ESC:    sendAbort();    break;  case KEY_F1:    // estop toggle    if (emcStatus->task.state == EMC_TASK_STATE_ESTOP) {      sendEstopReset();    }    else {      sendEstop();    }    break;  case KEY_F2:    // estop toggle    if (emcStatus->task.state == EMC_TASK_STATE_ESTOP_RESET) {      sendMachineOn();    }    else {      sendMachineOff();    }    break;  case KEY_F3:    // manual mode    sendManual();    break;  case KEY_F4:    // auto mode    sendAuto();    break;  case KEY_F5:    // mdi mode    sendMdi();    break;  case KEY_F6:    sendTaskPlanInit();    break;  case KEY_F7:    // mist toggle    if (emcStatus->io.coolant.mist) {      sendMistOff();    }    else {      sendMistOn();    }    break;  case KEY_F8:    // flood toggle    if (emcStatus->io.coolant.flood) {      sendFloodOff();    }    else {      sendFloodOn();    }    break;  case KEY_F9:    // spindle fwd/off    if (emcStatus->motion.spindle.direction == 0) {      // it's off, so turn forward      sendSpindleForward();    }    else      {        // it's not off, so turn off        sendSpindleOff();      }    break;  case KEY_F10:    // spindle rev/off    if (emcStatus->motion.spindle.direction == 0) {      // it's off, so turn reverse      sendSpindleReverse();    }    else      {        // it's not off, so turn off        sendSpindleOff();      }   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -