#ifndef _LBL_H
#define _LBL_H

#include "NavSensor.h"
#include "LblIF.h"
#include "lbl_array.h"

/*
CLASS 
Lbl

DESCRIPTION
LBL NavSensor

AUTHOR
Tom O'Reilly
*/

class Lbl : public NavSensor {

public:

  Lbl(const char *name, NavSensors *sensors, int maxBad = 3);

  lbl_array lbl_params;

protected:

  virtual TaskInterface *createTaskIF(int timeout);

  virtual DeviceIF::Status readTaskIF(Boolean *valid, 
				      TimeIF::TimeSpec *sampleTime);

  int Load_WorkSite();
  
  //Lbl channel # for each beacon -- Lbl board dependent!
  //will fix the fixed array size in another rev
  short _beacon_channel[MAX_BEACON_NUMBER];

  LblIF *_lblIF;
  
  //keeps track of whether LBL board responded with return times
  //used to monitor bad hits
  //I'll implement a better way in a later rev
  Boolean response;

  double _tofSampleTime;
  double _lastPingTime;
};


#endif

