#include "InstrumentIF.idl"
#include "TimeIF.idl"

/*
CLASS
ThalesBatteryIF

DESCRIPTION
TaskInterface to Thales battery device driver

AUTHOR
Mike Allen
*/

interface ThalesBatteryIF : InstrumentIF {
    
    enum PACK_LIMITS
    {
	maxNumberOfBatteryPacks = 4
    };
    
    //automatically power batteries
    
    void setAutoMode(in boolean autom);
    void turnOn(in short index);
    void turnOff(in short index);

    //battery numbers
    short getNumBatteries();
    short getNumBatteriesAlive();
    short getNumBatteriesOn();
    
    //global info
    double getGlobalVolts();
    double getGlobalAmps();
    double getGlobalCapacity();
    
    //battery info
    double getBatteryVolts(in short index);
    double getBatteryAmps(in short index);
    double getBatteryMaxVolts(in short index);
    double getBatteryMinVolts(in short index);
    double getBatteryCapacity(in short index);
    double getBatteryTemp(in short index);
    char getBatteryState(in short index);
    char getBatteryErrorState(in short index);
    short getBatteryCommsFailures(in short index);
    short getBatteryErrorLevels(in short index);

    //global warning levels
    short getGlobalErrorLevel();
    

};
