/****************************************************************************/
/* Copyright 1998 MBARI                                                     */
/****************************************************************************/
/* Summary  : Tecnadyne ECU definitions                                    */
/* Filename : ecu.h                                                      */
/* Author   : Douglas Au                                                    */
/* Project  : Tiburon ROV                                                   */
/* Version  : Version 1.0                                                   */
/* Created  : 09/01/98                                                      */
/* Modified : 09/01/98                                                      */
/* Archived :                                                               */
/****************************************************************************/
/* Command String Start and End Bytes */
#define START_BYTE       0x24
#define END_BYTE         0x0D

#define DATA_REQ_SIZE       8     /* 8 Byte Data Request                    */
#define DATA_RESP_SIZE      8     /* 8 Byte data response                   */

/* Board Id */
#define BOARD_0          0x10
#define BOARD_1          0x11
#define BOARD_2          0x12
#define BOARD_3          0x13
#define BOARD_4          0x14
#define BOARD_5          0x15
#define BOARD_6          0x16
#define BOARD_7          0x17
#define BOARD_8          0x18
#define BOARD_9          0x19
#define BOARD_10         0x1A
#define BOARD_11         0x1B
#define BOARD_12         0x1C
#define BOARD_13         0x1D
#define BOARD_14         0x1E
#define BOARD_16         0x1F

#define ALL_BOARDS       0xFF

/* Expansion Board Id */
#define MOTHER_BOARD     0
#define EXPANSION_1      1
#define EXPANSION_2      2
#define EXPANSION_3      3

/* Function Masks */
#define DIG_OUT_FUNC     0x31
#define DIG_IN_FUNC      0x32
#define ANA_OUT_AFUNC    0x41
/* Analog input command byte must be followed by ANA_IN_BYTE1 */
#define ANA_OUT_BFUNC    0x42
#define ANA_IN_AFUNC     0x43
#define ANA_IN_BFUNC     0x44
#define ANA_IN_CFUNC     0x45
#define ANA_IN_DFUNC     0x46
/* PWM Output Function */
#define PWM_AOUT         0x51
#define PWM_BOUT         0x52



/* Analog Channel Id's */
#define ANA_CHAN_1       0x31
#define ANA_CHAN_2       0x32
#define ANA_CHAN_3       0x33
#define ANA_CHAN_4       0x34
#define ANA_CHAN_5       0x35
#define ANA_CHAN_6       0x36
#define ANA_CHAN_7       0x37
#define ANA_CHAN_8       0x38

/* Digital Channel Id's */
#define CHANNEL_0        0x00
#define CHANNEL_1        0x01
#define CHANNEL_2        0x02
#define CHANNEL_3        0x04
#define CHANNEL_4        0x08
#define CHANNEL_5        0x10
#define CHANNEL_6        0x20
#define CHANNEL_7        0x40
#define CHANNEL_8        0x80

#define SPARE_BYTE       0x53

#define CHECKSUM_BASE    0xAA
/* Serial Comms settings */
#define ECU_BAUD         19200            /* 19200 Baud     */
#define ECU_DATA         8                /* 8 Data bits    */
#define ECU_STOP         1                /* 1 stop bits    */
#define ECU_PAR          2                /* No Parity      */
#define ECU_HANDSHAKE    FALSE            /* No Handshaking */
#define ECU_PROTO        1                /* RS485          */

#define nOutputs         16
#define nModules         4

#define POWER_DELAY         1000000     /* Power on Delay for ECUBoard     */










