/****************************************************************************/
/* Copyright 1992 to 1993, MBARI                                            */
/****************************************************************************/
/* Summary  : IBC Low Power Switch Interface Function Prototypes for VxWorks*/
/* Filename : lps.h                                                         */
/* Author   : Andrew Pearce                                                 */
/* Project  : New ROV                                                       */
/* Version  : Version 1.0                                                   */
/* Created  : 04/08/93                                                      */
/* Modified : 04/09/93                                                      */
/* Archived :                                                               */
/****************************************************************************/
/* Modification History:                                                    */
/* $Header: lps.h,v 1.1 93/07/01 14:38:15 pean Exp $
 * $Log:        lps.h,v $
 * Revision 1.1  93/07/01  14:38:15  14:38:15  pean (Andrew Pearce)
 * Initial revision
 *
 *
 */
/****************************************************************************/

#ifdef INCLUDE_PROTOTYPES

#define LPS_VOLTAGE_ALARM_SCALAR  10

#ifdef __STDC__

STATUS IBC_LPS_VicorControl( sio32Chan *IBC_SerialChan, Word boardAddr,
                 MBool desiredState );

STATUS IBC_LPS_SwitchControl( sio32Chan *IBC_SerialChan, Word boardAddr,
                Nat16 channel, MBool desiredState );

STATUS IBC_LPS_SwitchStatus( sio32Chan *IBC_SerialChan, Word boardAddr,
                Nat16 *switchState );

STATUS IBC_LPS_SetTempThresh( sio32Chan *IBC_SerialChan, Word boardAddr,
                Int16 vicorTempWarn,  Int16 vicorTempAlarm,
                Int16 switchTempWarn, Int16 switchTempAlarm );

STATUS IBC_LPS_GetTempThresh( sio32Chan *IBC_SerialChan, Word boardAddr,
                Int16 *vicorTempWarn,  Int16 *vicorTempAlarm,
                Int16 *switchTempWarn, Int16 *switchTempAlarm );

STATUS IBC_LPS_GetTemperatures( sio32Chan *IBC_SerialChan, Word boardAddr,
                Int16 *vicorTemp, Int16 *switchTemp );

STATUS IBC_LPS_GetVoltageThresh( sio32Chan *IBC_SerialChan, Word boardAddr,
                Nat16 *voltageWarn, Nat16 *voltageAlarm );

STATUS IBC_LPS_SetVoltageThresh( sio32Chan *IBC_SerialChan, Word boardAddr,
                Nat16 voltageWarn,  Nat16 voltageAlarm );

STATUS IBC_LPS_GetVoltage( sio32Chan *IBC_SerialChan, Word boardAddr,
                Nat16 *lpsVoltage );

STATUS IBC_LPS_GetCurrents( sio32Chan *IBC_SerialChan, Word boardAddr,
                Int16 lpsCurrent[] );

STATUS IBC_LPS_GetCurrentThresh( sio32Chan *IBC_SerialChan, Word boardAddr,
                Int16 warn[], Int16 alarm[] );

STATUS IBC_LPS_SetCurrentThresh( sio32Chan *IBC_SerialChan, Word boardAddr,
                Int16 warn[],  Int16 alarm[] );

STATUS IBC_LPS_SetChanCurrentThresh( sio32Chan *IBC_SerialChan, Word boardAddr,
                Nat16 chan, Int16 warn[],  Int16 alarm[] );

STATUS ibcLpsSetCurrentThresh( sio32Chan *IBC_SerialChan, Word boardAddr,
    Int16 warn0, Int16 alarm0, Int16 warn1, Int16 alarm1,
    Int16 warn2, Int16 alarm2, Int16 warn3, Int16 alarm3);

STATUS IBC_LPS_GetAlarmStatus( sio32Chan *IBC_SerialChan, Word boardAddr,
                ibcAlarm currentAlarms[], ibcAlarm *vicorTempAlarm,
                ibcAlarm *switchTempAlarm, ibcAlarm *vicorVoltageAlarm );

STATUS IBC_LPS_GangOutputs( sio32Chan *IBC_SerialChan, Word boardAddr,
                Nat16 channel, MBool gangState );

STATUS IBC_LPS_SetSwitchDelay( sio32Chan *IBC_SerialChan, Word boardAddr,
                Nat16 delayTime);


#endif /* __STDC__ */

#endif /* INCLUDE_PROTOTYPES */




