/************************************************************************/
/* Copyright 2003 MBARI													*/
/************************************************************************/
/* Summary	: Definitions for OASIS3 Driver Functions					*/
/* Filename : drvr.h													*/
/* Author	: Robert Herlien (rah)										*/
/* Project	: OASIS Mooring Replacement (OASIS3)						*/
/* Revision: 0.1														*/
/* Created	: 01/30/2003												*/
/*																			*/
/* MBARI provides this documentation and code "as is", with no warranty,	*/
/* express or implied, of its quality or consistency. It is provided without*/
/* support and without obligation on the part of the Monterey Bay Aquarium	*/
/* Research Institute to assist in its use, correction, modification, or	*/
/* enhancement. This information should not be published or distributed to	*/
/* third parties without specific written permission from MBARI.			*/
/*																			*/
/************************************************************************/
/* Modification History:												*/
/* 30jan2003 rah - created												*/
/************************************************************************/

#ifndef INCdrvrh
#define INCdrvrh		1

/* Mask to turn off sampling from 1800 to 0600 hours local (for Eqpac) */
/*#define DAYMASK		  0x00fc003fL */

/* Continuous sampling for local deployments */
#define DAYMASK			0L



/****************************************/
/* Function Declarations				*/
/****************************************/

void	nullDrvrFunc(Driver *dp);
MBool	nullWakeFunc(Driver *, MBool, Byte *);
Errno	pwrBitOn(Nat32 pwrnum);
Errno	pwrBitOff(Nat32 pwrnum);
void	drvPwrVecSet(Nat32 pwrVec);
void	drv_pwron(Driver *dp);
void	drv_pwroff(Driver *dp);
void	drv_ser_port(Driver *dp);
void	drv_ser_release(Driver *dp);
Driver *drvr_find(char *name);
Driver *drvr_create(const DrvDesc *ddp);
void	drvr_init(void);
Nat32	drvr_sample(void);
void	drvLogError(Driver *dp, Errno err);
void	drvLog(Driver *dp, Byte *samplep, Int16 len);
void	drvLogWords(Driver *dp, Nat16 *samplep, Int16 wrds);
char	*drvSerPortAndMalloc(Driver *dp, size_t size);
void	drvSerReleaseAndFree(Driver *dp, char *buffer);
void	drvSync(char *name);
void	drvr_timechange(Int32 diff);
void	drvMidnightSync(void);
void	checkDrvrConflicts(void);

#endif	/* INCdrvrh */
