/****************************************************************************/
/* Copyright (c) 2000 MBARI                                                 */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Summary  :                                                               */
/* Filename : DropWeightServer.h                                            */
/* Author   :                                                               */
/* Project  :                                                               */
/* Version  : 1.0                                                           */
/* Created  : 02/07/2000                                                    */
/* Modified :                                                               */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/****************************************************************************/
#ifndef _DropWeightServer_H
#define _DropWeightServer_H
#include <process.h>
#include "DropWeightIF_SK.h"
#include "DropWeightOutput.h"
#include "SerialParameters.h"

class DropWeightServer : public DropWeightIF_SK {

public:

  DropWeightServer(const char *name);
  DropWeightServer(const char *driverName, SerialParameters *serialParams);
  ~DropWeightServer();


protected:

//virtual void release( DropWeightIF::WeightEnum weight);
  virtual void release( void);
  virtual Boolean released(void);
  virtual Boolean ACommsDN(void);
  virtual short watchdogTimeout(void);
  virtual short burnwireTimeout(void);
  virtual short DW_out(void);
  virtual void resetWatchdog(void);
  virtual void resetRelayAndCounters(void);
  virtual void resetRelayAndPIC(void);
  virtual void fireGulper(void);
  virtual int spawnAuxTasks();

#if 0
  virtual void name(DeviceIF::Name name);
  virtual void serialNumber(DeviceIF::Name id);
  virtual DeviceIF::Status initialize();
  virtual DeviceIF::Status powerOn();
  virtual DeviceIF::Status powerOff();
  virtual DeviceIF::Status status();
  virtual DeviceIF::Status dataLoggingOn();
  virtual DeviceIF::Status dataLoggingOff();
#endif

private:

  DropWeightOutput *_dwOutput;
  long _watchDogTimeout;
  
  SerialParameters *_serialParams;
  const char *_driverName;
};

#endif
