/*
********************************************************
Copyright 2000 MBARI.
MBARI Proprietary Information. All rights reserved.
NOTE: This file is automatically generated.
DO NOT MODIFY.
********************************************************
*/

#ifndef __InstrumentIF_H
#define __InstrumentIF_H

#include "TaskInterface.h"

#include "DeviceIF.h"

#define InstrumentIFServerName "InstrumentIFServer"

class InstrumentIF : public DeviceIF {

  friend class InstrumentIF_SK;

  public:

  
  
  
  InstrumentIF(const char *name, int timeout = 10);

  InstrumentIF(const char *name, const char *serverName, int timeout = 10);

  ~InstrumentIF();

  /*
  CLASS 
  InstrumentIF
  
  DESCRIPTION
  DeviceIF for instrument drivers
  
  AUTHOR
  Tom O'Reilly
  
  */
  /////////////////////////////////////////////////////////
  // Turn on data collection
  DeviceIF::Status dataLoggingOn();

  /////////////////////////////////////////////////////////
  // Turn off data collection
  DeviceIF::Status dataLoggingOff();

  
  protected:

  // Message codes for each method
  enum InstrumentIFMsgCode {
    DataLoggingOnMsgCode = 6,
    DataLoggingOffMsgCode
  };

  // Define message structure for each method
  struct DataLoggingOnMsg : Request, Reply {
    DeviceIF::Status returnVal;
  
  } _dataLoggingOnMsg;

  struct DataLoggingOffMsg : Request, Reply {
    DeviceIF::Status returnVal;
  
  } _dataLoggingOffMsg;

};

#endif

