//=========================================================================
// Summary  : Shared mem for Driver DMU_AHRS Attitude Heading Reference
// Filename : DriverCommand.h
// Author   : Aaron Marsh
// Project  : 
// Revision : 1
// Created  : 2000/08/19
// Modified : 2000/08/19
//=========================================================================
// Description :
//=========================================================================

#ifndef _DRIVERCOMMAND_H
#define _DRIVERCOMMAND_H

#include "MessageQueue.h"


#define DEFAULT_MAX_COMMANDS 5

//#define CompassCommandName "crossbowCommand"

class DriverCommand: public MessageQueue {

public:
  
  enum Requests_Skel { None=0, 
		       StartLogging,
		       StopLogging,
		       CHILD_COMMANDS_BEGIN_HERE 
  };

     struct Command_Skel {
	  int request;
	  int iVal;
//	  int ZeroSamples, TFactor;

	  Command_Skel( )
	       { request = None; iVal = 0; };
	  Command_Skel( int req )
	       { request = req; iVal = 0; };
	  Command_Skel( int req,
		   int intVal )
	       { request = req, iVal = intVal; };
     };

     DriverCommand( MessageQueue::Access access = NoAccess,
		    const char *name_of_Child_Command = 0,
		    int nBytes_of_Child_Command = 0,
		    int max_Child_Commands = DEFAULT_MAX_COMMANDS,
		    Boolean Child_Blocking = False);

     ~DriverCommand();

     
     //     spawnAuxTasks();

     int read( Command_Skel *cmd );
     int write( Command_Skel *cmd );

     // protected:

};

#endif
