//=========================================================================
// Summary  : 
// Filename : WatchdogCommand.h
// Author   : 
// Project  : 
// Version  : $Revision: 1.2 $
// Created  : 04/12/2000
// Modified : 
// Archived : 
//=========================================================================
// Modification History: 
// $Id: WatchdogCommand.h,v 1.2 2000/09/15 19:50:54 jrieffel Exp $
//=========================================================================

#ifndef _WATCHDOGCOMMAND_H
#define _WATCHDOGCOMMAND_H

#include "MessageQueue.h"

#define WatchdogCommandName "watchdogCommand"

class WatchdogCommand : public MessageQueue {
 public:
  
  WatchdogCommand( const char *name,
		   MessageQueue::Access access );
  WatchdogCommand( MessageQueue::Access access );
  virtual ~WatchdogCommand();
  
  enum WatchdogCommands {
    None = 0,
    RaiseAntenna,
    LowerAntenna,
    ResetMVC,
    RebootMVC,
    SleepMVC,
    DeadmanOn,
    DeadmanOff
  };
  
  struct Command {
    WatchdogCommands cmd;
    Command( WatchdogCommands cmdIn )
    { cmd = cmdIn;}
    Command()
    { cmd = WatchdogCommand::None;}
  };
  
  int read( Command *cmd );
  int write( Command *cmd );
  
  static char *makeName( int num, char *name );

};


#endif
