#ifndef _VEHICLECOMMAND_H
#define _VEHICLECOMMAND_H

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

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

    enum VehicleCommands {
       None,
       SetState,
       SetPower,
       ReadStatus,
       SetBeacon
    };

    struct Command {
      VehicleCommands _cmd;
      UsblIF::String32 string;

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

      Command(VehicleCommand::VehicleCommands cmd) {
	_cmd = cmd;
      };

      Command(UsblIF::String32 beacon) {
        _cmd = VehicleCommand::SetBeacon;
        strncpy(string, beacon, 32);
      };
    };
    
  int read( Command *cmd );
  int write( Command *cmd );

  protected:

  private:

};

#endif
