Exemplo n.º 1
0
Arquivo: FReg.c Projeto: bmfekete/RGIS
/* main function */
int main(int argc, char *argv[]) {
    fData *theData;
    int errCheck;
    int xField = -1;
    int yField = -1;
    int weightField = -1;

    if (argc <= 1) {
        showUsage();
        return 0;
    }

    setInputFiles(argc, argv);

    theData = readFile(dataFile, dataTypesFile, &errCheck);

    if (errCheck)
        CMmsgPrint(CMmsgUsrError, "errors were reported, but continuing anyways.");

    xField = findArg(XSHORT, XLONG, argc, argv);
    yField = findArg(YSHORT, YLONG, argc, argv);
    weightField = findArg(WEIGHTSHORT, WEIGHTLONG, argc, argv);

    if (xField && xField + 1 < argc)
        xField = getFieldNum(theData, argv[xField + 1]);
    else xField = -1;

    if (yField && yField + 1 < argc)
        yField = getFieldNum(theData, argv[yField + 1]);
    else yField = -1;

    if (weightField && weightField + 1 < argc)
        weightField = getFieldNum(theData, argv[weightField + 1]);
    else weightField = -1;

    if (xField == -1) {
        CMmsgPrint(CMmsgUsrError, "Could not get the X field");
        return 0;
    }
    if (yField == -1) {
        CMmsgPrint(CMmsgUsrError, "Could not get the Y field");
        return 0;
    }
    /*(weight field is not mandatory)*/

    reg(xField, yField, weightField, theData);

    return 0;
}
Exemplo n.º 2
0
void installVtableOrDie( const char * in_key, const struct AllocatorVtable * in_tables[], struct AllocatorVtable * out_table ) {
	const char * config = getConfStr();
	if( NULL == config ) {
		config = defaultConfig;
	}

	size_t valueSize;
	const char * value = findArg( config, in_key, &valueSize );
	if( NULL == value ) {
		fprintf( stderr,  "Error: libmprof: Could not find value for '%s' in env var 'MPROF_CONF'.\n", in_key );
		exit( -1 );
	}

	const struct AllocatorVtable * table = lookupVtable( value, valueSize, in_tables );
	if( NULL == table ) {
		//not wise, but neither is fprintf without malloc....
		((char*) value )[ valueSize ] = '\0';
		fprintf( stderr,  "Error: libmprof: Cannot find vtable '%s' candidate for '%s'\n", value, in_key );
		exit( -1 );
	}

	*out_table = *table;
	if( table->construct ) {
		table->construct();
	}
}
String
MSWindowsClipboardHTMLConverter::doToIClipboard(const String& data) const
{
    // get fragment start/end args
    String startArg = findArg(data, "StartFragment");
    String endArg   = findArg(data, "EndFragment");
    if (startArg.empty() || endArg.empty()) {
        return String();
    }

    // convert args to integers
    SInt32 start = (SInt32)atoi(startArg.c_str());
    SInt32 end   = (SInt32)atoi(endArg.c_str());
    if (start <= 0 || end <= 0 || start >= end) {
        return String();
    }

    // extract the fragment
    return data.substr(start, end - start);
}
Exemplo n.º 4
0
static void mprofCountConstruct( void ) {
	size_t valueSize;
	const char * value = findArg( getConfStr(), "COUNTS_PATH", &valueSize );
	if( value ) {
		char * tmp = tmpAllocVtable.calloc( valueSize + 1, sizeof( char ) );
		strncpy( tmp, value, valueSize );
		value = tmp;
	} else {
		value = "./mprof.counts";
	}
	mprofRecordInit();
	sem_init( &mmapSem, 0, 1 );
	assert( mmapOpen( &countsArea, value, O_RDWR | O_TRUNC | O_CREAT ) );
	assert( mmapSize( &countsArea, sizeof( struct MprofRecordCount ), MMAP_AREA_SET ) );
}
Exemplo n.º 5
0
static void mprofLogMmapConstruct( void ) {
	size_t argSize;
	const char * arg = findArg( getConfStr(), "LOG_QTY", &argSize );
	if( arg ) {
		growthQty = strtol( arg, NULL, 10 );
	}

	arg = findArg( getConfStr(), "CACHE_QTY", &argSize );
	if( arg ) {
		cacheQty = strtol( arg, NULL, 10 );
	}

	arg = findArg( getConfStr(), "LOG_PATH", &argSize );
	if( arg ) {
		char * tmp = tmpAllocVtable.calloc( argSize + 1, sizeof( char ) );
		strncpy( tmp, arg, argSize );
		arg = tmp;
	} else {
		arg = "./mprof.log";
	}
	assert( mmapOpen( &area, arg, O_RDWR | O_TRUNC | O_CREAT ) );
	assert( mmapSize( &area, growthQty * sizeof( struct MprofRecordAlloc ), MMAP_AREA_SET ) );
	sem_init( &mmapSem, 0, 1 );
}
Exemplo n.º 6
0
void setInputFiles( int argc, char* argv [] )
{
  int i,j;
  /* trying to open the data types file */
  if( (i = findArg( DATAINPUTSHORT, DATAINPUTLONG, argc, argv )) && (i + 1 < argc) &&
      access( argv[i+1], R_OK ) == 0 )
    dataTypesFile = fopen( argv[i+1], "rb" );
  
  /* trying to open the data file */
  for( j=1;j<argc;j++ )
    {
      if( ((dataTypesFile != NULL && i+1 != j) || (!dataTypesFile)) && access( argv[j], R_OK ) == 0 )
	dataFile = fopen( argv[j], "rb" );
    }
  if( dataFile == NULL )
    dataFile = stdin;
}
Exemplo n.º 7
0
GBool parseArgs(ArgDesc *args, int *argc, char *argv[]) {
  ArgDesc *arg;
  int i, j;
  GBool ok;

  ok = gTrue;
  i = 1;
  while (i < *argc) {
    if (!strcmp(argv[i], "--")) {
      --*argc;
      for (j = i; j < *argc; ++j)
	argv[j] = argv[j+1];
      break;
    } else if ((arg = findArg(args, argv[i]))) {
      if (!grabArg(arg, i, argc, argv))
	ok = gFalse;
    } else {
      ++i;
    }
  }
  return ok;
}
Exemplo n.º 8
0
int main(int argc, char* argv[]) {
  struct bParamList * paramList = NULL;
  const char *strPtr;

  int ii;

  for (ii=0; ii<TCX_MAX_CLIENTS; ii++) {
    CLIENT[ii] = NULL;
  }

  /*
   * Set some parameters
   */

  /* add some defaults */
  paramList = bParametersAddEntry(paramList, "*", "base.bps", "9600");
  paramList = bParametersAddEntry(paramList, "*", "base.dev", "/dev/cur0");
  paramList = bParametersAddEntry(paramList, "", "TCXHOST", "localhost");
  paramList = bParametersAddEntry(paramList, "", "fork", "yes");

  /* add some parameter files */
  paramList = bParametersAddFile(paramList, "etc/beeSoft.ini");

  /* add some enviroment variables */
  paramList = bParametersAddEnv(paramList, "", "TCXHOST");

  /* add command line arguements */
  paramList = bParametersAddArray(paramList, "", argc, argv);

  /* here is where we should add non "parameter format" options */


  bParametersFillParams(paramList);

  strPtr = bParametersGetParam(paramList, "robot", "name");
  if (!strPtr) {
    fprintf(stderr,
	    "Robot name not set.  Check the value in beeSoft.ini.\n");
    exit(1);
  }
  else if (!strcmp("none", strPtr)) {
    fprintf(stderr,
	    "Robot name set to 'none'.  Check value in beeSoft.ini.\n");
    exit(1);
  }

  strPtr = bParametersGetParam(paramList, strPtr, "base.type");
  if (!strPtr) {
    fprintf(stderr,
	    "Base type not set.  Check the value in beeSoft.ini.\n");
    exit(1);
  }
  else if (
	   strcmp("B14", strPtr) &&
	   strcmp("B21", strPtr) &&
	   strcmp("Ramona", strPtr)
	   ) {
    fprintf(stderr,
	    "Arm type set to unrecognized type '%s'.  Check the\n"
	    "value in beeSoft.ini.\n", strPtr);
    exit(1);
  }
  
  /*
   *
   */

  argv0 = argv[0];

  if (makeLock(BASE_SERVER_LOCK)<0) {
    fprintf(stderr,"%s:  Already running base server\n",argv[0]);
    exit(-1);
  }

  if (findArg(argc,argv,"-v")) {
    VERBOSE = TRUE;
    fprintf(stderr,"baseServer started in verbose mode\n");
  }

  if (findArg(argc,argv,"-noIrs")) {
    IRS = FALSE;
    fprintf(stderr,"baseServer started without IRs\n");
  }

  if (findArg(argc,argv,"-noTactiles")) {
    TACTILES = FALSE;
    fprintf(stderr,"baseServer started without Tactiles\n");
  }

  if (findArg(argc,argv,"-noSonars")) {
    SONARS= FALSE;
    fprintf(stderr,"baseServer started without Sonars\n");
  }

  if (findArg(argc,argv,"-simulator")) {
    useSimulator=TRUE;
    fprintf(stderr,"baseServer connecting to simulator.\n");
  }

  
  RaiInit();
  BaseInit(bRobot.base_dev, bRobot.base_bps);
  catchInterrupts();

  initBaseServerTCX(bRobot.TCXHOST);

  if (useSimulator==TRUE) {
    simulatorHandle = tcxConnectModule(TCX_SIMULATOR_MODULE_NAME);
  }

  registerWatchdogCallback(watchdogToClient);

  /*
   * GRUMBLE - It is going to be a bit ugly to get the sensor
   * structures initialized without opening /dev/abus.  tds
   */

  if (SONARS && !useSimulator) {
    sonarInit();
    registerSonarCallback(sonarToClient);
    SIM_sonarStop();  /* turn off sonar until we have a client */
  }

  if (IRS && !useSimulator) {
    irInit();
    registerIrCallback(irToClient);
    SIM_irStop();  /* turn off ir until we have a client */
  }

  if (TACTILES && !useSimulator) {
    tactileInit();
    registerTactileCallback(tactileToClient);
    tactileStop();
  }

  registerStatusCallback(statusToClient);
  registerBaseCallback(baseToClient);
  initBaseServerModules();

  if (bRobot.fork) {
    bDaemonize("baseServer.log");
  }

  rotateLimp(); 
  translateLimp(); 

  RaiStart();

  exit(0);
}