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

📄 emclcd.cc

📁 CNC 的开放码,EMC2 V2.2.8版
💻 CC
📖 第 1 页 / 共 3 页
字号:
        break;      case wtVbar: break;      case wtIcon: break;      case wtScroller: break;      case wtFrame: break;      case wtNum: break;      }    }  return(0);}static int createKeys(){  int i;  for (i=0; i<KEY_COUNT; i++) {    sockPrintf(sockfd, "client_add_key %s %c\n", keyModes[keys[i].mode], keys[i].key);    }  return(0);}static int loadFiles(){  DIR *dp;  struct dirent *entry;  struct stat statbuf;  char namebuf[25];    if ((dp = opendir(EMC2_NCFILES_DIR)) == NULL) {    printf("Cannot open directory: %s\n", EMC2_NCFILES_DIR);    return -1;    }  chdir(EMC2_NCFILES_DIR);  while ((entry = readdir(dp)) != NULL) {    lstat(entry->d_name, &statbuf);    if (!S_ISDIR(statbuf.st_mode)) {      if (strstr(entry->d_name, "ngc") != NULL) {        strncpy(namebuf, entry->d_name, (strlen(entry->d_name)<24)?strlen(entry->d_name)-4:24);        namebuf[strlen(entry->d_name) - 4] = '\0';        sockPrintf(sockfd, "menu_add_item open %s action {%s}\n", namebuf, namebuf);        sockPrintf(sockfd, "menu_set_item open %s -menu_result quit\n", namebuf);        }      }    }  return 0;}static void menuSetInt(char *menu, char *item, int value){  sockPrintf(sockfd, "menu_set_item %s %s -value {%d}\n", menu, item, value);}static void menuSetMin(char *menu, char *item, int value){  sockPrintf(sockfd, "menu_set_item %s %s -minvalue {%d}\n", menu, item, value);}static void menuSetMax(char *menu, char *item, int value){  sockPrintf(sockfd, "menu_set_item %s %s -maxvalue {%d}\n", menu, item, value);}static int createMenus(){  sockSendString(sockfd, "client_set name {Main Menu}\n");  sockSendString(sockfd, "menu_add_item {} File menu {File}\n");  sockSendString(sockfd, "menu_add_item File open menu {Open}\n");  sockSendString(sockfd, "menu_add_item File reload action {Reload}\n");  sockSendString(sockfd, "menu_add_item File delete action {Delete}\n");  sockSendString(sockfd, "menu_add_item {} View menu {View}\n");  sockSendString(sockfd,     "menu_add_item View units_ring ring {Units} -strings {mm\tcm\tinch}\n");  sockSendString(sockfd,     "menu_add_item View coord_ring ring {Coord} -strings {abs\trel}\n");  sockSendString(sockfd, "menu_add_item {} Run menu {Run}\n");  sockSendString(sockfd, "menu_add_item Run feed_slider slider {Feed Override} -mintext {0} -maxtext {125} -value {50}\n");  sockSendString(sockfd, "menu_add_item Run laser_slider slider {Laser Override} -mintext {0} -maxtext {100} -value {50}\n");  sockSendString(sockfd, "menu_add_item {} Jog menu {Jog}\n");  sockSendString(sockfd, "menu_add_item Jog jog_speed numeric {Speed}\n");  sockSendString(sockfd, "menu_add_item Jog jog_mode ring {Mode} -strings {Cont\t1.0\t0.1\t0.01\t0.001}\n");  sockSendString(sockfd, "menu_add_item {} setup menu {Setup}\n");  sockSendString(sockfd, "menu_add_item setup display menu {Main Display}\n");  sockSendString(sockfd, "menu_add_item display posdisplay action {Positions}\n");  sockSendString(sockfd, "menu_add_item display sumdisplay action {Summary}\n");  sockSendString(sockfd, "menu_set_item display posdisplay -next _quit_\n");  sockSendString(sockfd, "menu_set_item display sumdisplay -next _quit_\n");  sockSendString(sockfd, "menu_add_item setup netname alpha {Network Name}\n");  sockSendString(sockfd, "menu_add_item setup tcpip menu {TCP/IP}\n");  sockSendString(sockfd, "menu_add_item tcpip addrtype ring {Addr Type} -strings {Auto\tManual}\n");  sockSendString(sockfd, "menu_add_item tcpip address ip {IP Address} -v6 false -value {192.168.1.250}\n");  sockSendString(sockfd, "menu_add_item tcpip netmask ip {Subnet mask} -v6 false -value {255.255.255.0}\n");  sockSendString(sockfd, "menu_add_item tcpip gateway ip {Gateway} -v6 false -value {192.168.1.1}\n");  sockSendString(sockfd, "menu_add_item tcpip dns1 ip {Primary DNS} -v6 false -value {192.168.1.1}\n");  sockSendString(sockfd, "menu_add_item tcpip dns2 ip {Secondary DNS} -v6 false -value {0.0.0.0}\n");  sockSendString(sockfd, "menu_add_item setup passwords menu {Set Passwords}\n");  sockSendString(sockfd, "menu_add_item passwords connect alpha {Connect}\n");  sockSendString(sockfd, "menu_add_item passwords enable alpha {Enable}\n");  sockSendString(sockfd, "menu_set_item passwords connect -password_char {*}\n");  sockSendString(sockfd, "menu_set_item passwords enable -password_char {*}\n");  sockSendString(sockfd, "menu_add_item setup language menu {Set Language}\n");  sockSendString(sockfd, "menu_add_item language english action {English}\n");  sockSendString(sockfd, "menu_add_item language spanish action {Espanol}\n");  sockSendString(sockfd, "menu_add_item language french action {Francais}\n");  sockSendString(sockfd, "menu_add_item language german action {Deutch}\n");  sockSendString(sockfd, "menu_add_item language italian action {Italiano}\n");  sockSendString(sockfd, "menu_add_item {} utility menu {Utilities}\n");  sockSendString(sockfd, "menu_add_item utility home ring {Home} -strings {all\tX\tY\tZ}\n");  sockSendString(sockfd, "menu_add_item utility limits ring {Limits} -strings {On\tOff}\n");  sockSendString(sockfd, "menu_add_item utility laser ring {Laser} -strings {Off\tOn}\n");  loadFiles();  menuSetInt("Jog", "jog_speed", 25);  menuSetMin("Jog", "jog_speed", 0);  menuSetMax("Jog", "jog_speed", 100);  sockSendString(sockfd, "menu_set_main {}\n");  return(0);}static screenType setNewScreen(screenType screenNo){  static char *background = "background";  static char *foreground = "foreground";  strScreenSet(screens[curScreen].name, attrs[3], background);  strScreenSet(screens[screenNo].name, attrs[3], foreground);  return(screenNo);}static screenType lookupScreen(char *s){  screenType i = stStartup;  int temp;  while (i < stUnknown) {    if (strcmp(screens[i].name, s) == 0) return i;    temp = i;    temp++;    i = (screenType) temp;    }  return i;}static respMsgType lookupRsp(char *s){  respMsgType i = rmConnect;  int temp;    while (i < rmUnknown) {    if (strcmp(rspMsgs[i], s) == 0) return i;    temp = i;    temp++;    i = (respMsgType) temp;    }  return i;}static menuEventType lookupEvent(char *s){  menuEventType i = meSelect;  int temp;    while (i < meUnknown) {    if (strcmp(eventMsgs[i], s) == 0) return i;    temp = i;    temp++;    i = (menuEventType) temp;    }  return i;}static keyType lookupKey(char key){  keyType i = ktLeftPress;  int temp;  while (i < KEY_COUNT) {    if (key == keys[i].key) return i;    temp = i;    temp++;    i = (keyType) temp;    }  return i;}static connectParmType lookupConnect(char *s){  connectParmType i = cpVersion;  int temp;    while (i < cpUnknown) {    if (strcmp(connectStrs[i], s) == 0) return i;    temp = i;    temp++;    i = (connectParmType) temp;    }  return i;}#define PROG_WIDGET1 11#define PROG_WIDGET2 24static int openProgram(char *s){  char fname[255];  sprintf(fname, "%s/%s.ngc", EMC2_NCFILES_DIR, s);//  sprintf(fname, "../../nc_files/%s.ngc\n", s);  widgetSetStr(PROG_WIDGET1, s, "");  widgetSetStr(PROG_WIDGET2, s, "");  if (sendTaskPlanInit() != 0) return -1;  sendAuto();  return sendProgramOpen(fname);}#define JOGMODE_WIDGET 14static void displayJogMode(jogModeType mode){  switch (mode) {    case jtCont: widgetSetStr(JOGMODE_WIDGET, "Cont", ""); break;    case jtStep1:       if (units == unmm)        widgetSetStr(JOGMODE_WIDGET, "10.0", "");      else        widgetSetStr(JOGMODE_WIDGET, "1.0", "");      break;    case jtStep01:       if (units == unmm)        widgetSetStr(JOGMODE_WIDGET, "1.0", "");      else        widgetSetStr(JOGMODE_WIDGET, "0.1", "");      break;    case jtStep001:       if (units == unmm)        widgetSetStr(JOGMODE_WIDGET, "0.1", "");      else        widgetSetStr(JOGMODE_WIDGET, "0.01", "");      break;    case jtStep0001:       if (units == unmm)        widgetSetStr(JOGMODE_WIDGET, "0.01", "");      else        widgetSetStr(JOGMODE_WIDGET, "0.001", "");      break;    default: widgetSetStr(JOGMODE_WIDGET, "Cont", "");    }}static int selectEvent(){  char *pch;  pch = strtok(NULL, delims);  if (strcmp(menu2, "open") == 0)    if (openProgram(pch) == -1) {      printf("Failed to open program\n");       return -1;      }  if (strcmp(pch, "posdisplay") == 0)    curScreen = setNewScreen(stMain);  if (strcmp(pch, "sumdisplay") == 0)    curScreen = setNewScreen(stMain2);  return 0;}static int updateEvent(){  char *pch;  int value;  pch = strtok(NULL, delims);  if (strcmp(pch, "units_ring") == 0)     {      value = atoi(strtok(NULL, delims));      switch (value) {        case 0:           linearUnitConversion = LINEAR_UNITS_MM;           units = unmm;          conversion = 25.4;          break;        case 1:           linearUnitConversion = LINEAR_UNITS_CM;           units = uncm;          conversion = 2.54;          break;        case 2:           linearUnitConversion = LINEAR_UNITS_INCH;           units = unInch;          conversion = 1.0;          break;        }    }  if (strcmp(pch, "jog_mode") == 0)     {      value = atoi(strtok(NULL, delims));      switch (value) {        case 0: jogMode = jtCont; break;        case 1: jogMode = jtStep1; break;        case 2: jogMode = jtStep01; break;        case 3: jogMode = jtStep001; break;        case 4: jogMode = jtStep0001; break;        default: jogMode = jtCont;        }      displayJogMode(jogMode);    }  if (strcmp(pch, "jog_speed") == 0)    {      value = atoi(strtok(NULL, delims));      jogSpeed = value;    }  return 0;}static int plusMinusEvent(){  char *pch;  int value;  printf("menuevent minus\n");  pch = strtok(NULL, delims);  if (strcmp(pch, "feed_slider") == 0) {    value = atoi(strtok(NULL, delims));    sendFeedOverride(((double) value) / 100.0);    }  if (strcmp(pch, "laser_slider") == 0) {    value = atoi(strtok(NULL, delims));    }  return 0;}static int enterEvent(){  char *pch;  pch = strtok(NULL, delims);  strcpy(menu1, menu2);  strcpy(menu2, pch);  printf("menuevent enter %s\n", pch);  return 0;}static int leaveEvent(){  char *pch;  pch = strtok(NULL, delims);  printf("menuevent leave %s\n", pch);  return 0;}static void doMenuEvent(char *s){  switch (lookupEvent(s)) {    case meSelect: selectEvent(); break;    case meUpdate: updateEvent(); break;    case mePlus: plusMinusEvent(); break;    case meMinus: plusMinusEvent(); break;    case meEnter: enterEvent(); break;    case meLeave: leaveEvent(); break;    case meUnknown: ;    }}static void parseConnect(){  char *pch;  pch = strtok(NULL, delims);  while (pch != NULL) {    switch (lookupConnect(pch)) {      case cpVersion: strcpy(lcdParms.version, strtok(NULL, delims)); break;      case cpProtocol: strcpy(lcdParms.protocol, strtok(NULL, delims)); break;      case cpLCD: break;      case cpWidth:         pch = strtok(NULL, delims);        sscanf(pch, "%d", &lcdParms.lcdWidth);        break;      case cpHeight:         pch = strtok(NULL, delims);        sscanf(pch, "%d", &lcdParms.lcdHeight);        break;      case cpCellWidth:         pch = strtok(NULL, delims);        sscanf(pch, "%d", &lcdParms.cellWidth);        break;      case cpCellHeight:         pch = strtok(NULL, delims);        sscanf(pch, "%d", &lcdParms.cellHeight);        break;      case cpUnknown: printf("Unknow parameter: %s\n", pch);      }    pch = strtok(NULL, delims);    }//  sockSendString(sockfd, "info\n");}static int jog(int axis, float speed){  float stepSize;  if (units == unmm) stepSize = 10.0;  else stepSize = 1.0;  if ((axis < 0) || (axis > 5)) return -1;  if (runStatus == rsIdle) {    sendManual();    switch (jogMode) {      case jtCont:         if (jogging == 1) {  // toggle if driver does not support key down / key up          jogging = 0;          return sendJogStop(axis);          }        else {          jogging = 1;          return sendJogCont(axis, speed);          }      case jtStep1: return sendJogIncr(axis, speed, stepSize/conversion); break;      case jtStep01: return sendJogIncr(axis, speed, (stepSize/10.0)/conversion); break;      case jtStep001: return sendJogIncr(axis, speed, (stepSize/100.0)/conversion); break;      case jtStep0001: return sendJogIncr(axis, speed, (stepSize/1000.0)/conversion); break;      default: return -1;      }    }  else return 0;}static int jogStop(int axis){  if ((axis < 0) || (axis > 5)) return -1;  return sendJogStop(axis);}static int leftKey(){

⌨️ 快捷键说明

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