• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

epics/apps/crucible/cbmall_nov2010/cbmApp/src/HVCAENx527Main.cpp (r4864/r2310)

Go to the documentation of this file.
00001 /* HVCAENx527Main.cpp */
00002 /* Author:  Ru Igarasr Date:    2006-04-07 */
00003 
00004 #include <stddef.h>
00005 #include <stdlib.h>
00006 #include <stddef.h>
00007 #include <string.h>
00008 #include <stdio.h>
00009 
00010 #include "epicsThread.h"
00011 #include "iocsh.h"
00012 
00013 /*extern "C" int ConnectCrate( char *name, char *linkaddr);
00014 extern "C" void ParseCrateAddr( char (*straddr)[255], short naddr);*/
00015 extern "C" void Shutdown();
00016 extern "C" void SetSigShutdownHandler();
00017 
00018 int main(int argc,char *argv[])
00019 {
00020         int i, j;
00021         extern short DEBUG;
00022         short daemon;
00023         char stcmd[256];
00024 #if 0
00025         char *str;
00026         int crnlen;
00027         char crname[32], craddr[32];
00028 #else
00029         short naddr;
00030         char straddr[32][255];  /* MAX_BOARDS = 32 */
00031 #endif
00032         /* Need to catch hangup signal to make sure semaphores are
00033            cleaned up properly */
00034         SetSigShutdownHandler();
00035 
00036         daemon = 0;
00037         if(argc>=2) {    
00038                 snprintf( stcmd, 255, "%s", argv[1]);
00039 /*
00040 #if 0
00041                 strncpy( stcmd, argv[1], 255);
00042                 for( i = 2; i < argc; i++)
00043                 {
00044                         if( strcmp( argv[i], "-c") == 0)
00045                         {
00046                                 i++;
00047                                 str = argv[i];
00048                                 crnlen = strlen( str);
00049                                 for( j = 0; j < crnlen && str[j] != '@'; j++);
00050                                 snprintf( crname, ++j, "%s", str);
00051                                 if( j < crnlen)
00052                                 {
00053                                         str += j;
00054                                         crnlen -= j;
00055                                         for( j = 0; j < crnlen && argv[i][j] != ':'; j++);
00056                                         snprintf( craddr, ++j, "%s", str);
00057                                 }
00058                                 if( j < crnlen)
00059                                 {
00060                                         str += j;
00061                                         crnlen -= j;
00062                                         printf( "slot option currently not supported: %s\n", str);
00063                                 }
00064                                 if( ConnectCrate( crname, craddr) == 0)
00065                                 {
00066                                         printf( "Successfully connected to %s @ %s\n", crname, craddr);
00067                                 }
00068                         }
00069                 }
00070 #else
00071 
00072                 j = 0;
00073                 for( i = 2; i < argc; i++)
00074                 {
00075                         if( strcmp( argv[i], "-c") == 0)
00076                         {
00077                                 i++;
00078                                 snprintf( straddr[j], 255, "%s", argv[i]);
00079                                 j++;
00080                                 printf( "Crate to connect to : %s, n : %d\n", straddr[j-1],j);
00081                                 
00082                         }
00083                         else if( strcmp( argv[i], "-D") == 0)
00084                         {
00085                                 i++;
00086                                 DEBUG = atoi( argv[i]);
00087                         }
00088                         else if( strcmp( argv[i], "-d") == 0)
00089                         {
00090                                 daemon = 1;
00091                         }
00092                 }
00093                 naddr = j;
00094                 if( naddr > 0){
00095                         ParseCrateAddr( straddr, naddr); 
00096                         }
00097                 else
00098                 {
00099                         printf( "No crates to monitor.  Shutting down.\n");
00100                         exit( 0);
00101                 }
00102 #endif
00103 */
00104         }
00105         else
00106         {
00107                 printf( "Syntax: hvcontrol <st.cmd> [-c <name>@<hostname>[:<slotlist>]] [-d] [-D <debuglevel>]\n");
00108                 printf( "        where <slotlist> = comma and dash separated list of slots.\n");
00109                 printf( "              -d = run in daemon mode\n");
00110                 printf( "              <debuglevel> = 0 no messages\n");
00111                 printf( "              <debuglevel> = 10 all available messages\n");
00112         }
00113 
00114         if(stcmd)
00115                 iocsh(stcmd);
00116 
00117         if( daemon)
00118         {
00119                 for(;;)
00120                         epicsThreadSleep(1.0);
00121         }
00122         else
00123                 iocsh(NULL);
00124 
00125         Shutdown();
00126 
00127         return(0);
00128 }

Generated on Tue Dec 10 2013 04:52:22 for ROCsoft by  doxygen 1.7.1