#include <stdlib.h>#include <signal.h>#include <string.h>#include "rcs.hh"#include "emc.hh"Include dependency graph for emcdummy.cc:

Go to the source code of this file.
Functions | |
| int | startup () |
| int | shutdown () |
| void | quit (int sig) |
| int | main (int argc, char *argv[]) |
Variables | |
| RCS_CMD_CHANNEL * | emcCommandBuffer = 0 |
| RCS_STAT_CHANNEL * | emcStatusBuffer = 0 |
| NML * | emcErrorBuffer = 0 |
| RCS_CMD_MSG * | emcCommand = 0 |
| EMC_STAT * | emcStatus = 0 |
| char | nmlFile [256] = "emc.nml" |
| int | done |
|
||||||||||||
|
Definition at line 165 of file emcdummy.cc. 00166 {
00167 NMLTYPE type;
00168
00169 // set print destination to stdout, for console apps
00170 set_rcs_print_destination(RCS_PRINT_TO_STDOUT);
00171
00172 // blank out the annoying RCS version message
00173 rcs_version_printed = 1;
00174
00175 if (argc > 1)
00176 {
00177 // first arg is NML file-- copy it to global used in startup()
00178 strcpy(nmlFile, argv[1]);
00179 }
00180
00181 // set up NML
00182 if (0 != startup())
00183 {
00184 exit(1);
00185 }
00186
00187 // fill in NML status with initial blank values
00188 emcStatus->command_type = 0;
00189 emcStatus->echo_serial_number = 0;
00190 emcStatus->status = RCS_DONE;
00191
00192 // enter dummy loop
00193 done = 0;
00194 while (! done)
00195 {
00196 // read command
00197 type = emcCommandBuffer->read();
00198
00199 if (0 != type &&
00200 -1 != type)
00201 {
00202 // new command-- show "executing" immediately
00203 emcStatus->command_type = emcCommand->type;
00204 emcStatus->echo_serial_number = emcCommand->serial_number;
00205 emcStatus->status = RCS_EXEC;
00206 emcStatusBuffer->write(emcStatus);
00207 }
00208
00209 // wait a second
00210 esleep(1.0);
00211
00212 // now show "done"
00213 emcStatus->status = RCS_DONE;
00214 emcStatusBuffer->write(emcStatus);
00215 }
00216
00217 if (0 != shutdown())
00218 {
00219 exit(1);
00220 }
00221
00222 exit(0);
00223 }
|
|
|
Definition at line 145 of file emcdummy.cc. 00146 {
00147 // set main's done flag
00148 done = 1;
00149
00150 // restore signal handler
00151 signal(SIGINT, quit);
00152 }
|
|
|
Definition at line 110 of file emcdummy.cc. Referenced by main().
00111 {
00112 // delete the NML channels
00113
00114 if (0 != emcErrorBuffer)
00115 {
00116 delete emcErrorBuffer;
00117 emcErrorBuffer = 0;
00118 }
00119
00120 if (0 != emcStatusBuffer)
00121 {
00122 delete emcStatusBuffer;
00123 emcStatusBuffer = 0;
00124 emcStatus = 0;
00125 }
00126
00127 if (0 != emcCommandBuffer)
00128 {
00129 delete emcCommandBuffer;
00130 emcCommandBuffer = 0;
00131 emcCommand = 0;
00132 }
00133
00134 if( 0 != emcStatus)
00135 {
00136 delete emcStatus;
00137 emcStatus = 0;
00138 }
00139
00140 return 0;
00141 }
|
|
|
Definition at line 74 of file emcdummy.cc. Referenced by main().
00075 {
00076 // get the NML command buffer
00077 emcCommandBuffer = new RCS_CMD_CHANNEL(emcFormat, "emcCommand", "emc", nmlFile);
00078 if (! emcCommandBuffer->valid())
00079 {
00080 rcs_print_error("can't get emcCommand buffer\n");
00081 return -1;
00082 }
00083
00084 // get our command data structure
00085 emcCommand = emcCommandBuffer->get_address();
00086
00087 // get the NML status buffer
00088 emcStatusBuffer = new RCS_STAT_CHANNEL(emcFormat, "emcStatus", "emc", nmlFile);
00089 if (! emcStatusBuffer->valid())
00090 {
00091 rcs_print_error("can't get emcStatus buffer\n");
00092 return -1;
00093 }
00094
00095 // get our status data structure
00096 emcStatus = new EMC_STAT;
00097
00098 // get the error log buffer
00099 emcErrorBuffer = new NML(nmlErrorFormat, "emcError", "emc", nmlFile);
00100 if (! emcErrorBuffer->valid())
00101 {
00102 rcs_print_error("can't get emcError buffer\n");
00103 return -1;
00104 }
00105
00106 return 0;
00107 }
|
|
|
Definition at line 144 of file emcdummy.cc. |
|
|
Definition at line 66 of file emcdummy.cc. |
|
|
Definition at line 61 of file emcdummy.cc. |
|
|
Definition at line 63 of file emcdummy.cc. |
|
|
Definition at line 69 of file emcdummy.cc. |
|
|
Definition at line 62 of file emcdummy.cc. |
|
|
Definition at line 72 of file emcdummy.cc. |
1.2.11.1 written by Dimitri van Heesch,
© 1997-2001