203 lines
4.0 KiB
C++
203 lines
4.0 KiB
C++
/*
|
|
* xlru_interface.h
|
|
*
|
|
*/
|
|
|
|
#ifndef XLRU_MANAGER_H_
|
|
#define XLRU_MANAGER_H_
|
|
|
|
|
|
class XLruManager
|
|
{
|
|
public:
|
|
|
|
struct manager_status_t
|
|
{
|
|
unsigned int poroduce_messages;
|
|
unsigned int received_bytes;
|
|
unsigned int received_garbage;
|
|
unsigned int received_messages;
|
|
|
|
unsigned int received_invalid_unit;
|
|
unsigned int received_overlapping;
|
|
|
|
unsigned int good_messages;
|
|
unsigned int error_messages;
|
|
|
|
unsigned int transmitted_bytes;
|
|
|
|
unsigned int overruns;
|
|
unsigned int biterror;
|
|
|
|
unsigned int received_oob;
|
|
};
|
|
|
|
struct unit_comm_status_t
|
|
{
|
|
bool commDeviceOk; //the communication device is working
|
|
bool linkUp; //communication with unit is OK. Unit status is valid
|
|
|
|
unsigned int good_messages;
|
|
unsigned int error_messages;
|
|
|
|
unsigned int reply_missed;
|
|
unsigned int reply_pending;
|
|
|
|
unsigned int sent_messages;
|
|
unsigned int reply_overlap;
|
|
};
|
|
|
|
struct unit_basic_status_t //Common to all units
|
|
{
|
|
bool unitOk; //unit is OK
|
|
|
|
bool overtempWarning; //Override-able over-temperature warning
|
|
bool overtempHazard; //No Override-able over-temperature hazard
|
|
};
|
|
|
|
struct unit_status_t
|
|
{
|
|
unit_comm_status_t commStatus;
|
|
unit_basic_status_t basicStatus;
|
|
};
|
|
|
|
struct psm_status_t
|
|
{
|
|
unit_status_t status;
|
|
|
|
bool wow; //Weight-on-Wheel
|
|
bool inputPowerFail;
|
|
float inAmp;
|
|
};
|
|
|
|
enum pps_power_sts_t { pps_power_err, pps_power_idle, pps_power_stby, pps_power_full, pps_power_low};
|
|
|
|
struct pps_tx_status_t
|
|
{
|
|
char sts_char;
|
|
bool comm_fail;
|
|
bool overtemp;
|
|
bool board_fail;
|
|
};
|
|
|
|
struct pps_status_t
|
|
{
|
|
unit_status_t status;
|
|
bool warning;
|
|
pps_power_sts_t power_sts;
|
|
char power_sts_char;
|
|
float rxPower;
|
|
float txPower;
|
|
float txPowerMax;
|
|
float txPowerAvg;
|
|
float rxTemperature;
|
|
float txHigherTemperature;
|
|
|
|
int txPowerMaxValitity;
|
|
int txPowerAvgValitity;
|
|
|
|
pps_tx_status_t tx[3];
|
|
|
|
int rxPhaseValidity;
|
|
|
|
float rxPhaseMin[3]; // R;S;T
|
|
float rxPhaseMax[3]; // R;S;T
|
|
};
|
|
|
|
struct lcu_status_t
|
|
{
|
|
unit_status_t status;
|
|
};
|
|
|
|
static bool start();
|
|
|
|
static manager_status_t& managerStatus();
|
|
|
|
static void emergyEnable(bool enable=true);
|
|
|
|
static bool wowActive();
|
|
static bool wowFail();
|
|
|
|
static unsigned int wowPpsTxFail();
|
|
|
|
typedef unsigned short ext_bite_word_t;
|
|
|
|
struct bite_report_t
|
|
{
|
|
ext_bite_word_t localization;
|
|
ext_bite_word_t test[2];
|
|
};
|
|
|
|
//PSM:
|
|
static psm_status_t& psmStatus();
|
|
static float psmTemperature();
|
|
|
|
static void psmPowerDown(bool enable=true);
|
|
static void psmRecycle(bool enable=true);
|
|
static void psmEmergency(bool enable);
|
|
static void psmFastEnable(bool enable=true);
|
|
static bool psmFastPowerup();
|
|
|
|
static bite_report_t psm_bite_report();
|
|
|
|
static bool psmRecycled(); //true if reyccled!!!
|
|
static int psmRecycleCode(); //the reason (0=recycle by PSM)
|
|
//PPS
|
|
|
|
static bite_report_t pps_bite_report();
|
|
|
|
static pps_status_t& ppsStatus();
|
|
|
|
static float ppsTemperature();
|
|
|
|
static void ppsPowerOuputEnable(bool enable);
|
|
static void ppsPowerLimitationEnable(bool enable);
|
|
|
|
static void ppsExecuteInterruptiveBit(bool enable);
|
|
|
|
//LCU:
|
|
static bool lcu_ready();
|
|
|
|
static bite_report_t lcu_bite_report();
|
|
|
|
static lcu_status_t& lcuStatus();
|
|
|
|
static float lcuTemperature();
|
|
static float lcuAesaInletTemperature();
|
|
static float lcuAesaOutletTemperature();
|
|
|
|
static void lcuHeaterOn(bool enable);
|
|
|
|
static void lcuExecuteInterruptiveBit(bool enable);
|
|
static void lcuReset(bool enable);
|
|
|
|
|
|
//Ony for debug
|
|
static void setOutOfBandDataHandler(void (*handler)(char c));
|
|
static void injectOutofBandData(char c);
|
|
|
|
static void setHostMode(unsigned int hmode);
|
|
static void psmFastOverride(int ovr);
|
|
static void psmWowOverride(int ovr);
|
|
|
|
static bool risMode();
|
|
|
|
enum panic_reason_t
|
|
{
|
|
panic_none,
|
|
panic_dsp=(1<<0),
|
|
panic_dfe=(1<<1),
|
|
panic_aesa=(1<<2),
|
|
panic_pwerr=(1<<3),
|
|
panic_rdy=(1<<4)
|
|
};
|
|
typedef unsigned int panic_event_t; //or of panic_reason_t
|
|
|
|
static unsigned int panicAlert(panic_event_t evn);
|
|
};
|
|
|
|
void XLruManagerRisMode(bool enable);
|
|
void XlruManagerDisableUdpLog(bool please_disable);
|
|
|
|
#endif /* XLRU_MANAGER_H_ */
|