Update of /cvsroot/emc/emc2/src/emc/task In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9206/src/emc/task Modified Files: Tag: bdi-4_30 Makefile bridgeporttaskintf.cc emccanon.cc emcdummy.cc emcpanel.cc emcprobe.cc emcsh.cc emcsvr.cc emctask.cc emctaskmain.cc feedslider.cc inimot.cc keystick.cc mini.tcl minimilltaskintf.cc tkbackplot.tcl xemc.cc yemc.cc Log Message: Changes that go to make up the final BDI-4 release. Index: emcpanel.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Attic/emcpanel.cc,v retrieving revision 1.1.2.2 retrieving revision 1.1.2.2.4.1 diff -C2 -d -r1.1.2.2 -r1.1.2.2.4.1 *** emcpanel.cc 4 Mar 2005 10:36:50 -0000 1.1.2.2 --- emcpanel.cc 29 Sep 2005 14:10:42 -0000 1.1.2.2.4.1 *************** *** 79,91 **** // the saved program name ! static char programFile[EMC_TASK_FILENAME_LEN] = ""; static int programOpened = 0; static FILE * programFp = 0; static int programFpLine = 0; static int programActiveLine = 0; ! static char programLineText[EMC_TASK_COMMAND_LEN] = ""; // saved log file params ! static char saveLogFile[EMC_LOG_FILENAME_LEN] = "emc.log"; static int saveLogType = EMC_LOG_TYPE_AXIS_POS; static int saveLogSize = 1000; --- 79,91 ---- // the saved program name ! static char programFile[LINELEN] = ""; static int programOpened = 0; static FILE * programFp = 0; static int programFpLine = 0; static int programActiveLine = 0; ! static char programLineText[LINELEN] = ""; // saved log file params ! static char saveLogFile[LINELEN] = "emc.log"; static int saveLogType = EMC_LOG_TYPE_AXIS_POS; static int saveLogSize = 1000; *************** *** 147,153 **** static int printPrompt; - // size of input buffer - #define INPUTLEN 80 - // microseconds to sleep between calls to getinput() #define SLEEP_SECS 0.100 --- 147,150 ---- *************** *** 318,325 **** } - #define STRLEN 80 static char *state_to_string(int state) { ! static char scratch[STRLEN]; switch (state) --- 315,321 ---- } static char *state_to_string(int state) { ! static char scratch[BUFFERLEN]; switch (state) *************** *** 361,365 **** static char *status_to_string(int status) { ! static char scratch[STRLEN]; switch (status) --- 357,361 ---- static char *status_to_string(int status) { ! static char scratch[BUFFERLEN]; switch (status) *************** *** 553,557 **** else { while (programFpLine < programActiveLine) { ! fgets(programLineText, EMC_TASK_COMMAND_LEN, programFp); programFpLine++; } --- 549,553 ---- else { while (programFpLine < programActiveLine) { ! fgets(programLineText, LINELEN, programFp); programFpLine++; } *************** *** 1048,1052 **** static int iniLoad(const char *filename) { ! INIFILE inifile; const char *inistring; --- 1044,1048 ---- static int iniLoad(const char *filename) { ! Inifile inifile; const char *inistring; *************** *** 1072,1077 **** int main(int argc, char *argv[]) { ! char input[INPUTLEN]; ! char cmd[INPUTLEN]; int nchars; // how many read from getinput() double delay; // secs until next read --- 1068,1073 ---- int main(int argc, char *argv[]) { ! char input[LINELEN]; ! char cmd[LINELEN]; int nchars; // how many read from getinput() double delay; // secs until next read *************** *** 1202,1206 **** // get the next input line ! nchars = getinput(input, INPUTLEN); if (nchars > 0) { --- 1198,1202 ---- // get the next input line ! nchars = getinput(input, LINELEN); if (nchars > 0) { Index: tkbackplot.tcl =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Attic/tkbackplot.tcl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.1.4.1 diff -C2 -d -r1.1.2.1 -r1.1.2.1.4.1 *** tkbackplot.tcl 20 Feb 2005 03:43:56 -0000 1.1.2.1 --- tkbackplot.tcl 29 Sep 2005 14:10:42 -0000 1.1.2.1.4.1 *************** *** 421,425 **** proc updatePlot {} { ! global size screen global xdir ydir zdir global xnext ynext znext yrnext zrnext xlast ylast zlast --- 421,425 ---- proc updatePlot {} { ! global size screen unitsetting global xdir ydir zdir global xnext ynext znext yrnext zrnext xlast ylast zlast *************** *** 428,431 **** --- 428,441 ---- global 3dxnext 3dynext 3dznext 3dyrnext 3dylast 3dxlast 3dzlast 3dyrlast + # hack to divide scale for mm plotting + if {$unitsetting == "(mm)" } { + set scaler 25.4 + } else { + set scaler 1 + } + set posdigitx0 [expr $posdigit0 / $scaler] + set posdigitx1 [expr $posdigit1 / $scaler] + set posdigitx2 [expr $posdigit2 / $scaler] + # Color plot line by setting active line to upcase thisstring set thisstring [string toupper [$programfiletext get $activeLine.0 $activeLine.end]] *************** *** 447,453 **** if {$size < 1} {set size 1} { ! set xnext [expr $xoffset + ($posdigit0 * $size * $xdir)] ! set ynext [expr $yoffset + ($posdigit1 * $size * $ydir)] ! set znext [expr $zoffset + ($posdigit2 * $size * $zdir)] if {$xlast != $xnext || $ylast != $ynext || $zlast != $znext} { --- 457,463 ---- if {$size < 1} {set size 1} { ! set xnext [expr $xoffset + ($posdigitx0 * $size * $xdir)] ! set ynext [expr $yoffset + ($posdigitx1 * $size * $ydir)] ! set znext [expr $zoffset + ($posdigitx2 * $size * $zdir)] if {$xlast != $xnext || $ylast != $ynext || $zlast != $znext} { Index: emccanon.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/emccanon.cc,v retrieving revision 1.5.12.1 retrieving revision 1.5.12.1.2.1 diff -C2 -d -r1.5.12.1 -r1.5.12.1.2.1 *** emccanon.cc 20 Feb 2005 03:43:55 -0000 1.5.12.1 --- emccanon.cc 29 Sep 2005 14:10:42 -0000 1.5.12.1.2.1 *************** *** 634,637 **** --- 634,648 ---- double v1, v2, vel; + // Borrow ABC calcs from linear feed func. + a = FROM_PROG_ANG(a); + b = FROM_PROG_ANG(b); + c = FROM_PROG_ANG(c); + a += programOrigin.a; + b += programOrigin.b; + c += programOrigin.c; + a = TO_EXT_ANG(a); + b = TO_EXT_ANG(b); + c = TO_EXT_ANG(c); + // Since there's no default case here, // we need to initialise vel to something safe! *************** *** 1072,1078 **** // nothing need be done here, but you can play tricks with hot comments ! #define MSGLEN 256 ! char msg[MSGLEN]; ! char probefilename[MSGLEN]; char *ptr; --- 1083,1088 ---- // nothing need be done here, but you can play tricks with hot comments ! char msg[LINELEN]; ! char probefilename[LINELEN]; char *ptr; *************** *** 1105,1113 **** ptr++; } ! setString(probefilename, ptr, MSGLEN); if (NULL == (probefile = fopen(probefilename, "w"))) { // pop up a warning message ! setString(msg, "can't open probe file ", MSGLEN); ! addString(msg, probefilename, MSGLEN); MESSAGE(msg); probefile = NULL; --- 1115,1123 ---- ptr++; } ! setString(probefilename, ptr, LINELEN); if (NULL == (probefile = fopen(probefilename, "w"))) { // pop up a warning message ! setString(msg, "can't open probe file ", LINELEN); ! addString(msg, probefilename, LINELEN); MESSAGE(msg); probefile = NULL; *************** *** 1167,1172 **** operator_display_msg.id = 0; ! strncpy(operator_display_msg.display, s, EMC_OPERATOR_DISPLAY_LEN); ! operator_display_msg.display[EMC_OPERATOR_DISPLAY_LEN - 1] = 0; interp_list.append(operator_display_msg); --- 1177,1182 ---- operator_display_msg.id = 0; ! strncpy(operator_display_msg.display, s, LINELEN); ! operator_display_msg.display[LINELEN - 1] = 0; interp_list.append(operator_display_msg); *************** *** 1177,1182 **** EMC_SYSTEM_CMD system_cmd; ! strncpy(system_cmd.string, s, EMC_SYSTEM_CMD_LEN); ! system_cmd.string[EMC_SYSTEM_CMD_LEN - 1] = 0; interp_list.append(system_cmd); } --- 1187,1192 ---- EMC_SYSTEM_CMD system_cmd; ! strncpy(system_cmd.string, s, LINELEN); ! system_cmd.string[LINELEN - 1] = 0; interp_list.append(system_cmd); } *************** *** 1383,1409 **** // first update internal record of last position ! canonEndPoint.x = FROM_EXT_LEN(pos.tran.x) - programOrigin.x; ! canonEndPoint.y = FROM_EXT_LEN(pos.tran.y) - programOrigin.y; ! canonEndPoint.z = FROM_EXT_LEN(pos.tran.z) - programOrigin.z; ! canonEndPoint.z = FROM_EXT_LEN(pos.tran.z) - programOrigin.z; ! canonEndPoint.z -= currentToolLengthOffset; ! ! ! canonEndPoint.a = FROM_EXT_ANG(pos.a) - programOrigin.a; ! canonEndPoint.b = FROM_EXT_ANG(pos.b) - programOrigin.b; ! canonEndPoint.c = FROM_EXT_ANG(pos.c) - programOrigin.c; ! // now calculate position in program units, for interpreter ! position.x = TO_PROG_LEN(canonEndPoint.x); ! position.y = TO_PROG_LEN(canonEndPoint.y); ! position.z = TO_PROG_LEN(canonEndPoint.z); ! position.z -= TO_PROG_LEN(currentToolLengthOffset); ! ! position.a = TO_PROG_ANG(canonEndPoint.a); ! position.b = TO_PROG_ANG(canonEndPoint.b); ! position.c = TO_PROG_ANG(canonEndPoint.c); return position; --- 1393,1412 ---- // first update internal record of last position ! canonEndPoint.x = FROM_EXT_LEN(pos.tran.x); ! canonEndPoint.y = FROM_EXT_LEN(pos.tran.y); ! canonEndPoint.z = FROM_EXT_LEN(pos.tran.z); ! canonEndPoint.a = FROM_EXT_ANG(pos.a); ! canonEndPoint.b = FROM_EXT_ANG(pos.b); ! canonEndPoint.c = FROM_EXT_ANG(pos.c); // now calculate position in program units, for interpreter ! position.x = TO_PROG_LEN(canonEndPoint.x - programOrigin.x); ! position.y = TO_PROG_LEN(canonEndPoint.y - programOrigin.y); ! position.z = TO_PROG_LEN(canonEndPoint.z - programOrigin.z - currentToolLengthOffset); ! position.a = TO_PROG_ANG(canonEndPoint.a - programOrigin.a); ! position.b = TO_PROG_ANG(canonEndPoint.b - programOrigin.b); ! position.c = TO_PROG_ANG(canonEndPoint.c - programOrigin.c); return position; *************** *** 1419,1440 **** // first update internal record of last position ! canonEndPoint.x = FROM_EXT_LEN(pos.tran.x) - programOrigin.x; ! canonEndPoint.y = FROM_EXT_LEN(pos.tran.y) - programOrigin.y; ! canonEndPoint.z = FROM_EXT_LEN(pos.tran.z) - programOrigin.z; ! canonEndPoint.z -= currentToolLengthOffset; ! canonEndPoint.a = FROM_EXT_ANG(pos.a) - programOrigin.a; ! canonEndPoint.b = FROM_EXT_ANG(pos.b) - programOrigin.b; ! canonEndPoint.c = FROM_EXT_ANG(pos.c) - programOrigin.c; // now calculate position in program units, for interpreter ! position.x = TO_PROG_LEN(canonEndPoint.x); ! position.y = TO_PROG_LEN(canonEndPoint.y); ! position.z = TO_PROG_LEN(canonEndPoint.z); ! position.z -= TO_PROG_LEN(currentToolLengthOffset); ! position.a = TO_PROG_ANG(canonEndPoint.a); ! position.b = TO_PROG_ANG(canonEndPoint.b); ! position.c = TO_PROG_ANG(canonEndPoint.c); // FIXME-- back end of hot comment --- 1422,1441 ---- // first update internal record of last position ! canonEndPoint.x = FROM_EXT_LEN(pos.tran.x); ! canonEndPoint.y = FROM_EXT_LEN(pos.tran.y); ! canonEndPoint.z = FROM_EXT_LEN(pos.tran.z); ! canonEndPoint.a = FROM_EXT_ANG(pos.a); ! canonEndPoint.b = FROM_EXT_ANG(pos.b); ! canonEndPoint.c = FROM_EXT_ANG(pos.c); // now calculate position in program units, for interpreter ! position.x = TO_PROG_LEN(canonEndPoint.x - programOrigin.x); ! position.y = TO_PROG_LEN(canonEndPoint.y - programOrigin.y); ! position.z = TO_PROG_LEN(canonEndPoint.z - programOrigin.z - currentToolLengthOffset); ! position.a = TO_PROG_ANG(canonEndPoint.a - programOrigin.a); ! position.b = TO_PROG_ANG(canonEndPoint.b - programOrigin.b); ! position.c = TO_PROG_ANG(canonEndPoint.c - programOrigin.c); // FIXME-- back end of hot comment *************** *** 1585,1638 **** } - /***********************************************************************/ - - /* rs274ngc_ini_load() - - Returned Value: RS274NGC_OK, RS274NGC_ERROR - - Side Effects: - An INI file containing values for global variables is used to - update the globals - - Called By: - rs274ngc_init() - - The file looks like this: - - [RS274NGC] - VARIABLE_FILE = rs274ngc.var - - */ - - #include "inifile.h" // INIFILE - - int rs274ngc_ini_load(const char *filename) - { - INIFILE inifile; - const char *inistring; - - // open it - if (-1 == inifile.open(filename)) - { - return -1; - } - - if (NULL != (inistring = inifile.find("PARAMETER_FILE", "RS274NGC"))) - { - // found it - strncpy(_parameter_file_name, inistring,PARAMETER_FILE_NAME_LENGTH); - } - else - { - // not found, leave RS274NGC_PARAMETER_FILE alone - } - - // close it - inifile.close(); - - return 0; - } - - double GET_EXTERNAL_POSITION_X(void) { --- 1586,1589 ---- Index: emcsh.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Attic/emcsh.cc,v retrieving revision 1.2.2.1 retrieving revision 1.2.2.1.4.1 diff -C2 -d -r1.2.2.1 -r1.2.2.1.4.1 *** emcsh.cc 20 Feb 2005 03:43:55 -0000 1.2.2.1 --- emcsh.cc 29 Sep 2005 14:10:42 -0000 1.2.2.1.4.1 *************** *** 34,37 **** --- 34,40 ---- #include "emcmotlog.h" // EMCLOG_TRIGGER_TYPE, EMCLOG_TRIGGER_VAR + #include "hmi_base.hh" + using namespace Hmi; + /* Using emcsh: *************** *** 42,46 **** [...1551 lines suppressed...] static int iniLoad(const char *filename) { ! Inifile inifile; const char *inistring; ! char displayString[LINELEN] = ""; int t; int i; *************** *** 5442,5446 **** // init NML ! if (0 != tryNml()) { rcs_print_error("can't connect to emc\n"); thisQuit(NULL); --- 4055,4059 ---- // init NML ! if (0 != tryNml("xemc")) { rcs_print_error("can't connect to emc\n"); thisQuit(NULL); Index: emcdummy.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Attic/emcdummy.cc,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.1.4.1 diff -C2 -d -r1.1.2.1 -r1.1.2.1.4.1 *** emcdummy.cc 20 Feb 2005 03:43:55 -0000 1.1.2.1 --- emcdummy.cc 29 Sep 2005 14:10:42 -0000 1.1.2.1.4.1 *************** *** 8,13 **** // open NML buffers ! static RCS_CMD_CHANNEL * emcCommandBuffer = new RCS_CMD_CHANNEL(emcFormat, "emcCommand", "emc", "emc.nml"); ! static RCS_STAT_CHANNEL * emcStatusBuffer = new RCS_STAT_CHANNEL(emcFormat, "emcStatus", "emc", "emc.nml"); static EMC_STAT emcStatus = (EMC_STAT *) emcStatusBuffer->get_address(); static int serial_number = 0; --- 8,13 ---- // open NML buffers ! static RCS_CMD_CHANNEL * emcCommandBuffer = new RCS_CMD_CHANNEL(emcFormat, "emcCommand", "emc", "generic.nml"); ! static RCS_STAT_CHANNEL * emcStatusBuffer = new RCS_STAT_CHANNEL(emcFormat, "emcStatus", "emc", "generic.nml"); static EMC_STAT emcStatus = (EMC_STAT *) emcStatusBuffer->get_address(); static int serial_number = 0; *************** *** 70,74 **** // name of NML file ! static char nmlFile[256] = "emc.nml"; static int startup() --- 70,74 ---- // name of NML file ! static char nmlFile[LINELEN] = "generic.nml"; static int startup() *************** *** 156,160 **** If <nml file> is provided, it will use this, otherwise it will use the ! default "emc.nml". This process will access the buffers "emcCommand", "emcStatus", and --- 156,160 ---- If <nml file> is provided, it will use this, otherwise it will use the ! default "generic.nml". This process will access the buffers "emcCommand", "emcStatus", and Index: inimot.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Attic/inimot.cc,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.1.4.1 diff -C2 -d -r1.1.2.1 -r1.1.2.1.4.1 *** inimot.cc 20 Feb 2005 03:43:55 -0000 1.1.2.1 --- inimot.cc 29 Sep 2005 14:10:42 -0000 1.1.2.1.4.1 *************** *** 40,44 **** int emcOperatorError(int id, const char *fmt, ...) { ! char errorString[EMC_OPERATOR_ERROR_LEN]; va_list ap; --- 40,44 ---- int emcOperatorError(int id, const char *fmt, ...) { ! char errorString[LINELEN]; va_list ap; *************** *** 52,56 **** // force a NULL at the end for safety ! errorString[EMC_OPERATOR_ERROR_LEN-1] = 0; // print it --- 52,56 ---- // force a NULL at the end for safety ! errorString[LINELEN-1] = 0; // print it *************** *** 65,69 **** static int iniLoad(const char *filename) { ! INIFILE inifile; const char *inistring; --- 65,69 ---- static int iniLoad(const char *filename) { ! Inifile inifile; const char *inistring; Index: feedslider.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Attic/feedslider.cc,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.1.4.1 diff -C2 -d -r1.1.2.1 -r1.1.2.1.4.1 *** feedslider.cc 20 Feb 2005 03:43:55 -0000 1.1.2.1 --- feedslider.cc 29 Sep 2005 14:10:42 -0000 1.1.2.1.4.1 *************** *** 7,11 **** machine, and enter percent numbers at the prompt, e.g., 0, 100. ! The .nml file is hard-coded here as emc.nml. This process connects as "remote", so you should have something like this in your emc.nml file: --- 7,11 ---- machine, and enter percent numbers at the prompt, e.g., 0, 100. ! The .nml file is hard-coded here as generic.nml. This process connects as "remote", so you should have something like this in your emc.nml file: *************** *** 25,30 **** int main(int argc, char *argv[]) { ! #define BUFFERSIZE 256 ! char buffer[BUFFERSIZE]; RCS_CMD_CHANNEL * emc_cmd_buffer; RCS_STAT_CHANNEL * emc_stat_buffer; --- 25,29 ---- int main(int argc, char *argv[]) { ! char buffer[LINELEN]; RCS_CMD_CHANNEL * emc_cmd_buffer; RCS_STAT_CHANNEL * emc_stat_buffer; *************** *** 35,39 **** double percent; ! emc_cmd_buffer = new RCS_CMD_CHANNEL(emcFormat, "emcCommand", "remote", "emc.nml"); if (0 == emc_cmd_buffer || ! emc_cmd_buffer->valid()) { --- 34,38 ---- double percent; ! emc_cmd_buffer = new RCS_CMD_CHANNEL(emcFormat, "emcCommand", "remote", "generic.nml"); if (0 == emc_cmd_buffer || ! emc_cmd_buffer->valid()) { *************** *** 42,46 **** } ! emc_stat_buffer = new RCS_STAT_CHANNEL(emcFormat, "emcStatus", "remote", "emc.nml"); if (0 == emc_stat_buffer || ! emc_stat_buffer->valid() || --- 41,45 ---- } ! emc_stat_buffer = new RCS_STAT_CHANNEL(emcFormat, "emcStatus", "remote", "generic.nml"); if (0 == emc_stat_buffer || ! emc_stat_buffer->valid() || *************** *** 56,63 **** printf("> "); fflush(stdout); ! if (NULL == fgets(buffer, BUFFERSIZE, stdin)) { break; } ! buffer[BUFFERSIZE - 1] = 0; // make sure it's a null-terminated string if (1 != sscanf(buffer, "%lf", &percent)) { --- 55,62 ---- printf("> "); fflush(stdout); ! if (NULL == fgets(buffer, LINELEN, stdin)) { break; } ! buffer[LINELEN - 1] = 0; // make sure it's a null-terminated string if (1 != sscanf(buffer, "%lf", &percent)) { Index: emctaskmain.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/emctaskmain.cc,v retrieving revision 1.21.2.1 retrieving revision 1.21.2.1.2.1 diff -C2 -d -r1.21.2.1 -r1.21.2.1.2.1 *** emctaskmain.cc 20 Feb 2005 03:43:55 -0000 1.21.2.1 --- emctaskmain.cc 29 Sep 2005 14:10:42 -0000 1.21.2.1.2.1 *************** *** 225,228 **** --- 225,229 ---- #include <sys/wait.h> // waitpid(), WNOHANG, WIFEXITED #include <ctype.h> // isspace() + #include <libintl.h> } #include "rcs.hh" // NML classes, nmlErrorFormat() *************** *** 230,237 **** #include "canon.hh" // CANON_TOOL_TABLE stuff #include "nml_mod.hh" // RCS_DONE ! #include "inifile.h" // INIFILE #include "interpl.hh" // NML_INTERP_LIST, interp_list #include "emcglb.h" // EMC_INIFILE,NMLFILE, EMC_TASK_CYCLE_TIME ! #include "rs274ngc_return.hh" // NCE_FILE_NOT_OPEN /* ident tag */ #ifndef __GNUC__ --- 231,245 ---- #include "canon.hh" // CANON_TOOL_TABLE stuff #include "nml_mod.hh" // RCS_DONE ! #include "inifile.hh" // INIFILE #include "interpl.hh" // NML_INTERP_LIST, interp_list #include "emcglb.h" // EMC_INIFILE,NMLFILE, EMC_TASK_CYCLE_TIME ! #include "interp_return.hh" // NCE_FILE_NOT_OPEN ! ! #ifdef USE_NLS ! #define _(string) gettext(string) ! #else ! #define _(string) (string) ! #endif ! /* ident tag */ #ifndef __GNUC__ *************** *** 329,333 **** // force a NULL at the end for safety ! error_msg.error[EMC_OPERATOR_ERROR_LEN - 1] = 0; // write it --- 337,341 ---- // force a NULL at the end for safety ! error_msg.error[LINELEN - 1] = 0; // write it *************** *** 353,357 **** // force a NULL at the end for safety ! text_msg.text[EMC_OPERATOR_TEXT_LEN - 1] = 0; // write it --- 361,365 ---- // force a NULL at the end for safety ! text_msg.text[LINELEN - 1] = 0; // write it *************** *** 376,380 **** // force a NULL at the end for safety ! display_msg.display[EMC_OPERATOR_DISPLAY_LEN - 1] = 0; // write it --- 384,388 ---- // force a NULL at the end for safety ! display_msg.display[LINELEN - 1] = 0; // write it *************** *** 431,436 **** int emcSystemCmd(char *s) { ! char buffer[EMC_SYSTEM_CMD_LEN]; ! char *argv[EMC_SYSTEM_CMD_LEN / 2 + 1]; if (0 != emcSystemCmdPid) { --- 439,444 ---- int emcSystemCmd(char *s) { ! char buffer[LINELEN]; ! char *argv[LINELEN / 2 + 1]; if (0 != emcSystemCmdPid) { *************** *** 455,459 **** // we're the child // convert string to argc/argv ! argvize(s, buffer, argv, EMC_SYSTEM_CMD_LEN); // drop any setuid privileges setuid(getuid()); --- 463,467 ---- // we're the child // convert string to argc/argv ! argvize(s, buffer, argv, LINELEN); // drop any setuid privileges setuid(getuid()); *************** *** 561,585 **** case EMC_TRAJ_LINEAR_MOVE_TYPE: if (linear_move->end.tran.x > stat->motion.axis[0].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds +X limit"); return -1; } if (linear_move->end.tran.y > stat->motion.axis[1].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds +Y limit"); return -1; } if (linear_move->end.tran.z > stat->motion.axis[2].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds +Z limit"); return -1; } if (linear_move->end.tran.x < stat->motion.axis[0].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds -X limit"); return -1; } if (linear_move->end.tran.y < stat->motion.axis[1].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds -Y limit"); return -1; } if (linear_move->end.tran.z < stat->motion.axis[2].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds -Z limit"); return -1; } --- 569,593 ---- case EMC_TRAJ_LINEAR_MOVE_TYPE: if (linear_move->end.tran.x > stat->motion.axis[0].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds +X limit")); return -1; } if (linear_move->end.tran.y > stat->motion.axis[1].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds +Y limit")); return -1; } if (linear_move->end.tran.z > stat->motion.axis[2].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds +Z limit")); return -1; } if (linear_move->end.tran.x < stat->motion.axis[0].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds -X limit")); return -1; } if (linear_move->end.tran.y < stat->motion.axis[1].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds -Y limit")); return -1; } if (linear_move->end.tran.z < stat->motion.axis[2].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds -Z limit")); return -1; } *************** *** 588,612 **** case EMC_TRAJ_CIRCULAR_MOVE_TYPE: if (circular_move->end.tran.x > stat->motion.axis[0].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds +X limit"); return -1; } if (circular_move->end.tran.y > stat->motion.axis[1].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds +Y limit"); return -1; } if (circular_move->end.tran.z > stat->motion.axis[2].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds +Z limit"); return -1; } if (circular_move->end.tran.x < stat->motion.axis[0].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds -X limit"); return -1; } if (circular_move->end.tran.y < stat->motion.axis[1].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds -Y limit"); return -1; } if (circular_move->end.tran.z < stat->motion.axis[2].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, "exceeds -Z limit"); return -1; } --- 596,620 ---- case EMC_TRAJ_CIRCULAR_MOVE_TYPE: if (circular_move->end.tran.x > stat->motion.axis[0].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds +X limit")); return -1; } if (circular_move->end.tran.y > stat->motion.axis[1].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds +Y limit")); return -1; } if (circular_move->end.tran.z > stat->motion.axis[2].maxPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds +Z limit")); return -1; } if (circular_move->end.tran.x < stat->motion.axis[0].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds -X limit")); return -1; } if (circular_move->end.tran.y < stat->motion.axis[1].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds -Y limit")); return -1; } if (circular_move->end.tran.z < stat->motion.axis[2].minPositionLimit) { ! emcOperatorError(0, "%s\n%s", stat->task.command, _("exceeds -Z limit")); return -1; } *************** *** 733,737 **** default: emcOperatorError(0, ! "command (%s) cannot be executed until the machine is out of E-stop and turned on", emc_symbol_lookup(type)); retval = -1; --- 741,745 ---- default: emcOperatorError(0, ! _( "command (%s) cannot be executed until the machine is out of E-stop and turned on"), emc_symbol_lookup(type)); retval = -1; *************** *** 843,847 **** // otherwise we can't handle it default: ! sprintf(errstring, "can't do that (%s) in manual mode", emc_symbol_lookup(type)); emcOperatorError(0, errstring); --- 851,855 ---- // otherwise we can't handle it default: ! sprintf(errstring, _("can't do that (%s) in manual mode"), emc_symbol_lookup(type)); emcOperatorError(0, errstring); *************** *** 937,941 **** default: sprintf(errstring, ! "can't do that (%s) in auto mode with the interpreter idle", emc_symbol_lookup(type)); emcOperatorError(0, errstring); --- 945,949 ---- default: sprintf(errstring, ! _("can't do that (%s) in auto mode with the interpreter idle"), emc_symbol_lookup(type)); emcOperatorError(0, errstring); *************** *** 997,1001 **** default: sprintf(errstring, ! "can't do that (%s) in auto mode with the interpreter reading", emc_symbol_lookup(type)); emcOperatorError(0, errstring); --- 1005,1009 ---- default: sprintf(errstring, ! _("can't do that (%s) in auto mode with the interpreter reading"), emc_symbol_lookup(type)); emcOperatorError(0, errstring); *************** *** 1022,1026 **** rcs_print("emcTaskPlanRead() returned %d\n", readRetval); } ! if (readRetval > RS274NGC_MIN_ERROR || readRetval == 3 /* RS274NGC_ENDFILE */ || readRetval == 1 /* RS274NGC_EXIT */ || --- 1030,1034 ---- rcs_print("emcTaskPlanRead() returned %d\n", readRetval); } ! if (readRetval > INTERP_MIN_ERROR || readRetval == 3 /* RS274NGC_ENDFILE */ || readRetval == 1 /* RS274NGC_EXIT */ || *************** *** 1051,1055 **** } if (execRetval == -1 /* RS274NGC_ERROR */ || ! execRetval > RS274NGC_MIN_ERROR || execRetval == 1 /* RS274NGC_EXIT */ ) { // end of file --- 1059,1063 ---- } if (execRetval == -1 /* RS274NGC_ERROR */ || ! execRetval > INTERP_MIN_ERROR || execRetval == 1 /* RS274NGC_EXIT */ ) { // end of file *************** *** 1164,1168 **** default: sprintf(errstring, ! "can't do that (%s) in auto mode with the interpreter paused", emc_symbol_lookup(type)); emcOperatorError(0, errstring); --- 1172,1176 ---- default: sprintf(errstring, ! _("can't do that (%s) in auto mode with the interpreter paused"), emc_symbol_lookup(type)); emcOperatorError(0, errstring); *************** *** 1226,1230 **** default: sprintf(errstring, ! "can't do that (%s) in auto mode with the interpreter waiting", emc_symbol_lookup(type)); emcOperatorError(0, errstring); --- 1234,1238 ---- default: sprintf(errstring, ! _("can't do that (%s) in auto mode with the interpreter waiting"), emc_symbol_lookup(type)); emcOperatorError(0, errstring); *************** *** 1339,1343 **** default: ! sprintf(errstring, "can't do that (%s) in MDI mode", emc_symbol_lookup(type)); emcOperatorError(0, errstring); --- 1347,1351 ---- default: ! sprintf(errstring, _("can't do that (%s) in MDI mode"), emc_symbol_lookup(type)); emcOperatorError(0, errstring); *************** *** 1968,1976 **** rcs_print("emcTaskPlanOpen(%s) returned %d\n", open_msg->file, retval); } ! if (retval > RS274NGC_MIN_ERROR) { retval = -1; } if (-1 == retval) { ! emcOperatorError(0, "can't open %s", open_msg->file); } else { strcpy(emcStatus->task.file, open_msg->file); --- 1976,1984 ---- rcs_print("emcTaskPlanOpen(%s) returned %d\n", open_msg->file, retval); } ! if (retval > INTERP_MIN_ERROR) { retval = -1; } if (-1 == retval) { ! emcOperatorError(0, _("can't open %s"), open_msg->file); } else { strcpy(emcStatus->task.file, open_msg->file); *************** *** 2052,2056 **** rcs_print("emcTaskPlanInit() returned %d\n", retval); } ! if (retval > RS274NGC_MIN_ERROR) { retval = -1; } --- 2060,2064 ---- rcs_print("emcTaskPlanInit() returned %d\n", retval); } ! if (retval > INTERP_MIN_ERROR) { retval = -1; } *************** *** 2062,2066 **** rcs_print("emcTaskPlanSynch() returned %d\n", retval); } ! if (retval > RS274NGC_MIN_ERROR) { retval = -1; } --- 2070,2074 ---- rcs_print("emcTaskPlanSynch() returned %d\n", retval); } ! if (retval > INTERP_MIN_ERROR) { retval = -1; } *************** *** 2714,2720 **** static int iniLoad(const char *filename) { ! INIFILE inifile; const char *inistring; ! char version[INIFILE_MAX_LINELEN]; double saveDouble; --- 2722,2728 ---- static int iniLoad(const char *filename) { ! Inifile inifile; const char *inistring; ! char version[LINELEN]; double saveDouble; *************** *** 2999,3008 **** if (last_emc_status.motion.axis[i].fault == 0 && emcStatus->motion.axis[i].fault == 1) { ! emcOperatorError(0, "Amplifier fault on axis %d.", i); } last_emc_status.motion.axis[i].fault = emcStatus->motion.axis[i].fault; if (last_emc_status.motion.axis[i].minSoftLimit == 0 && emcStatus->motion.axis[i].minSoftLimit == 1) { ! emcOperatorError(0, "Minimum Software Limit on axis %d exceeded.", i); } last_emc_status.motion.axis[i].minSoftLimit = --- 3007,3016 ---- if (last_emc_status.motion.axis[i].fault == 0 && emcStatus->motion.axis[i].fault == 1) { ! emcOperatorError(0, _("Amplifier fault on axis %d."), i); } last_emc_status.motion.axis[i].fault = emcStatus->motion.axis[i].fault; if (last_emc_status.motion.axis[i].minSoftLimit == 0 && emcStatus->motion.axis[i].minSoftLimit == 1) { ! emcOperatorError(0, _("Minimum Software Limit on axis %d exceeded."), i); } last_emc_status.motion.axis[i].minSoftLimit = *************** *** 3010,3014 **** if (last_emc_status.motion.axis[i].maxSoftLimit == 0 && emcStatus->motion.axis[i].maxSoftLimit == 1) { ! emcOperatorError(0, "Maximum Software Limit on axis %d exceeded.", i); } last_emc_status.motion.axis[i].maxSoftLimit = --- 3018,3022 ---- if (last_emc_status.motion.axis[i].maxSoftLimit == 0 && emcStatus->motion.axis[i].maxSoftLimit == 1) { ! emcOperatorError(0, _("Maximum Software Limit on axis %d exceeded."), i); } last_emc_status.motion.axis[i].maxSoftLimit = *************** *** 3016,3020 **** if (last_emc_status.motion.axis[i].minHardLimit == 0 && emcStatus->motion.axis[i].minHardLimit == 1) { ! emcOperatorError(0, "Minimum Hardware Limit on axis %d exceeded.", i); } last_emc_status.motion.axis[i].minHardLimit = --- 3024,3028 ---- if (last_emc_status.motion.axis[i].minHardLimit == 0 && emcStatus->motion.axis[i].minHardLimit == 1) { ! emcOperatorError(0, _("Minimum Hardware Limit on axis %d exceeded."), i); } last_emc_status.motion.axis[i].minHardLimit = *************** *** 3022,3026 **** if (last_emc_status.motion.axis[i].maxHardLimit == 0 && emcStatus->motion.axis[i].maxHardLimit == 1) { ! emcOperatorError(0, "Maximum Hardware Limit on axis %d exceeded.", i); } last_emc_status.motion.axis[i].maxHardLimit = --- 3030,3034 ---- if (last_emc_status.motion.axis[i].maxHardLimit == 0 && emcStatus->motion.axis[i].maxHardLimit == 1) { ! emcOperatorError(0, _("Maximum Hardware Limit on axis %d exceeded."), i); } last_emc_status.motion.axis[i].maxHardLimit = *************** *** 3037,3041 **** // interval if ini file says to run full out via // [TASK] CYCLE_TIME <= 0.0 ! if (emcTaskNoDelay) { #if defined(LINUX_KERNEL_2_2) // work around bug in gettimeofday() by running off nominal time --- 3045,3051 ---- // interval if ini file says to run full out via // [TASK] CYCLE_TIME <= 0.0 ! if ((emcTaskNoDelay) || (emcStatus->task.readLine < programStartLine) ! || (programStartLine < 0) ! ) { #if defined(LINUX_KERNEL_2_2) // work around bug in gettimeofday() by running off nominal time *************** *** 3046,3052 **** EMC_TASK_CYCLE_TIME = endTime - startTime; if (EMC_TASK_CYCLE_TIME < minTime && !done) { ! minTime = EMC_TASK_CYCLE_TIME; } else if (EMC_TASK_CYCLE_TIME > maxTime && !done) { ! maxTime = EMC_TASK_CYCLE_TIME; } startTime = endTime; --- 3056,3062 ---- EMC_TASK_CYCLE_TIME = endTime - startTime; if (EMC_TASK_CYCLE_TIME < minTime && !done) { ! minTime = EMC_TASK_CYCLE_TIME; } else if (EMC_TASK_CYCLE_TIME > maxTime && !done) { ! maxTime = EMC_TASK_CYCLE_TIME; } startTime = endTime; Index: yemc.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Attic/yemc.cc,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.1.4.1 diff -C2 -d -r1.1.2.1 -r1.1.2.1.4.1 *** yemc.cc 20 Feb 2005 03:43:56 -0000 1.1.2.1 --- yemc.cc 29 Sep 2005 14:10:42 -0000 1.1.2.1.4.1 *************** *** 32,38 **** #include "emcglb.h" // EMC_NMLFILE, TRAJ_MAX_VELOCITY, TOOL_TABLE_FILE #include "emccfg.h" // DEFAULT_TRAJ_MAX_VELOCITY ! #include "inifile.h" // INIFILE #include "posemath.h" // PmPose, pmQuatRpyConvert(), etc. #include "emcpos.h" // EmcPose /* --- 32,40 ---- #include "emcglb.h" // EMC_NMLFILE, TRAJ_MAX_VELOCITY, TOOL_TABLE_FILE #include "emccfg.h" // DEFAULT_TRAJ_MAX_VELOCITY [...1338 lines suppressed...] ! if (0 == emcErrorNmlGet("xemc")) { good = 1; break; *************** *** 5844,5850 **** programFwString = ! (char *) malloc(PROGRAM_FW_NUM_LINES * PROGRAM_FW_LEN_LINES); ! if (0 != fwInit(&programFw, PROGRAM_FW_NUM_LINES, PROGRAM_FW_LEN_LINES)) { fprintf(stderr, "can't init file window\n"); exit(1); --- 4989,4995 ---- programFwString = ! (char *) malloc(PROGRAM_FW_NUM_LINES * BUFFERLEN); ! if (0 != fwInit(&programFw, PROGRAM_FW_NUM_LINES, BUFFERLEN)) { fprintf(stderr, "can't init file window\n"); exit(1); Index: Makefile =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Makefile,v retrieving revision 1.7.18.4 retrieving revision 1.7.18.4.2.1 diff -C2 -d -r1.7.18.4 -r1.7.18.4.2.1 *** Makefile 4 Mar 2005 10:36:50 -0000 1.7.18.4 --- Makefile 29 Sep 2005 14:10:42 -0000 1.7.18.4.2.1 *************** *** 16,20 **** emcprobe.cc \ keystick.cc \ ! emcprobe.cc OBJS = emccanon.o \ --- 16,22 ---- emcprobe.cc \ keystick.cc \ ! emcprobe.cc \ ! xemc.cc \ ! yemc.cc OBJS = emccanon.o \ *************** *** 27,32 **** emcsh.o \ keystick.o \ ! emcprobe.o ! BINS = bridgeporttask \ --- 29,35 ---- emcsh.o \ keystick.o \ ! emcprobe.o \ ! xemc.o \ ! yemc.o BINS = bridgeporttask \ *************** *** 48,52 **** keystick \ emcprobe \ ! emcpanel LOCAL_CXXFLAGS := $(LOCAL_CFLAGS) $(TCL_CFLAGS) -Wno-unused --- 51,57 ---- keystick \ emcprobe \ ! emcpanel \ ! xemc \ ! yemc LOCAL_CXXFLAGS := $(LOCAL_CFLAGS) $(TCL_CFLAGS) -Wno-unused *************** *** 78,88 **** $(TMP_DIR)/emccanon.o \ $(TMP_DIR)/emctaskmain.o \ ! $(TMP_DIR)/rs274abc.o \ $(TMP_DIR)/usrmotintf.o \ $(TMP_DIR)/emcmotlog.o \ $(TMP_DIR)/emcmotutil.o \ ! $(TMP_DIR)/bridgeporttaskintf.o \ ! $(TMP_DIR)/libemc.a ! $(CXX) $^ -L$(LIB_DIR) -lnml -Wl,-rpath,$(LIB_DIR) -o $@ $(BIN_DIR)/minimilltask: \ --- 83,92 ---- $(TMP_DIR)/emccanon.o \ $(TMP_DIR)/emctaskmain.o \ ! $(TMP_DIR)/rs274.o \ $(TMP_DIR)/usrmotintf.o \ $(TMP_DIR)/emcmotlog.o \ $(TMP_DIR)/emcmotutil.o \ ! $(TMP_DIR)/bridgeporttaskintf.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -o $@ $(BIN_DIR)/minimilltask: \ *************** *** 91,143 **** $(TMP_DIR)/emccanon.o \ $(TMP_DIR)/emctaskmain.o \ ! $(TMP_DIR)/rs274abc.o \ $(TMP_DIR)/usrmotintf.o \ $(TMP_DIR)/emcmotlog.o \ $(TMP_DIR)/emcmotutil.o \ ! $(TMP_DIR)/minimilltaskintf.o \ ! $(TMP_DIR)/libemc.a ! $(CXX) $^ -L$(LIB_DIR) -lnml -Wl,-rpath,$(LIB_DIR) -o $@ ! $(BIN_DIR)/emcpanel: \ ! $(TMP_DIR)/emcpanel.o \ ! $(TMP_DIR)/getinput.o \ ! $(TMP_DIR)/libemc.a ! $(CXX) $^ -L$(LIB_DIR) -lnml -Wl,-rpath,$(LIB_DIR) -o $@ ! $(BIN_DIR)/emcsvr: \ ! $(TMP_DIR)/emcsvr.o \ ! $(TMP_DIR)/libemc.a ! $(CXX) $^ -L$(LIB_DIR) -lnml -Wl,-rpath,$(LIB_DIR) -o $@ $(BIN_DIR)/inimot: \ $(TMP_DIR)/inimot.o \ $(TMP_DIR)/emcmotglb.o \ - $(TMP_DIR)/emcglb.o \ $(TMP_DIR)/emcmotlog.o \ $(TMP_DIR)/emcmotutil.o \ $(TMP_DIR)/usrmotintf.o \ ! $(TMP_DIR)/initraj.o \ ! $(TMP_DIR)/iniaxis.o \ ! $(TMP_DIR)/minimilltaskintf.o \ ! $(TMP_DIR)/libemc.a ! $(CXX) $^ -L$(LIB_DIR) -lnml -Wl,-rpath,$(LIB_DIR) -o $@ ! $(BIN_DIR)/emcdummy: \ ! $(TMP_DIR)/emcdummy.o \ ! $(TMP_DIR)/libemc.a ! $(CXX) $^ -L$(LIB_DIR) -lnml -Wl,-rpath,$(LIB_DIR) -o $@ ! $(BIN_DIR)/emcsh: $(TMP_DIR)/emcsh.o $(TMP_DIR)/libemc.a ! $(CXX) $^ -L$(LIB_DIR) -lnml -Wl,-rpath,$(LIB_DIR) $(TCL_LIBS) -o $@ ! $(BIN_DIR)/keystick: \ ! $(TMP_DIR)/keystick.o \ ! $(TMP_DIR)/libemc.a ! $(CXX) $^ -L$(LIB_DIR) -lnml -Wl,-rpath,$(LIB_DIR) -lncurses -o $@ ! $(BIN_DIR)/emcprobe: \ ! $(TMP_DIR)/emcprobe.o \ ! $(TMP_DIR)/libemc.a ! $(CXX) $^ -L$(LIB_DIR) -lnml -Wl,-rpath,$(LIB_DIR) -o $@ $(BIN_DIR)/tkemc: \ --- 95,138 ---- $(TMP_DIR)/emccanon.o \ $(TMP_DIR)/emctaskmain.o \ ! $(TMP_DIR)/rs274.o \ $(TMP_DIR)/usrmotintf.o \ $(TMP_DIR)/emcmotlog.o \ $(TMP_DIR)/emcmotutil.o \ ! $(TMP_DIR)/minimilltaskintf.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -o $@ ! $(BIN_DIR)/emcpanel: $(TMP_DIR)/emcpanel.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -o $@ ! $(BIN_DIR)/emcsvr: $(TMP_DIR)/emcsvr.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -o $@ $(BIN_DIR)/inimot: \ $(TMP_DIR)/inimot.o \ $(TMP_DIR)/emcmotglb.o \ $(TMP_DIR)/emcmotlog.o \ $(TMP_DIR)/emcmotutil.o \ $(TMP_DIR)/usrmotintf.o \ ! $(TMP_DIR)/minimilltaskintf.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -o $@ ! $(BIN_DIR)/emcdummy: $(TMP_DIR)/emcdummy.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -o $@ ! $(BIN_DIR)/emcsh: $(TMP_DIR)/emcsh.o $(TMP_DIR)/hmi_base.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) $(TCL_LIBS) -o $@ ! $(BIN_DIR)/keystick: $(TMP_DIR)/keystick.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -lncurses -o $@ ! $(BIN_DIR)/emcprobe: $(TMP_DIR)/emcprobe.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -o $@ ! # $(CPLUSPLUSLINK) $(XLINK) -o $@ ! ! $(BIN_DIR)/xemc: $(TMP_DIR)/xemc.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -L/usr/X11/lib -L/usr/X11R6/lib -lXaw -o $@ ! ! $(BIN_DIR)/yemc: $(TMP_DIR)/yemc.o ! $(CXX) $^ -L$(LIB_DIR) -lemc -lnml -Wl,-rpath,$(LIB_DIR) -L/usr/X11/lib -L/usr/X11R6/lib -lXaw -o $@ $(BIN_DIR)/tkemc: \ Index: emcsvr.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/emcsvr.cc,v retrieving revision 1.2.14.1 retrieving revision 1.2.14.1.2.1 diff -C2 -d -r1.2.14.1 -r1.2.14.1.2.1 *** emcsvr.cc 20 Feb 2005 03:43:55 -0000 1.2.14.1 --- emcsvr.cc 29 Sep 2005 14:10:42 -0000 1.2.14.1.2.1 *************** *** 43,47 **** static int iniLoad(const char *filename) { ! INIFILE inifile; const char *inistring; --- 43,47 ---- static int iniLoad(const char *filename) { ! Inifile inifile; const char *inistring; Index: mini.tcl =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Attic/mini.tcl,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.1.4.1 diff -C2 -d -r1.1.2.1 -r1.1.2.1.4.1 *** mini.tcl 20 Feb 2005 03:43:55 -0000 1.1.2.1 --- mini.tcl 29 Sep 2005 14:10:42 -0000 1.1.2.1.4.1 *************** *** 87,92 **** set numaxes [emc_ini "AXES" "TRAJ"] set coordnames [ emc_ini "COORDINATES" "TRAJ"] ! set coords [emc_ini "POSITION_OFFSET" "DISPLAY"] ! set actcmd [emc_ini "POSITION_FEEDBACK" "DISPLAY"] set numcoords 0 --- 87,134 ---- set numaxes [emc_ini "AXES" "TRAJ"] set coordnames [ emc_ini "COORDINATES" "TRAJ"] ! ! # AJ: took over coords setup from tkemc ! # old style: ! # set coords [emc_ini "POSITION_OFFSET" "DISPLAY"] ! # coords can be relative or machine ! set temp [emc_ini "POSITION_OFFSET" "DISPLAY"] ! if {$temp == "RELATIVE"} { ! set coords relative ! } elseif {$temp == "MACHINE"} { ! set coords machine ! } else { ! # not found, or invalid, so set to relative ! set coords relative ! } ! ! proc toggleRelAbs {} { ! global coords ! if {$coords == "relative"} { ! set coords machine ! } else { ! set coords relative ! } ! } ! ! # actcmd can be actual or commanded ! set temp [emc_ini "POSITION_FEEDBACK" "DISPLAY"] ! if {$temp == "ACTUAL"} { ! set actcmd actual ! } elseif {$temp == "COMMANDED"} { ! set actcmd commanded ! } else { ! # not found, or invalid, so set to actual ! set actcmd actual ! } ! ! proc toggleCmdAct {} { ! global actcmd ! if {$actcmd == "actual"} { ! set actcmd commanded ! } else { ! set actcmd actual ! } ! } ! set numcoords 0 Index: bridgeporttaskintf.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/Attic/bridgeporttaskintf.cc,v retrieving revision 1.1.2.1 retrieving revision 1.1.2.1.4.1 diff -C2 -d -r1.1.2.1 -r1.1.2.1.4.1 *** bridgeporttaskintf.cc 20 Feb 2005 03:43:55 -0000 1.1.2.1 --- bridgeporttaskintf.cc 29 Sep 2005 14:10:42 -0000 1.1.2.1.4.1 *************** *** 126,130 **** #include "usrmotintf.h" // usrmotInit(), usrmotReadEmcmotStatus(), etc. #include "emcmot.h" // EMCMOT_COMMAND,STATUS, etc. ! #include "emcmotcfg.h" // EMCMOT_ERROR_LEN #include "canon.hh" // CANON_PLANE #include "posemath.h" // PM_POSE --- 126,130 ---- #include "usrmotintf.h" // usrmotInit(), usrmotReadEmcmotStatus(), etc. #include "emcmot.h" // EMCMOT_COMMAND,STATUS, etc. ! #include "emcmotcfg.h" #include "canon.hh" // CANON_PLANE #include "posemath.h" // PM_POSE *************** *** 939,943 **** static EMCMOT_STATUS emcmotStatus; static EMCMOT_DEBUG emcmotDebug; ! static char errorString[EMCMOT_ERROR_LEN]; static int new_config = 0; --- 939,943 ---- static EMCMOT_STATUS emcmotStatus; static EMCMOT_DEBUG emcmotDebug; ! static char errorString[LINELEN]; static int new_config = 0; *************** *** 1433,1437 **** EMC_TRAJ_MODE_FREE ) ; ! // enabled iff motion enabled and all axes enabled stat->enabled = 0; // start at disabled if (emcmotStatus.motionFlag & EMCMOT_MOTION_ENABLE_BIT) { --- 1433,1437 ---- EMC_TRAJ_MODE_FREE ) ; ! // enabled if motion enabled and all axes enabled stat->enabled = 0; // start at disabled if (emcmotStatus.motionFlag & EMCMOT_MOTION_ENABLE_BIT) { *************** *** 2344,2349 **** if (r1 == 0) { ! strncpy(emcStatus->logFile, file, EMC_LOG_FILENAME_LEN - 1); ! emcStatus->logFile[EMC_LOG_FILENAME_LEN - 1] = 0; } // type, size, skip, open, and started will be gotten out of --- 2344,2349 ---- if (r1 == 0) { ! strncpy(emcStatus->logFile, file, LINELEN - 1); ! emcStatus->logFile[LINELEN - 1] = 0; } // type, size, skip, open, and started will be gotten out of Index: emctask.cc =================================================================== RCS file: /cvsroot/emc/emc2/src/emc/task/emctask.cc,v retrieving revision 1.3.14.1 retrieving revision 1.3.14.1.2.1 diff -C2 -d -r1.3.14.1 -r1.3.14.1.2.1 *** emctask.cc 20 Feb 2005 03:43:55 -0000 1.3.14.1 --- emctask.cc 29 Sep 2005 14:10:42 -0000 1.3.14.1.2.1 *************** *** 1,39 **** ! /* ! emctask.cc ! ! Mode and state management for EMC_TASK class ! ! Modification history: ! ! 7-Jan-2004 FMP took out NEW_INTERPRETER ifdefs, and built everything ! in for the new interpreter. ! 14-Nov-2000 WPS modified emcTaskExecute so that hopefully after an abort, ! estop or fault the current line would still be displayed. ! 2-Jun-2000 FMP added emcLubeOn,Off() to emcTaskSetState(), to turn lube ! on when machine goes on, off otherwise ! 10-Jun-1999 FMP added emcTaskPlanCommand(); took setting of task->command ! out of emcTaskUpdate() since it's in emctaskmain.cc during read-exec phase ! 22-Feb-1999 FMP took calls to turn spindle, coolant off when going into ! estop since they interfered with estop command ! 19-Feb-1999 FMP changed order for estopping, doing aux estop, then ! motion, then spindle, coolant, etc. ! 23-Dec-1998 FMP added emcTaskPlanSet,Is,ClearWait(); took tool length ! offset update out of here and moved into emctaskmain.cc so that it won't ! be read-ahead; ditto with program origin ! 3-Aug-1998 FMP added toolOffset.z = GET_TOOL_LENGTH_OFFSET() ! 30-Jul-1998 FMP added active G,M codes ! 2-Jul-1998 FMP added emcTaskPlanSynch() ! 26-Jun-1998 FMP added calls to turn spindle and coolant off when ! going into estop ! 20-May-1998 FMP added call to rs274ngc_synch() when entering MDI ! or AUTO mode ! 24-Feb-1998 FMP made abort order axis, traj, io, in emcTaskAbort() ! 7-Jan-1998 FMP changed call from emcIoHalt() (which deletes NML ! buffer) to emcIoAbort(), in emcTaskAbort() ! 15-Dec-1997 FMP eliminated checks on state in emcTaskSetState, just ! forcing the function calls regardless ! 17-Jul-1997 FMP added subsystem checks for mode and state changes ! 3-Jul-1997 FMP created from original HME wmsa.cc ! */ #include <stdlib.h> --- 1,19 ---- ! /******************************************************************** ! * Description: emctask.cc ! * Mode and state management for EMC_TASK class ! * ! * Derived from a work by Fred Proctor & Will Shackleford ! * ! * Author: ! * License: GPL Version 2 ! * System: Linux ! * ! * Copyright (c) 2004 All rights reserved. ! * ! * Last change: ! * $Revision$ ! * $Author$ ! * $Date$ ! ********************************************************************/ #include <stdlib.h> *************** *** 42,45 **** --- 22,26 ---- #include <unistd.h> // stat() + #include "rcs.hh" // INIFILE #include "emc.hh" // EMC NML #include "emcglb.h" // EMC_INIFILE *************** *** 47,64 **** #include "canon.hh" // CANON_VECTOR, GET_PROGRAM_ORIGIN() #include "rs274ngc.hh" // the interpreter ! #include "rs274ngc_return.hh" // NCE_FILE_NOT_OPEN ! ! // ident tag ! #ifndef __GNUC__ ! #ifndef __attribute__ ! #define __attribute__(x) ! #endif ! #endif ! ! static char __attribute__((unused)) ident[] = "$Id$"; ! // flag for how we want to interpret traj coord mode, as mdi or auto static int mdiOrAuto = EMC_TASK_MODE_AUTO; // EMC_TASK interface --- 28,38 ---- #include "canon.hh" // CANON_VECTOR, GET_PROGRAM_ORIGIN() #include "rs274ngc.hh" // the interpreter ! #include "interp_return.hh" // INTERP_FILE_NOT_OPEN ! /* flag for how we want to interpret traj coord mode, as mdi or auto */ static int mdiOrAuto = EMC_TASK_MODE_AUTO; + Interp interp; + // EMC_TASK interface *************** *** 69,77 **** */ ! static char user_defined_fmt[EMC_SYSTEM_CMD_LEN] = "programs/M1%02d"; static void user_defined_add_m_code(int num, double arg1, double arg2) { ! char fmt[EMC_SYSTEM_CMD_LEN]; EMC_SYSTEM_CMD system_cmd; --- 43,51 ---- */ ! static char user_defined_fmt[LINELEN] = "gcode/M1%02d"; static void user_defined_add_m_code(int num, double arg1, double arg2) { ! char fmt[LINELEN]; EMC_SYSTEM_CMD system_cmd; *************** *** 85,92 **** { int index; ! char path[EMC_SYSTEM_CMD_LEN]; struct stat buf; ! /* check for programs named programs/M100 .. programs/M199 and add any to the user defined functions list */ for (index = 0; index < USER_DEFINED_FUNCTION_NUM; index++) { --- 59,81 ---- { int index; ! char path[LINELEN]; struct stat buf; + Inifile inifile; + char inistring[LINELEN]; ! // read out directory where programs are located ! inifile.open(EMC_INIFILE); ! inifile.tilde(inifile.find("PROGRAM_PREFIX", "DISPLAY"), inistring); ! inifile.close(); ! ! // if we have a program prefix, override the default user_defined_fmt ! // string with program prefix, then "M1%02d", e.g. ! // nc_files/M101, where the %%02d means 2 digits after the M code ! // and we need two % to get the literal % ! if (NULL != inistring) { ! sprintf(user_defined_fmt, "%sM1%%02d", inistring); ! } ! ! /* check for programs named programs/M100 .. programs/M199 and add any to the user defined functions list */ for (index = 0; index < USER_DEFINED_FUNCTION_NUM; index++) { *************** *** 96,104 **** USER_DEFINED_FUNCTION_ADD(user_defined_add_m_code, index); if (EMC_DEBUG & EMC_DEBUG_CONFIG) { ! rcs_print("emcTaskInit: adding user-defined function %s\n", path); } } else { if (EMC_DEBUG & EMC_DEBUG_CONFIG) { ! rcs_print("emcTaskInit: user-defined function %s found, but not executable, so ignoring\n", path); } } --- 85,97 ---- USER_DEFINED_FUNCTION_ADD(user_defined_add_m_code, index); if (EMC_DEBUG & EMC_DEBUG_CONFIG) { ! rcs_print ! ("emcTaskInit: adding user-defined function %s\n", ! path); } } else { if (EMC_DEBUG & EMC_DEBUG_CONFIG) { ! rcs_print ! ("emcTaskInit: user-defined function %s found, but not executable, so ignoring\n", ! path); } } *************** *** 181,187 **** case EMC_TASK_STATE_ESTOP_RESET: // reset the estop ! if(emcStatus->io.aux.estopIn) ! { ! rcs_print("Can't come out of estop while the estop button is in."); } emcAuxEstopOff(); --- 174,180 ---- case EMC_TASK_STATE_ESTOP_RESET: // reset the estop ! if (emcStatus->io.aux.estopIn) { ! rcs_print ! ("Can't come out of estop while the estop button is in."); } emcAuxEstopOff(); *************** *** 229,233 **** return EMC_TASK_MODE_MANUAL; } - // else traj is in coord mode-- we can be in either mdi or auto return mdiOrAuto; --- 222,225 ---- *************** *** 263,303 **** static int waitFlag = 0; ! static char rs274ngc_error_text_buf[256]; ! static char rs274ngc_stack_buf[256]; ! ! static void print_rs274ngc_error(int retval) { int index = 0; ! if(retval == 0) ! { return; } ! if( 0 != emcStatus) ! { emcStatus->task.interpreter_errcode = retval; } ! rs274ngc_error_text_buf[0]=0; ! rs274ngc_error_text(retval, rs274ngc_error_text_buf,256); ! if(0 != rs274ngc_error_text_buf[0]) ! { ! rcs_print_error("rs274ngc_error: %s\n",rs274ngc_error_text_buf); } ! emcOperatorError(0,rs274ngc_error_text_buf); index=0; ! if (EMC_DEBUG & EMC_DEBUG_INTERP) ! { ! rcs_print("rs274ngc_stack: \t"); ! while(index < 5) ! { ! rs274ngc_stack_buf[0]=0; ! rs274ngc_stack_name(index,rs274ngc_stack_buf,256); ! if(0 == rs274ngc_stack_buf[0]) ! { break; } ! rcs_print(" - %s ",rs274ngc_stack_buf); index++; } --- 255,291 ---- static int waitFlag = 0; + static char interp_error_text_buf[LINELEN]; + static char interp_stack_buf[LINELEN]; ! static void print_interp_error(int retval) { int index = 0; ! if (retval == 0) { return; } ! if (0 != emcStatus) { emcStatus->task.interpreter_errcode = retval; } ! interp_error_text_buf[0] = 0; ! interp.error_text(retval, interp_error_text_buf, LINELEN); ! if (0 != interp_error_text_buf[0]) { ! rcs_print_error("interp_error: %s\n", interp_error_text_buf); } ! char tmp_buf[LINELEN]; ! snprintf(tmp_buf, LINELEN, "line %u: %s", interp.sequence_number(), interp_error_text_buf); ! emcOperatorError(0, tmp_buf); ! // emcOperatorError(0, interp_error_text_buf); index=0; ! if (EMC_DEBUG & EMC_DEBUG_INTERP) { ! rcs_print("Interpreter stack: \t"); ! while (index < 5) { ! interp_stack_buf[0] = 0; ! interp.stack_name(index, interp_stack_buf, LINELEN); ! if (0 == interp_stack_buf[0]) { break; } ! rcs_print(" - %s ", interp_stack_buf); index++; } *************** *** 308,327 **** int emcTaskPlanInit() { ! rs274ngc_ini_load(EMC_INIFILE); waitFlag = 0; ! int retval = rs274ngc_init(); ! if(retval > RS274NGC_MIN_ERROR) ! { ! print_rs274ngc_error(retval); ! } ! else ! { ! if( 0 != RS274NGC_STARTUP_CODE[0]) ! { ! retval = rs274ngc_execute(RS274NGC_STARTUP_CODE); ! if(retval > RS274NGC_MIN_ERROR) ! { ! print_rs274ngc_error(retval); } } --- 296,310 ---- int emcTaskPlanInit() { ! interp.ini_load(EMC_INIFILE); waitFlag = 0; ! int retval = interp.init(); ! if (retval > INTERP_MIN_ERROR) { ! print_interp_error(retval); ! } else { ! if (0 != RS274NGC_STARTUP_CODE[0]) { ! retval = interp.execute(RS274NGC_STARTUP_CODE); ! if (retval > INTERP_MIN_ERROR) { ! print_interp_error(retval); } } *************** *** 351,366 **** int emcTaskPlanSynch() { ! return rs274ngc_synch(); } int emcTaskPlanExit() { ! return rs274ngc_exit(); } int emcTaskPlanOpen(const char *file) { ! if(emcStatus != 0) ! { emcStatus->task.motionLine = 0; emcStatus->task.currentLine = 0; --- 334,348 ---- int emcTaskPlanSynch() { ! return interp.synch(); } int emcTaskPlanExit() { ! return interp.exit(); } int emcTaskPlanOpen(const char *file) { ! if (emcStatus != 0) { emcStatus->task.motionLine = 0; emcStatus->task.currentLine = 0; *************** *** 368,375 **** } ! int retval = rs274ngc_open(file); ! if(retval > RS274NGC_MIN_ERROR) ! { ! print_rs274ngc_error(retval); return retval; } --- 350,356 ---- } ! int retval = interp.open(file); ! if (retval > INTERP_MIN_ERROR) { ! print_interp_error(retval); return retval; } *************** *** 378,400 **** } - int emcTaskPlanRead() { ! int retval = rs274ngc_read(); ! if(retval == NCE_FILE_NOT_OPEN) ! { ! if(emcStatus->task.file[0] != 0) ! { ! retval = rs274ngc_open(emcStatus->task.file); ! if(retval > RS274NGC_MIN_ERROR) ! { ! print_rs274ngc_error(retval); } ! retval = rs274ngc_read(); } } ! if(retval > RS274NGC_MIN_ERROR) ! { ! print_rs274ngc_error(retval); } return retval; --- 359,376 ---- } int emcTaskPlanRead() { ! int retval = interp.read(); ! if (retval == INTERP_FILE_NOT_OPEN) { ! if (emcStatus->task.file[0] != 0) { ! retval = interp.open(emcStatus->task.file); ! if (retval > INTERP_MIN_ERROR) { ! print_interp_error(retval); } ! retval = interp.read(); } } ! if (retval > INTERP_MIN_ERROR) { ! print_interp_error(retval); } return retval; *************** *** 403,417 **** int emcTaskPlanExecute(const char *command) { ! if(command != 0) ! { ! if(*command != 0) ! { ! rs274ngc_synch(); } } ! int retval = rs274ngc_execute(command); ! if(retval > RS274NGC_MIN_ERROR) ! { ! print_rs274ngc_error(retval); } return retval; --- 379,391 ---- int emcTaskPlanExecute(const char *command) { ! if(command != 0){ // Command is 0 if in AUTO mode, non-null if in MDI mode. ! // Don't sync if not in position. ! if ((*command != 0) && emcStatus->motion.traj.inpos){ ! interp.synch(); } } ! int retval = interp.execute(command); ! if (retval > INTERP_MIN_ERROR) { ! print_interp_error(retval); } return retval; *************** *** 420,427 **** int emcTaskPlanClose() { ! int retval = rs274ngc_close(); ! if(retval > RS274NGC_MIN_ERROR) ! { ! print_rs274ngc_error(retval); } --- 394,400 ---- int emcTaskPlanClose() { ! int retval = interp.close(); ! if (retval > INTERP_MIN_ERROR) { ! print_interp_error(retval); } *************** *** 432,441 **** int emcTaskPlanLine() { ! return rs274ngc_line(); } int emcTaskPlanCommand(char *cmd) { ! strcpy(cmd, rs274ngc_command()); return 0; } --- ... [truncated message content] |