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

#ifndef __LblIF_H
#define __LblIF_H

#include "TaskInterface.h"

#include "TimeIF.h"

#define LblIFServerName "LblIFServer"

/*
CLASS 
LblIF

DESCRIPTION
TaskInterface to Lbl device driver

AUTHOR
Don Eicksetdt
*/
class LblIF : public TaskInterface {

  friend class LblIF_SK;

  public:

  // Forward declarations of public structures
  struct RTimes;
  
  
  
  struct RTimes {
    float t1;
    float t2;
    float t3;
    float t4;
    float t5;
    float t6;
    float t7;
    float t8;
    float t9;
    float t10;
    TimeIF::TimeSpec sampleTime;
  };
  LblIF(const char *name, int timeout = 10);

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

  ~LblIF();

  // void times(in RTimes r_times);
  //  void ptime(in TimeIF::TimeSpec p_time);
  long get_tof(LblIF::RTimes *times);

  long get_ptime(TimeIF::TimeSpec *ping_time);

  long ping();

  
  protected:

  // Message codes for each method
  enum LblIFMsgCode {
    Get_tofMsgCode,
    Get_ptimeMsgCode,
    PingMsgCode
  };

  // Define message structure for each method
  struct Get_tofMsg : Request, Reply {
    long returnVal;
    LblIF::RTimes times;
  
  } _get_tofMsg;

  struct Get_ptimeMsg : Request, Reply {
    long returnVal;
    TimeIF::TimeSpec ping_time;
  
  } _get_ptimeMsg;

  struct PingMsg : Request, Reply {
    long returnVal;
  
  } _pingMsg;

};

#endif

