/* LICENSE:
  =========================================================================
    CMPack'04 Source Code Release for OPEN-R SDK 1.1.5-r2 for ERS7
    Copyright (C) 2004 Multirobot Lab [Project Head: Manuela Veloso]
    School of Computer Science, Carnegie Mellon University
    All rights reserved.
  ========================================================================= */

#ifndef LEDs_h
#define LEDs_h

/* Default LED settings*/

#include "state_machine.h"
#include "Behavior.h"
#include "FeatureSet.h"
#include "../headers/Sensors.h"
#include "../Main/Events.h"
#include "../Motion/MotionInterface.h"

class LEDs : public IndependentBehavior {

 public:

  static const int beh_id;
  static char const * const beh_name;

private:
  MotionCommand out_command;

  uint fs_id;
  uint sensor_id;

  FeatureSet *fs;
  SensorData *sensor_data;

public:

  // This is important. It's how the behavior system gets an
  // instance of our behavior.
  static EventProcessor *create() { return new LEDs; }

  LEDs();
  virtual ~LEDs();

  double operator()(FeatureSet *FS, SensorData *s_data,
		    Motion::MotionCommand *Command);

  virtual bool initConnections();
  virtual bool setupEventMgr();
  virtual bool update(ulong time,const EventList *events);
  virtual const MotionCommand *get(ulong time);
};

#endif
