📄 emclcd.cc
字号:
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 + -