/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : CrossbowCommand.h                                             */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
/*-----------------------------------------------------------------------*
  CLASS: CrossbowCommand

  DESCRIPTION: Shared mem for Crossbow DMU_AHRS Attitude Heading Reference
  System command channel

  AUTHOR: Aaron Marsh

  $Id: CrossbowCommand.h,v 1.5 2000/05/12 15:27:18 oreilly Exp $
 *-----------------------------------------------------------------------*/

#ifndef _CROSSBOWCOMMAND_H
#define _CROSSBOWCOMMAND_H

#include "SharedData.h"
#include "CrossbowIF.h"

#define CompassCommandName "crossbowCommand"

class CrossbowCommand: public SharedData {

public:

     enum Requests { None=0, SerialNumber, 
		     FirmwareVersion, SetZero,
		     SetTFactor };

     struct Data {
	  enum Requests Request;
	  int ZeroSamples, TFactor;
     };

     CrossbowCommand( Access access = NoAccess,
		     Boolean init = False );

     ~CrossbowCommand();

     spawnAuxTasks();

     Data data;

     void read();
     void write();

     void clear();

};

#endif
