Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Globals  

inisim.cc

Go to the documentation of this file.
00001 
00002 
00003 #include "simmot_n.h"
00004 #include "inifile.h"
00005 #include "emcglb.h"
00006 #include <stdlib.h>
00007 #include <string.h>
00008 
00009 
00010 NML *sim_cmd;
00011 NML *sim_stat;
00012 SIMMOT_COMMAND cmd;
00013 
00014 int main(int argc, char **argv)
00015 {
00016   emcGetArgs(argc,argv); // get EMC_NMLFILE, and EMC_INIFILE;
00017   INIFILE inifile;
00018   const char *inistring;
00019 
00020   // open it
00021   if (-1 == inifile.open(EMC_INIFILE)) {
00022     exit(-1);
00023   }
00024 
00025   if (NULL != (inistring = inifile.find("NML_FILE", "EMC"))) {
00026     // copy to global
00027     strcpy(EMC_NMLFILE, inistring);
00028   }
00029   else {
00030     // not found, use default
00031   }
00032 
00033 
00034   sim_cmd = new NML(simmot_format, "simmot_cmd","inisim",EMC_NMLFILE);
00035   if(NULL == sim_cmd)
00036     {
00037       exit(-1);
00038     }
00039   if(!sim_cmd->valid())
00040     {
00041       exit(-1);
00042     }
00043 
00044   sim_stat = new NML(simmot_format, "simmot_stat","inisim",EMC_NMLFILE);
00045   if(NULL == sim_stat)
00046     {
00047       exit(-1);
00048     }
00049   if(!sim_stat->valid())
00050     {
00051       exit(-1);
00052     }
00053   int retval,t;
00054   char sectionString[INIFILE_MAX_LINELEN];
00055 
00056   for (t = 0; t < SIM_MAX_AXIS; t++)
00057     {
00058 #ifndef UNDER_CE
00059       sprintf(sectionString, "AXIS_%d", t);
00060 #else
00061       strcpy(sectionString,"AXIS_");
00062       _itoa(t,sectionString+5,10);
00063 #endif
00064 
00065       if (0 != amplifierIniLoad(&cmd.data.amplifier[t], EMC_INIFILE, sectionString))
00066         {
00067           retval = -1;
00068         }
00069       if (0 != dcmotorIniLoad(&cmd.data.dcmotor[t], EMC_INIFILE, sectionString))
00070         {
00071           retval = -1;
00072         }
00073       if (0 != encoderIniLoad(&cmd.data.encoder[t], EMC_INIFILE, sectionString))
00074         {
00075           retval = -1;
00076         }
00077     }
00078   sim_cmd->write(&cmd);
00079   while(sim_stat->read() == 0) ;
00080 
00081   delete sim_cmd;
00082   delete sim_stat;
00083 
00084 
00085 }

Generated on Sun Dec 2 15:27:41 2001 for EMC by doxygen1.2.11.1 written by Dimitri van Heesch, © 1997-2001