📄 keystick.cc
字号:
mvwaddstr(window, 2, 28, scratch_string); sprintf(scratch_string, "%10ld %10d", emcStatus->io.heartbeat, emcStatus->io.echo_serial_number); mvwaddstr(window, 3, 28, scratch_string); sprintf(scratch_string, "%10ld %10d", emcStatus->motion.heartbeat, emcStatus->motion.echo_serial_number); mvwaddstr(window, 4, 28, scratch_string); sprintf(scratch_string, "%10d", usecs); mvwaddstr(window, 6, 28, scratch_string); sprintf(scratch_string, "%10d", FIRST_KEYUP_DELAY); mvwaddstr(window, 7, 28, scratch_string); sprintf(scratch_string, "%10d", NEXT_KEYUP_DELAY); mvwaddstr(window, 8, 28, scratch_string); sprintf(scratch_string, "%10d", emcStatus->task.execState); mvwaddstr(window, 10, 28, scratch_string); sprintf(scratch_string, "%10.3f", emcStatus->motion.traj.scale); mvwaddstr(window, 12, 28, scratch_string); sprintf(scratch_string, "%10.3f", emcStatus->motion.axis[0].scale); mvwaddstr(window, 13, 28, scratch_string); sprintf(scratch_string, "%10.3f", emcStatus->motion.axis[1].scale); mvwaddstr(window, 14, 28, scratch_string); sprintf(scratch_string, "%10.3f", emcStatus->motion.axis[2].scale); mvwaddstr(window, 15, 28, scratch_string); sprintf(scratch_string, "%10.3f%10.3f", emcStatus->motion.traj.velocity, emcStatus->motion.traj.maxVelocity); mvwaddstr(window, 17, 28, scratch_string); sprintf(scratch_string, "%10.3f%10.3f", emcStatus->motion.traj.acceleration, emcStatus->motion.traj.maxAcceleration); mvwaddstr(window, 18, 28, scratch_string); wattrset(window, 0); if (error_string[0]) { printError(error_string); } wattrset(window, A_REVERSE); mvwaddstr(window, wmaxy - 1, wbegx, bottom_string); wattrset(window, 0); // restore cursor position wmove(window, savey, savex); wrefresh(window); } else if (window == toolwin) { wattrset(window, A_BOLD); mvwaddstr(window, 0, 34, "Tool Table"); wattrset(window, 0); mvwaddstr(window, 2, 1, "Pocket ID Length Diameter"); wattrset(window, A_UNDERLINE); line = 4; for (t = 0; t < CANON_TOOL_MAX; t++) { if (emcStatus->io.tool.toolTable[t].id) { sprintf(scratch_string, "%4d%10d%10.4f%10.4f", t, emcStatus->io.tool.toolTable[t].id, emcStatus->io.tool.toolTable[t].zoffset, emcStatus->io.tool.toolTable[t].diameter); mvwaddstr(window, line++, 3, scratch_string); } } wattrset(window, 0); if (error_string[0]) { printError(error_string); } wattrset(window, A_REVERSE); mvwaddstr(window, wmaxy - 1, wbegx, bottom_string); wattrset(window, 0); // restore cursor position wmove(window, savey, savex); wrefresh(window); } else if (window == progwin) { mvwaddstr(window, 0, 0, line_blank); wattrset(window, A_BOLD); if (emcStatus->task.file[0] == 0) { mvwaddstr(window, 0, 36, "(no program)"); } else { mvwaddstr(window, 0, 36, emcStatus->task.file); } wattrset(window, 0); if (emcStatus->task.currentLine > 0) { if (emcStatus->task.motionLine > 0 && emcStatus->task.motionLine < emcStatus->task.currentLine) { programActiveLine = emcStatus->task.motionLine; } else { programActiveLine = emcStatus->task.currentLine; } if (programFp) { if (programFpLine > programActiveLine) { rewind(programFp); programFpLine = 0; programLineText[0] = 0; } // fast forward over past lines while (programFpLine < programActiveLine) { fgets(programLineText, LINELEN, programFp); programFpLine++; } // now we have the current line wattrset(window, A_BOLD); for (t = 0; t < 20; t++) { // knock off CR, LF len = strlen(programLineText) - 1; while (len >= 0) { if (isspace(programLineText[len])) { programLineText[len] = 0; len--; } else { break; } } // print this line mvwaddstr(window, t+2, wbegx, line_blank); mvwaddstr(window, t+2, wbegx, programLineText); wattrset(window, 0); // get the next line if (fgets(programLineText, LINELEN, programFp)) { programFpLine++; } else { // make it a blank line to clear any old stuff strcpy(programLineText, line_blank); } } } else { programLineText[0] = 0; } } else { programActiveLine = 0; programLineText[0] = 0; line_string[0] = 0; } wattrset(window, 0); if (error_string[0]) { printError(error_string); } wattrset(window, A_REVERSE); mvwaddstr(window, wmaxy - 1, wbegx, bottom_string); wattrset(window, 0); // restore cursor position wmove(window, savey, savex); wrefresh(window); } else // if (window == stdscr) { // print the function key labels printFkeys(); // print the status labels wattrset(window, 0); mvwaddstr(window, 6, 1, "Override:"); mvwaddstr(window, 7, 1, "Tool:"); mvwaddstr(window, 8, 1, "Offset:"); mvwaddstr(window, 7, 61, "Speed:"); mvwaddstr(window, 8, 61, "Incr: "); strcpy(scratch_string, "--X--"); if (emcStatus->motion.axis[0].minHardLimit) scratch_string[0] = '*'; if (emcStatus->motion.axis[0].minSoftLimit) scratch_string[1] = '*'; if (emcStatus->motion.axis[0].maxSoftLimit) scratch_string[3] = '*'; if (emcStatus->motion.axis[0].maxHardLimit) scratch_string[4] = '*'; mvwaddstr(window, 10, 27, scratch_string); strcpy(scratch_string, "--Y--"); if (emcStatus->motion.axis[1].minHardLimit) scratch_string[0] = '*'; if (emcStatus->motion.axis[1].minSoftLimit) scratch_string[1] = '*'; if (emcStatus->motion.axis[1].maxSoftLimit) scratch_string[3] = '*'; if (emcStatus->motion.axis[1].maxHardLimit) scratch_string[4] = '*'; mvwaddstr(window, 10, 47, scratch_string); strcpy(scratch_string, "--Z--"); if (emcStatus->motion.axis[2].minHardLimit) scratch_string[0] = '*'; if (emcStatus->motion.axis[2].minSoftLimit) scratch_string[1] = '*'; if (emcStatus->motion.axis[2].maxSoftLimit) scratch_string[3] = '*'; if (emcStatus->motion.axis[2].maxHardLimit) scratch_string[4] = '*'; mvwaddstr(window, 10, 67, scratch_string); if (coords == COORD_ABSOLUTE) { if (posDisplay == POS_DISPLAY_CMD) { mvwaddstr(window, 11, 1, "Absolute Cmd Pos:"); } else { mvwaddstr(window, 11, 1, "Absolute Act Pos:"); } mvwaddstr(window, 12, 0, line_blank); } else { coords = COORD_RELATIVE; if (posDisplay == POS_DISPLAY_CMD) { mvwaddstr(window, 11, 1, "Relative Cmd Pos:"); } else { mvwaddstr(window, 11, 1, "Relative Act Pos:"); } } mvwaddstr(window, 14, 0, line_blank); mvwaddstr(window, 15, 0, line_blank); mvwaddstr(window, 16, 0, line_blank); mvwaddstr(window, 17, 0, line_blank); mvwaddstr(window, 18, 0, line_blank); mvwaddstr(window, 19, 0, line_blank); if (emcStatus->task.mode == EMC_TASK_MODE_AUTO) { mvwaddstr(window, 14, 1, "Program:"); mvwaddstr(window, 15, 1, "Line:"); mvwaddstr(window, 16, 1, "Command:"); mvwaddstr(window, 17, 1, "Interpreter:"); mvwaddstr(window, 18, 1, "Modal G Codes:"); mvwaddstr(window, 19, 1, "Modal M Codes:"); } else if (emcStatus->task.mode == EMC_TASK_MODE_MDI) { mvwaddstr(window, 16, 1, "Command:"); mvwaddstr(window, 17, 1, "Interpreter:"); mvwaddstr(window, 18, 1, "Modal G Codes:"); mvwaddstr(window, 19, 1, "Modal M Codes:"); } // end of labels // fill the status strings in switch(emcStatus->task.state) { case EMC_TASK_STATE_OFF: sprintf(state_string, " OFF "); break; case EMC_TASK_STATE_ON: sprintf(state_string, " ON "); break; case EMC_TASK_STATE_ESTOP: sprintf(state_string, " ESTOP "); break; case EMC_TASK_STATE_ESTOP_RESET: sprintf(state_string, " ESTOP RESET "); break; default: sprintf(state_string, " ? "); break; } switch(emcStatus->task.mode) { case EMC_TASK_MODE_MANUAL: sprintf(mode_string, " MANUAL "); break; case EMC_TASK_MODE_AUTO: sprintf(mode_string, " AUTO "); break; case EMC_TASK_MODE_MDI: sprintf(mode_string, " MDI "); break; default: sprintf(mode_string, " ? "); break; } if (emcStatus->motion.spindle.increasing > 0) sprintf(spindle_string, " SPINDLE INCREASE "); else if (emcStatus->motion.spindle.increasing < 0) sprintf(spindle_string, " SPINDLE DECREASE "); else if (emcStatus->motion.spindle.direction > 0) sprintf(spindle_string, " SPINDLE FORWARD "); else if (emcStatus->motion.spindle.direction < 0) sprintf(spindle_string, " SPINDLE REVERSE "); else sprintf(spindle_string, " SPINDLE STOPPED "); if (emcStatus->motion.spindle.brake) sprintf(brake_string, " BRAKE ON "); else sprintf(brake_string, " BRAKE OFF "); if (emcStatus->io.coolant.mist) sprintf(mist_string, " MIST ON "); else sprintf(mist_string, " MIST OFF "); if (emcStatus->io.coolant.flood) sprintf(flood_string, " FLOOD ON "); else sprintf(flood_string, " FLOOD OFF "); if (emcStatus->io.lube.on) sprintf(lube_on_string, " LUBE ON "); else sprintf(lube_on_string, " LUBE OFF "); if (! emcStatus->io.lube.level) sprintf(lube_level_string, " LUBE OK "); else sprintf(lube_level_string, " LUBE LOW "); sprintf(home_string, " --- HOMED "); if (emcStatus->motion.axis[0].homed) { home_string[4] = 'X'; } if (emcStatus->motion.axis[1].homed) { home_string[5] = 'Y'; } if (emcStatus->motion.axis[2].homed) { home_string[6] = 'Z'; } if (coords == COORD_ABSOLUTE) { if (posDisplay == POS_DISPLAY_ACT) { sprintf(pos_string, "%13.4f %18.4f %18.4f", emcStatus->motion.traj.actualPosition.tran.x, emcStatus->motion.traj.actualPosition.tran.y, emcStatus->motion.traj.actualPosition.tran.z); } else { sprintf(pos_string, "%13.4f %18.4f %18.4f", emcStatus->motion.traj.position.tran.x, emcStatus->motion.traj.position.tran.y, emcStatus->motion.traj.position.tran.z); } } else { coords = COORD_RELATIVE; if (posDisplay == POS_DISPLAY_ACT) { sprintf(pos_string, "%13.4f %18.4f %18.4f", emcStatus->motion.traj.actualPosition.tran.x - emcStatus->task.origin.tran.x, emcStatus->motion.traj.actualPosition.tran.y - emcStatus->task.origin.tran.y, emcStatus->motion.traj.actualPosition.tran.z - emcStatus->task.origin.tran.z - emcStatus->task.toolOffset.tran.z); } else { sprintf(pos_string, "%13.4f %18.4f %18.4f", emcStatus->motion.traj.position.tran.x - emcStatus->task.origin.tran.x, emcStatus->motion.traj.position.tran.y - emcStatus->task.origin.tran.y, emcStatus->motion.traj.position.tran.z - emcStatus->task.origin.tran.z - emcStatus->task.toolOffset.tran.z); } } sprintf(origin_string, "%13.4f %18.4f %18.4f", emcStatus->task.origin.tran.x, emcStatus->task.origin.tran.y, emcStatus->task.origin.tran.z); sprintf(speed_string, "%10.1f", jogSpeed); if (jogMode == JOG_INCREMENTAL) { sprintf(incr_string, "%10.4f", jogIncrement); } else { sprintf(incr_string, "continuous"); } if (! programOpened) { // print the last one opened, since we'll send this by default strcpy(prog_string, programFile); } else { // print the one the controller knows about strcpy(prog_string, emcStatus->task.file); } if (emcStatus->task.currentLine > 0) { if (emcStatus->task.motionLine > 0 &&
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -