/*-----------------------------------------------------------------------*
  PROGRAM: BluefinBatt wrapper

  DESCRIPTION: Main file for metrabyte driver binary

  AUTHOR: Henthorn

  $Id: _bluefinBattDriver.cc,v 1.6 2006/04/26 23:54:50 dorado Exp $
  *-----------------------------------------------------------------------*/

#include "BluefinBatt.h"
#include "Syslog.h"
#include "SerialParameters.h"

int main( int argc, char **argv )
{
  BluefinBatt *bluefinBatt = 0;
  SerialDevice *device = 0;
  int nb = 3; // Default to 3 batteries

  // How many batteries are we running with?
  //
  for (int i = 0; i < argc; i++)
  {
    if (!strcmp(argv[i], "-n"))
    {
      int b = atoi(argv[i+1]);
      //printf("argv[%d] = %s, argv[%d] = %s, b = %d\n", i, argv[i], i+1, argv[i+1], b);
      if (b > 0)
      {
        nb = b;
        break;
      }
      else
        break;
    }
  }
  Syslog::write("BluefinBatt driver - running with %d batteries", nb);

  try {
    SerialParameters serialParams(&argc, argv);
    SerialDevice *device = new SerialDevice(&serialParams);
    // hardcode num_batts to 3, abortVoltage=3.40, terminateVoltage=3.35
    bluefinBatt = new BluefinBatt(device, nb, 3.40, 3.35);  // no longer hard-coded
    bluefinBatt->run();
  }
  catch (...) {
    Syslog::write("BluefinBatt - Exception caught\n");
  }
  
  delete device;
  delete bluefinBatt;

  return 0;

}
