//=========================================================================
// Summary  : Main file for Edgetech FSDW
// Filename : _edgetechFSDWDriver.cc
// Author   : Reed Christenson
// Project  : EdgetechFSDW Driver
// Revision : 0.0
// Created  : 2002.03.21
// Modified : 2002.03.21
//=========================================================================
// Description : Main file for Edgetech FSDW driver
//=========================================================================

//#include "_edgetechFSDWDriver.h"
//#include <sys/sched.h>
//#include <errno.h>
#include "Exception.h"
//#include "VehicleConfigurator.h"
//#include "System.h"
#include "EdgetechFSDWDriver.h"
//#include "Syslog.h"

int main( int argc, char **argv )
{
    // A recalc interval value less than zero means no option was given
    //
    int rc = -1;   // bottom detect params recalculation interval in seconds
    for (int i = 0; i < argc; i++)
    {
      if (strcmp("-rc", argv[i]) == 0)
      {
        rc = atoi(argv[i+1]);
        break;
      }
    }
    
    Syslog::write("Launching EdgetechFSDWDriver...");

    Syslog::write("Setting name to '%s'...", EdgetechFSDWDriverName);
    //VehicleConfigurator::setName( EdgetechFSDWDriverName );

    try {
	Syslog::write("Creating EdgetechFSDWDriver instance...");
	EdgetechFSDWDriver *edgetechFSDWDriver = new EdgetechFSDWDriver();
	if (rc >= 0)
  {
  	Syslog::write("edgetechFSDWDriver - setting recalc interval to %d", rc);
    edgetechFSDWDriver->setRecalcInterval(rc);
  }
	Syslog::write("Running EdgetechFSDWDriver...");
	edgetechFSDWDriver->run();
    }
    catch (Exception e){
	Syslog::write("_edgetechFSDWDriver Caught Exception: %s\n",e.msg);
    }
    catch ( ... ){
	Syslog::write("_edgetechFSDWDriver Caught unknown exception.\n");
    }

    return 0;
}
