/****************************************************************************/
/* Copyright 2009-2013 MBARI.                                               */
/* MBARI Proprietary Information. All rights reserved.                      */
/****************************************************************************/
/* Written by Mike Risi for Respirometer project in 2009                    */
/* Modified by Bob Herlien for SensorNode for xFOCE, May 2013               */
/****************************************************************************/
#ifndef SERIAL_H
#define SERIAL_H

#include "GenericTypeDefs.h"

#define SER_PORT_0     0
#define SER_PORT_1     1
#define SER_PORT_2     2

#define SER_PORT_TOTAL 3

/* data/parity settings */
#define D8_NONE         0
#define D8_EVEN         1
#define D8_ODD          2
#define D9_NONE         3

/* stop bits */
#define S_1             1
#define S_2             2

void serInit(); 

void serSetEnable(int val);
int serGetEnable();

int serSetConfig(int port, unsigned long baud, int data_par, int stop);
int serGetConfig(int port, unsigned long* baud, int* data_par, int* stop);

int serGetByte(int port, BYTE* b);
int serPutByte(int port, BYTE b);
int serPutString(int port, char* buff);
int serPutStringBool(int port, char* buff, int onoff);

void serRxFlush(int port);
void serTxFlush(int port);

void serSetBreak(int port, int state);
int serGetBreak(int port);

int serIsRxFull(int port);
int serIsTxFull(int port);

int serGetErrFlag(int port);

void serClrXERR(int port);
int serGetXERR(int port);

void serClrOERR(int port);
int serGetOERR(int port);

void serClrFERR(int port);
int serGetFERR(int port);

void serClrPERR(int port);
int serGetPERR(int port);

/* serial port xcvr */
void serXcvrSet(int port, int state);
int serXcvrGet(int port);

#endif

