#ifndef _NAVIGATIONINPUT_H
#define _NAVIGATIONINPUT_H

#include "MessageQueue.h"
#include <string.h>

class NavigationInput : public MessageQueue {
  public:
  NavigationInput( MessageQueue::Access access = NoAccess );
  ~NavigationInput();

    enum NavigationInputs {
      None = 0,
      resetUTM,
      setRange
    };

    struct Command 
    {
	  NavigationInputs _cmd;
       double _northingOffset, _eastingOffset, _avoidRange;

	  Command() {
	     _cmd = NavigationInput::None;
	  };

	  Command( NavigationInputs cmd )
	  {
	     _cmd = cmd;
	  }

          Command( NavigationInputs cmd, double avoidRange )
	  {
	     _cmd = cmd;
	     _avoidRange = avoidRange;
	  }

	  Command( NavigationInputs cmd, double northingOffset, double eastingOffset )
	  {
	     _cmd = cmd;
	     _northingOffset = northingOffset;
	     _eastingOffset  = eastingOffset;
	  }
    };
    
  int read( Command *cmd );
  int write( Command *cmd );

  protected:

  private:

};

#endif
