SXXXXXXX_PyBusMonitor1553/cpp/GrifoScope/GrifoXLruMonitor/unitsimulator.cpp
2025-12-17 07:59:30 +01:00

1626 lines
41 KiB
C++

#include "unitsimulator.h"
#include <QDebug>
#include "xlru_bytes_def.h"
#include "xlru_lcu.h"
uint8_t LCU_Status_byte[5] = {0, 0, 0, 0, 0};
uint8_t PPS_Status_byte[6] = {0, 0, 0, 0, 0, 0};
uint8_t PSM_Status_byte[4] = {0, 0, 0, 0};
//00000001 0x01
//00000010 0x02
//00000100 0x04
//00001000 0x08
//00010000 0x10
//00100000 0x20
//01000000 0x40
//10000000 0x80
//LSB
#define PSM_IN_AMP_LSB (double)0.1 //DC_BUS_CURRENT measure
#define PSM_OUT_VOLT_LSB (double)0.1 //5V, 3V3_int, 15V, -15V measure
#define PPS_CURR_LSB (double)0.1
struct comm_header_t //5
{
char som;
char unit;
char fcs;
char comm_status;
char msg_id;
} __attribute__((packed));
//************************************
//PSM
struct psm_status_body_t
{
comm_header_t header; //non corrisponde con la definizione pag 21, documento TNXXXXXX GRIFO-E PSM IDD Rev.0_Draft1.docx
char sts;
char hazard;
char fast;
char wow;
char ac;
char bs;
char dc;
char pfc;
char out_rail[4];
char in_amp[2];
char volts[4][4];
char temperature[2];
char eti[4];
char counter[4];
char sw_major[2];
char sw_minor[2];
char unc_counter[2];
char byte4[2];
char byte3[2];
char byte2[2];
char byte1[2];
//char spare1[2];
char last_recycle;
char last_recycle_reason;
//char spare1; //55
} __attribute__((packed));
//************************************
//PPS
struct pps_status_body_t
{
comm_header_t header; //5
char sts;
char health;
char wow;
char hazard;
char current_limit;
char hold_up_status[2];
char rx_board[2];
char tx1_board[2];
char tx2_board[2];
char tx3_board[2];
char general[2];
char rx_version[2];
char rx_release[2];
char tx1_version[2];
char tx1_release[2];
char tx2_version[2];
char tx2_release[2];
char tx3_version[2];
char tx3_release[2];
char rx_temp[2];
char tx1_temp[2];
char tx2_temp[2];
char tx3_temp[2];
char inlet_temp[2];
char outlet_temp[2];
char curr[2]; //52
char tx1_curr[2]; //54
char tx2_curr[2]; //56
char tx3_curr[2]; //58
char tx1_curr_max[2]; //60
char tx2_curr_max[2]; //62
char tx3_curr_max[2]; //64
char tx1_curr_avg[2]; //66
char tx2_curr_avg[2]; //68
char tx3_curr_avg[2]; //70
char rx_phaseR_min[2]; //72
char rx_phaseS_min[2]; //74
char rx_phaseT_min[2]; //76
char rx_phaseR_max[2]; //78
char rx_phaseS_max[2]; //80
char rx_phaseT_max[2]; //82
char spare1[2]; //84
} __attribute__((packed));
//************************************
//LCU
struct lcu_status_body_t
{
comm_header_t header; //5
char sts;
char bit;
char bypass;
char health;
char hazard;
char spare1[2];
char spare2[2];
char byte1[2];
char byte2[2];
char byte3[2];
char byte4[2];
char byte5[2];
char board_temp[2];
char mts[2];
char mfs[2];
char ts1[2];
char ts2[2];
char ts3[2];
char ts4[2];
char ts5[2];
char ts6[2];
char spare3[2];
char fs1[2];
char fs2[2];
char ps[2];
char spare4[2];
char ver[2];
char rel[2];
char override;
char spare5;
char spare6[2]; //60
} __attribute__((packed));
//************************************
//LCU
struct lcu_eti_body_t
{
comm_header_t header; //5
char spare1[2];
char spare2[2];
char spare3[2];
char eti[6];
char spare4[2]; //14
} __attribute__((packed));
template<typename T_, unsigned int S_> struct lru_generic_message_t
{
typedef T_ payload_t;
enum { payload_size=sizeof(T_)};
union msg_union_t {
struct msg_raw_t {
char d[payload_size];
} raw;
T_ sts;
} payload;
char checksum[2]; //2
char eom; //1
//Payload size check
static_assert(payload_size>=(S_+5), "payload too small");
static_assert(payload_size<=(S_+5), "payload too big");
} __attribute__((packed));
template<typename T_> void checksum(char* r, const T_& msg)
{
unsigned int size=sizeof msg;
unsigned int chk=0;
const unsigned char* p=reinterpret_cast<const unsigned char*>(&msg);
for(unsigned int i=0; i<size; ++i)
{
unsigned int tmp=p[i];
chk+=tmp & 0x0FF;
}
chk=chk & 0x00FF;
r[0]="0123456789ABCDEF"[chk>>4];
r[1]="0123456789ABCDEF"[chk & 0x0F];
}
static lru_generic_message_t<psm_status_body_t, 56> psm_status;
static lru_generic_message_t<pps_status_body_t, 79> pps_status;
static lru_generic_message_t<lcu_status_body_t, 55> lcu_status;
static lru_generic_message_t<lcu_eti_body_t, 14> lcu_eti;
static char last_fcs;
static char last_unit;
static void psm_init()
{
memset(&psm_status, STATUS_SPARE, sizeof psm_status);
psm_status.payload.sts.header.som=SOM_REPLY;
psm_status.payload.sts.header.unit='1';
psm_status.payload.sts.header.fcs='a';
psm_status.payload.sts.header.comm_status=ACK_NO_ERROR;
psm_status.payload.sts.header.msg_id='S';
psm_status.payload.sts.sts='G';
psm_status.payload.sts.hazard='N';
psm_status.payload.sts.fast='c';
psm_status.payload.sts.wow='w';
psm_status.payload.sts.ac='A';
psm_status.payload.sts.bs='N';
psm_status.payload.sts.dc='N';
psm_status.payload.sts.pfc='N';
psm_status.payload.sts.out_rail[0]='N';
psm_status.payload.sts.out_rail[1]='N';
psm_status.payload.sts.out_rail[2]='N';
psm_status.payload.sts.out_rail[3]='N';
psm_status.payload.sts.last_recycle = '_';
memset(psm_status.payload.sts.in_amp, '0', sizeof(psm_status.payload.sts.in_amp));
memset(psm_status.payload.sts.volts, '0', sizeof(psm_status.payload.sts.volts));
memset(psm_status.payload.sts.temperature, '0', sizeof(psm_status.payload.sts.temperature));
memset(psm_status.payload.sts.eti, '0', sizeof(psm_status.payload.sts.eti));
memset(psm_status.payload.sts.counter, '0', sizeof(psm_status.payload.sts.counter));
memset(psm_status.payload.sts.sw_major, '0', sizeof(psm_status.payload.sts.sw_major));
memset(psm_status.payload.sts.sw_minor, '0', sizeof(psm_status.payload.sts.sw_minor));
memset(psm_status.payload.sts.unc_counter, '0', sizeof(psm_status.payload.sts.unc_counter));
memset(psm_status.payload.sts.byte1, '0', sizeof(psm_status.payload.sts.byte1));
memset(psm_status.payload.sts.byte2, '0', sizeof(psm_status.payload.sts.byte2));
memset(psm_status.payload.sts.byte3, '0', sizeof(psm_status.payload.sts.byte3));
memset(psm_status.payload.sts.byte4, '0', sizeof(psm_status.payload.sts.byte4));
checksum(psm_status.checksum, psm_status.payload.raw);
psm_status.eom='\r';
qDebug()<<"PSM payload size="<<psm_status.payload_size;
}
static void pps_init()
{
memset(&pps_status, STATUS_SPARE, sizeof pps_status);
pps_status.payload.sts.header.som=SOM_REPLY;
pps_status.payload.sts.header.unit='1';
pps_status.payload.sts.header.fcs='a';
pps_status.payload.sts.header.comm_status=ACK_NO_ERROR;
pps_status.payload.sts.header.msg_id='S';
pps_status.payload.sts.sts='G';
pps_status.payload.sts.health='G';
pps_status.payload.sts.wow='w';
pps_status.payload.sts.hazard='_';
pps_status.payload.sts.current_limit='_';
pps_status.payload.sts.hold_up_status[0] = '0';
pps_status.payload.sts.hold_up_status[1] = '0';
pps_status.payload.sts.rx_board[0] = '0';
pps_status.payload.sts.rx_board[1] = '0';
pps_status.payload.sts.tx1_board[0] = '0';
pps_status.payload.sts.tx1_board[1] = '0';
pps_status.payload.sts.tx2_board[0] = '0';
pps_status.payload.sts.tx2_board[1] = '0';
pps_status.payload.sts.tx3_board[0] = '0';
pps_status.payload.sts.tx3_board[1] = '0';
pps_status.payload.sts.general[0] = '0';
pps_status.payload.sts.general[1] = '0';
pps_status.payload.sts.rx_version[0] = '0';
pps_status.payload.sts.rx_version[1] = '0';
pps_status.payload.sts.rx_release[0] = '0';
pps_status.payload.sts.rx_release[1] = '0';
pps_status.payload.sts.tx1_version[0] = '0';
pps_status.payload.sts.tx1_version[1] = '0';
pps_status.payload.sts.tx1_release[0] = '0';
pps_status.payload.sts.tx1_release[1] = '0';
pps_status.payload.sts.tx2_version[0] = '0';
pps_status.payload.sts.tx2_version[1] = '0';
pps_status.payload.sts.tx2_release[0] = '0';
pps_status.payload.sts.tx2_release[1] = '0';
pps_status.payload.sts.tx3_version[0] = '0';
pps_status.payload.sts.tx3_version[1] = '0';
pps_status.payload.sts.tx3_release[0] = '0';
pps_status.payload.sts.tx3_release[1] = '0';
pps_status.payload.sts.rx_temp[0] = '0';
pps_status.payload.sts.rx_temp[1] = '0';
pps_status.payload.sts.tx1_temp[0] = '0';
pps_status.payload.sts.tx1_temp[1] = '0';
pps_status.payload.sts.tx2_temp[0] = '0';
pps_status.payload.sts.tx2_temp[1] = '0';
pps_status.payload.sts.tx3_temp[0] = '0';
pps_status.payload.sts.tx3_temp[1] = '0';
pps_status.payload.sts.inlet_temp[0] = '0';
pps_status.payload.sts.inlet_temp[1] = '0';
pps_status.payload.sts.outlet_temp[0] = '0';
pps_status.payload.sts.outlet_temp[1] = '0';
pps_status.payload.sts.curr[0] = '0';
pps_status.payload.sts.curr[1] = '0';
pps_status.payload.sts.tx1_curr[0] = '0';
pps_status.payload.sts.tx1_curr[1] = '0';
pps_status.payload.sts.tx2_curr[0] = '0';
pps_status.payload.sts.tx2_curr[1] = '0';
pps_status.payload.sts.tx3_curr[0] = '0';
pps_status.payload.sts.tx3_curr[1] = '0';
pps_status.payload.sts.tx1_curr_max[0] = '0';
pps_status.payload.sts.tx1_curr_max[1] = '0';
pps_status.payload.sts.tx2_curr_max[0] = '0';
pps_status.payload.sts.tx2_curr_max[1] = '0';
pps_status.payload.sts.tx3_curr_max[0] = '0';
pps_status.payload.sts.tx3_curr_max[1] = '0';
pps_status.payload.sts.tx1_curr_avg[0] = '0';
pps_status.payload.sts.tx1_curr_avg[1] = '0';
pps_status.payload.sts.tx2_curr_avg[0] = '0';
pps_status.payload.sts.tx2_curr_avg[1] = '0';
pps_status.payload.sts.tx3_curr_avg[0] = '0';
pps_status.payload.sts.tx3_curr_avg[1] = '0';
pps_status.payload.sts.rx_phaseR_min[0] = '0';
pps_status.payload.sts.rx_phaseR_min[1] = '0';
pps_status.payload.sts.rx_phaseS_min[0] = '0';
pps_status.payload.sts.rx_phaseS_min[1] = '0';
pps_status.payload.sts.rx_phaseT_min[0] = '0';
pps_status.payload.sts.rx_phaseT_min[1] = '0';
pps_status.payload.sts.rx_phaseR_max[0] = '0';
pps_status.payload.sts.rx_phaseR_max[1] = '0';
pps_status.payload.sts.rx_phaseS_max[0] = '0';
pps_status.payload.sts.rx_phaseS_max[1] = '0';
pps_status.payload.sts.rx_phaseT_max[0] = '0';
pps_status.payload.sts.rx_phaseT_max[1] = '0';
checksum(pps_status.checksum, pps_status.payload.raw);
pps_status.eom='\r';
qDebug()<<"PPS payload size="<<pps_status.payload_size;
}
static void lcu_init()
{
memset(&lcu_status, STATUS_SPARE, sizeof lcu_status);
lcu_status.payload.sts.header.som=SOM_REPLY;
lcu_status.payload.sts.header.unit='3';
lcu_status.payload.sts.header.fcs='a';
lcu_status.payload.sts.header.comm_status=ACK_NO_ERROR;
lcu_status.payload.sts.header.msg_id='s';
lcu_status.payload.sts.sts='G';
lcu_status.payload.sts.bit='_';
lcu_status.payload.sts.bypass='_';
lcu_status.payload.sts.health='G';
lcu_status.payload.sts.hazard='_';
lcu_status.payload.sts.ts1[0] = '0';
lcu_status.payload.sts.ts1[1] = '0';
lcu_status.payload.sts.ts2[0] = '0';
lcu_status.payload.sts.ts2[1] = '0';
lcu_status.payload.sts.ts3[0] = '0';
lcu_status.payload.sts.ts3[1] = '0';
lcu_status.payload.sts.ts4[0] = '0';
lcu_status.payload.sts.ts4[1] = '0';
lcu_status.payload.sts.ts5[0] = '0';
lcu_status.payload.sts.ts5[1] = '0';
lcu_status.payload.sts.ts6[0] = '0';
lcu_status.payload.sts.ts6[1] = '0';
lcu_status.payload.sts.board_temp[0] = '0';
lcu_status.payload.sts.board_temp[1] = '0';
lcu_status.payload.sts.mts[0] = '0';
lcu_status.payload.sts.mts[1] = '0';
lcu_status.payload.sts.mfs[0] = '0';
lcu_status.payload.sts.mfs[1] = '0';
lcu_status.payload.sts.fs1[0] = '0';
lcu_status.payload.sts.fs1[1] = '0';
lcu_status.payload.sts.fs2[0] = '0';
lcu_status.payload.sts.fs2[1] = '0';
lcu_status.payload.sts.ps[0] = '0';
lcu_status.payload.sts.ps[1] = '0';
lcu_status.payload.sts.byte1[0] = '0';
lcu_status.payload.sts.byte1[1] = '0';
lcu_status.payload.sts.byte2[0] = '0';
lcu_status.payload.sts.byte2[1] = '0';
lcu_status.payload.sts.byte3[0] = '0';
lcu_status.payload.sts.byte3[1] = '0';
lcu_status.payload.sts.byte4[0] = '0';
lcu_status.payload.sts.byte4[1] = '0';
lcu_status.payload.sts.byte5[0] = '0';
lcu_status.payload.sts.byte5[1] = '0';
lcu_status.payload.sts.ver[0] = '0';
lcu_status.payload.sts.ver[1] = '0';
lcu_status.payload.sts.rel[0] = '0';
lcu_status.payload.sts.rel[1] = '0';
lcu_status.payload.sts.override = '_';
checksum(lcu_status.checksum, lcu_status.payload.raw);
lcu_status.eom='\r';
qDebug()<<"LCU payload size="<<lcu_status.payload_size;
lcu_eti.payload.sts.header.som=SOM_REPLY;
lcu_eti.payload.sts.header.unit='3';
lcu_eti.payload.sts.header.fcs='a';
lcu_eti.payload.sts.header.comm_status=ACK_NO_ERROR;
lcu_eti.payload.sts.header.msg_id='s';
lcu_eti.payload.sts.spare1[0] = '0';
lcu_eti.payload.sts.spare1[1] = '0';
lcu_eti.payload.sts.spare2[0] = '0';
lcu_eti.payload.sts.spare2[1] = '0';
lcu_eti.payload.sts.spare3[0] = '0';
lcu_eti.payload.sts.spare3[1] = '0';
lcu_eti.payload.sts.eti[0] = '0';
lcu_eti.payload.sts.eti[1] = '0';
lcu_eti.payload.sts.eti[2] = '0';
lcu_eti.payload.sts.eti[3] = '0';
lcu_eti.payload.sts.eti[4] = '0';
lcu_eti.payload.sts.eti[5] = '0';
lcu_eti.payload.sts.spare4[0] = '0';
lcu_eti.payload.sts.spare4[1] = '0';
checksum(lcu_eti.checksum, lcu_eti.payload.raw);
lcu_eti.eom='\r';
qDebug()<<"LCU ETI payload size="<<lcu_eti.payload_size;
}
int8_t check_temp(int16_t n)
{
if(n > 128)
return 128;
else if(n < -127)
return -127;
else
return n;
}
UnitSimulator::UnitSimulator(QObject *parent) : QObject(parent)
{
psm_init();
pps_init();
lcu_init();
}
void processChange(int t, char byte1[2])
{
char tmp[3] = { 0 };
t = check_temp(t);
snprintf(tmp, 3, "%02X", (uint8_t)t);
byte1[0] = tmp[0];
byte1[1] = tmp[1];
}
void processChangeETI(int t, char byte1[6])
{
char tmp[7] = { 0 };
//t = check_temp(t);
snprintf(tmp, 7, "%06X", (uint32_t)t);
byte1[0] = tmp[0];
byte1[1] = tmp[1];
byte1[2] = tmp[2];
byte1[3] = tmp[3];
byte1[4] = tmp[4];
byte1[5] = tmp[5];
}
void processChangeLsb(double t, char byte1[2], float lsb)
{
char tmp[3] = { 0 };
t = t / lsb;
int new_t = (int)(t + 0.5);
//t = check_temp(t);
snprintf(tmp, 3, "%02X", (uint8_t)new_t);
byte1[0] = tmp[0];
byte1[1] = tmp[1];
}
void processChange4(int t, char byte1[4])
{
char tmp[5] = { 0 };
t = check_temp(t);
snprintf(tmp, 5, "%04X", t);
byte1[0] = tmp[0];
byte1[1] = tmp[1];
byte1[2] = tmp[2];
byte1[3] = tmp[3];
}
int UnitSimulator::checkMessage(const QByteArray& data)
{
static QByteArray accumulator;
const char* p=data.constData();
int n=data.size();
int unit=0;
for(int i=0; i<n; ++i)
{
if (p[i]==SOM)
{
accumulator.clear();
}
accumulator.append(p[i]);
if (p[i]=='\r')
{
if (accumulator.size()>4)
{
const char* m=accumulator.constData();
if (m[0]==SOM)
{
char u=m[1];
unit=u-'0';
if ((unit<0) || (unit>3))
unit=0;
last_fcs=m[2];
last_unit=u;
pendingMessage=accumulator;
if (u=='1')
{
Q_EMIT psmCommand(QString("%1").arg(m[5]));
}
break;
}
}
accumulator.clear();
}
}
if (accumulator.size()>512)
accumulator.clear();
return unit;
}
int UnitSimulator::get_type_mess(const QByteArray& data)
{
static QByteArray accumulator;
const char* p=data.constData();
int n=data.size();
int type_mess=0;
for(int i=0; i<n; ++i)
{
if (p[i]==SOM)
{
accumulator.clear();
}
accumulator.append(p[i]);
if (p[i]=='\r')
{
if (accumulator.size()>4)
{
const char* m=accumulator.constData();
if (m[0]==SOM)
{
if (m[4]=='T' || m[4]=='t')
type_mess = 1;
pendingMessage=accumulator;
break;
}
}
accumulator.clear();
}
}
if (accumulator.size()>512)
accumulator.clear();
return type_mess;
}
QByteArray UnitSimulator::genPSMStatus() const
{
psm_status.payload.sts.header.fcs=last_fcs;
psm_status.payload.sts.header.unit=last_unit;
checksum(psm_status.checksum, psm_status.payload.raw);
QByteArray d(&psm_status.payload.raw.d[0], sizeof psm_status);
qDebug()<<"SIM"<<d;
return d;
}
QByteArray UnitSimulator::genLCUStatus() const
{
lcu_status.payload.sts.header.fcs=last_fcs;
lcu_status.payload.sts.header.unit=last_unit;
checksum(lcu_status.checksum, lcu_status.payload.raw);
QByteArray d(&lcu_status.payload.raw.d[0], sizeof lcu_status);
qDebug()<<"SIM"<<d;
return d;
}
QByteArray UnitSimulator::genLCUEti() const
{
lcu_eti.payload.sts.header.fcs=last_fcs;
lcu_eti.payload.sts.header.unit=last_unit;
lcu_eti.payload.sts.header.msg_id = 't';
checksum(lcu_eti.checksum, lcu_eti.payload.raw);
QByteArray d(&lcu_eti.payload.raw.d[0], sizeof lcu_eti);
qDebug()<<"SIM"<<d;
return d;
}
QByteArray UnitSimulator::genPPSStatus() const
{
pps_status.payload.sts.header.fcs=last_fcs;
pps_status.payload.sts.header.unit=last_unit;
checksum(pps_status.checksum, pps_status.payload.raw);
QByteArray d(&pps_status.payload.raw.d[0], sizeof pps_status);
qDebug()<<"SIM"<<d;
return d;
}
QByteArray UnitSimulator::psmStatus() const
{
return genPSMStatus();
}
QByteArray UnitSimulator::ppsStatus() const
{
return genPPSStatus();
}
QByteArray UnitSimulator::lcuStatus() const
{
return genLCUStatus();
}
QByteArray UnitSimulator::lcuEti() const
{
return genLCUEti();
}
void UnitSimulator::pmsGo(bool go)
{
psm_status.payload.sts.sts=go ? 'G' : 'N';
}
//*******************************************************************
//LCU
void UnitSimulator::cdLCUModeStatus(const QString &t)
{
lcu_status.payload.sts.sts = (t.toLatin1().data())[0];
}
void UnitSimulator::cdLCUProgress(const QString &t)
{
lcu_status.payload.sts.bit = (t.toLatin1().data())[0];
}
void UnitSimulator::cdLCUHealth(const QString &t)
{
lcu_status.payload.sts.health = (t.toLatin1().data())[0];
}
void UnitSimulator::cdLCUByPass(const QString &t)
{
lcu_status.payload.sts.bypass = (t.toLatin1().data())[0];
}
void UnitSimulator::cdLCUHazard(const QString &t)
{
lcu_status.payload.sts.hazard = (t.toLatin1().data())[0];
}
void UnitSimulator::cdLCUOverride(const QString &t)
{
lcu_status.payload.sts.override = (t.toLatin1().data())[0];
}
void UnitSimulator::dsbTS1(int t)
{
processChange(t,lcu_status.payload.sts.ts1 );
}
void UnitSimulator::dsbTS2(int t)
{
processChange(t,lcu_status.payload.sts.ts2 );
}
void UnitSimulator::dsbTS3(int t)
{
processChange(t,lcu_status.payload.sts.ts3 );
}
void UnitSimulator::dsbTS4(int t)
{
processChange(t,lcu_status.payload.sts.ts4 );
}
void UnitSimulator::dsbTS5(int t)
{
processChange(t,lcu_status.payload.sts.ts5 );
}
void UnitSimulator::dsbTS6(int t)
{
processChange(t,lcu_status.payload.sts.ts6 );
}
void UnitSimulator::dsbBoardTemp(int t)
{
processChange(t,lcu_status.payload.sts.board_temp );
}
void UnitSimulator::dsbMTS(int t)
{
processChange(t,lcu_status.payload.sts.mts );
}
void UnitSimulator::dsbMFS(int t)
{
processChangeLsb(t,lcu_status.payload.sts.mfs , LCU_MOTOR_VEL_LSB);
}
void UnitSimulator::dsbFS1(int t)
{
processChange(t,lcu_status.payload.sts.fs1 );
}
void UnitSimulator::dsbFS2(int t)
{
processChange(t,lcu_status.payload.sts.fs2 );
}
void UnitSimulator::dsbPS(double t)
{
processChangeLsb(t,lcu_status.payload.sts.ps, LCU_LIQUID_OUTLET_PRESSURE_LSB);
}
void UnitSimulator::sbLCURelease(int t)
{
processChange(t,lcu_status.payload.sts.rel );
}
void UnitSimulator::sbLCUVersion(int t)
{
processChange(t,lcu_status.payload.sts.ver );
}
void UnitSimulator::sbLCUETI(int t)
{
processChangeETI(t,lcu_eti.payload.sts.eti );
}
void cbMgnLCU(int t, int idxByte, uint8_t flag, char byte1[2])
{
if (t==0)
LCU_Status_byte[idxByte] &= ~flag;
else
LCU_Status_byte[idxByte] |= flag;
char tmp[3] = { 0 };
snprintf(tmp, 3, "%02X", LCU_Status_byte[idxByte]);
byte1[0] = tmp[0];
byte1[1] = tmp[1];
}
void UnitSimulator::cbLCU11(int t)
{
cbMgnLCU(t, 0, Bit_PhaseA_failure, lcu_status.payload.sts.byte1);
}
void UnitSimulator::cbLCU12(int t)
{
cbMgnLCU(t, 0, Bit_PhaseB_failure, lcu_status.payload.sts.byte1);
}
void UnitSimulator::cbLCU13(int t)
{
cbMgnLCU(t, 0, Bit_PhaseC_failure, lcu_status.payload.sts.byte1);
}
void UnitSimulator::cbLCU14(int t)
{
cbMgnLCU(t, 0, Bit_Phase_Sequence_failure, lcu_status.payload.sts.byte1);
}
void UnitSimulator::cbLCU17(int t)
{
cbMgnLCU(t, 0, Bit_Pressure_Sensor_fail, lcu_status.payload.sts.byte1);
}
void UnitSimulator::cbLCU21(int t)
{
cbMgnLCU(t, 1, Bit_Temperature_Hazard, lcu_status.payload.sts.byte2);
}
void UnitSimulator::cbLCU22(int t)
{
cbMgnLCU(t, 1, Bit_Temperature_Warning, lcu_status.payload.sts.byte2);
}
void UnitSimulator::cbLCU23(int t)
{
cbMgnLCU(t, 1, Bit_NVM_Access_Warning, lcu_status.payload.sts.byte2);
}
void UnitSimulator::cbLCU24(int t)
{
cbMgnLCU(t, 1, Bit_Board_Error_failure, lcu_status.payload.sts.byte2);
}
void UnitSimulator::cbLCU25(int t)
{
cbMgnLCU(t, 1, Bit_Link_failure, lcu_status.payload.sts.byte2);
}
void UnitSimulator::cbLCU31(int t)
{
cbMgnLCU(t, 2, Bit_motor_speed_sensor_fail, lcu_status.payload.sts.byte3);
}
void UnitSimulator::cbLCU32(int t)
{
cbMgnLCU(t, 2, Bit_motor_temperature_hazard2, lcu_status.payload.sts.byte3);
}
void UnitSimulator::cbLCU33(int t)
{
cbMgnLCU(t, 2, Bit_motor_temperature_hazard, lcu_status.payload.sts.byte3);
}
void UnitSimulator::cbLCU34(int t)
{
cbMgnLCU(t, 2, Bit_motor_failure, lcu_status.payload.sts.byte3);
}
void UnitSimulator::cbLCU38(int t)
{
cbMgnLCU(t, 2, Bit_motor_temp_sensor_fail, lcu_status.payload.sts.byte3);
}
void UnitSimulator::cbLCU41(int t)
{
cbMgnLCU(t, 3, Bit_inlet_temp_sensor_fail_AESA_TS1, lcu_status.payload.sts.byte4);
}
void UnitSimulator::cbLCU42(int t)
{
cbMgnLCU(t, 3, Bit_inlet_temp_sensor_fail_PPS_TS2, lcu_status.payload.sts.byte4);
}
void UnitSimulator::cbLCU43(int t)
{
cbMgnLCU(t, 3, Bit_inlet_temp_sensor_fail_Combo_TS3, lcu_status.payload.sts.byte4);
}
void UnitSimulator::cbLCU44(int t)
{
cbMgnLCU(t, 3, Bit_outlet_temp_sensor_fail_TS4, lcu_status.payload.sts.byte4);
}
void UnitSimulator::cbLCU45(int t)
{
cbMgnLCU(t, 3, Bit_inlet_air_temp_sensor_fail_TS5, lcu_status.payload.sts.byte4);
}
void UnitSimulator::cbLCU46(int t)
{
cbMgnLCU(t, 3, Bit_outlet_air_temp_sensor_fail_TS6, lcu_status.payload.sts.byte4);
}
void UnitSimulator::cbLCU47(int t)
{
cbMgnLCU(t, 3, Bit_inlet_flow_sensor_AESA_FS1, lcu_status.payload.sts.byte4);
}
void UnitSimulator::cbLCU48(int t)
{
cbMgnLCU(t, 3, Bit_inlet_flow_sensor_PPS_FS2, lcu_status.payload.sts.byte4);
}
void UnitSimulator::cbLCU51(int t)
{
cbMgnLCU(t, 4, Bit_Dirty_filter_HE_warning, lcu_status.payload.sts.byte5);
}
void UnitSimulator::cbLCU52(int t)
{
cbMgnLCU(t, 4, Bit_Dirty_AESA_Stream_warning, lcu_status.payload.sts.byte5);
}
void UnitSimulator::cbLCU53(int t)
{
cbMgnLCU(t, 4, Bit_Dirty_PPS_Stream_warning, lcu_status.payload.sts.byte5);
}
//void cbLCU54(int t);
void UnitSimulator::cbLCU55(int t)
{
cbMgnLCU(t, 4, Bit_Dirty_filter_HE_failure, lcu_status.payload.sts.byte5);
}
void UnitSimulator::cbLCU56(int t)
{
cbMgnLCU(t, 4, Bit_Dirty_AESA_stream_failure, lcu_status.payload.sts.byte5);
}
void UnitSimulator::cbLCU57(int t)
{
cbMgnLCU(t, 4, Bit_Dirty_PPS_stream_failure, lcu_status.payload.sts.byte5);
}
void UnitSimulator::cbLCU58(int t)
{
cbMgnLCU(t, 4, Bit_By_Pass_failure, lcu_status.payload.sts.byte5);
}
//*****************************************************************
//PSM
void UnitSimulator::cdPSMModeStatus(const QString &t)
{
psm_status.payload.sts.sts = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMHazard(const QString &t)
{
psm_status.payload.sts.hazard = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSM3Sec(const QString &t)
{
psm_status.payload.sts.fast = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMWow(const QString &t)
{
psm_status.payload.sts.wow = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMAc(const QString &t)
{
psm_status.payload.sts.ac = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMbs(const QString &t)
{
psm_status.payload.sts.bs = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMdc(const QString &t)
{
psm_status.payload.sts.dc = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMpfc(const QString &t){
psm_status.payload.sts.pfc = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMvolt3v3(const QString &t)
{
psm_status.payload.sts.out_rail[0] = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMvolt5(const QString &t)
{
psm_status.payload.sts.out_rail[1] = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMvolt12(const QString &t)
{
psm_status.payload.sts.out_rail[2] = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMvoltneg12(const QString &t)
{
psm_status.payload.sts.out_rail[3] = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPSMLastRecycle(const QString &t)
{
psm_status.payload.sts.last_recycle = (t.toLatin1().data())[0];
}
void UnitSimulator::editLastRecycleReasonFromEif(const QString &t)
{
if (t.isEmpty())
psm_status.payload.sts.last_recycle_reason = '_';
else
psm_status.payload.sts.last_recycle_reason = (t.toLatin1().data())[0];
}
void UnitSimulator::sbPSMInAmp(double t)
{
t = round(t / PSM_IN_AMP_LSB);
processChange((int)t,psm_status.payload.sts.in_amp );
}
void UnitSimulator::sbPSMOutVolt3v3(double t)
{
t = round(t / PSM_OUT_VOLT_LSB);
processChange4((int)t,psm_status.payload.sts.volts[0] );
}
void UnitSimulator::sbPSMOutVolt5v(double t)
{
t = round(t / PSM_OUT_VOLT_LSB);
processChange4((int)t,psm_status.payload.sts.volts[1] );
}
void UnitSimulator::sbPSMOutVolt15v(double t)
{
t = round(t / PSM_OUT_VOLT_LSB);
processChange4((int)t,psm_status.payload.sts.volts[2] );
}
void UnitSimulator::sbPSMOutVoltm15v(double t)
{
t = round(t / PSM_OUT_VOLT_LSB);
processChange4((int)t,psm_status.payload.sts.volts[3] );
}
void UnitSimulator::sbPSMTemp(int t)
{
processChange(t,psm_status.payload.sts.temperature );
}
void UnitSimulator::sbPSMETI(int t)
{
processChange4(t,psm_status.payload.sts.eti );
}
void UnitSimulator::sbPSMOnCount(int t)
{
processChange4(t,psm_status.payload.sts.counter );
}
void UnitSimulator::sbPSMUncCount(int t)
{
processChange(t,psm_status.payload.sts.unc_counter );
}
void UnitSimulator::sbPSMVer(int t)
{
processChange(t,psm_status.payload.sts.sw_major);
}
void UnitSimulator::sbPSMRel(int t)
{
processChange(t,psm_status.payload.sts.sw_minor );
}
void cbMgnPSMS(int t, int idxByte, uint8_t flag, char byte1[2])
{
if (t==0)
PSM_Status_byte[idxByte] &= ~flag;
else
PSM_Status_byte[idxByte] |= flag;
char tmp[3] = { 0 };
snprintf(tmp, 3, "%02X", PSM_Status_byte[idxByte]);
byte1[0] = tmp[0];
byte1[1] = tmp[1];
}
void UnitSimulator::cbPSM11(int t)
{
//cbMgnPSMS(t, 0, PSM1_Bit, psm_status.payload.sts.byte1);
cbMgnPSMS(t, 0, PSM1_Bit0_PSM_recycle_panic, psm_status.payload.sts.byte1);
}
void UnitSimulator::cbPSM12(int t)
{
cbMgnPSMS(t, 0, PSM1_Bit1_PSM_EIF_comm, psm_status.payload.sts.byte1);
}
void UnitSimulator::cbPSM13(int t)
{
cbMgnPSMS(t, 0, PSM1_Bit2_rs422_comm, psm_status.payload.sts.byte1);
}
void UnitSimulator::cbPSM14(int t)
{
cbMgnPSMS(t, 0, PSM1_Bit3_rs485_comm, psm_status.payload.sts.byte1);
}
void UnitSimulator::cbPSM15(int t)
{
cbMgnPSMS(t, 0, PSM1_Bit4_rs232_comm, psm_status.payload.sts.byte1);
}
void UnitSimulator::cbPSM16(int t)
{
cbMgnPSMS(t, 0, PSM1_Bit5_ov_temp_haz_2, psm_status.payload.sts.byte1);
}
void UnitSimulator::cbPSM17(int t)
{
cbMgnPSMS(t, 0, PSM1_Bit6_ov_board_temp, psm_status.payload.sts.byte1);
}
void UnitSimulator::cbPSM18(int t)
{
cbMgnPSMS(t, 0, PSM1_Bit7_ov_dc_bus_current, psm_status.payload.sts.byte1);
}
void UnitSimulator::cbPSM21(int t)
{
cbMgnPSMS(t, 1, PSM2_Bit0_ov_m15v, psm_status.payload.sts.byte2);
}
void UnitSimulator::cbPSM22(int t)
{
cbMgnPSMS(t, 1, PSM2_Bit1_uv_m15v, psm_status.payload.sts.byte2);
}
void UnitSimulator::cbPSM23(int t)
{
cbMgnPSMS(t, 1, PSM2_Bit2_ov_15v, psm_status.payload.sts.byte2);
}
void UnitSimulator::cbPSM24(int t)
{
cbMgnPSMS(t, 1, PSM2_Bit3_uv_15v, psm_status.payload.sts.byte2);
}
void UnitSimulator::cbPSM25(int t)
{
cbMgnPSMS(t, 1, PSM2_Bit4_ov_5v, psm_status.payload.sts.byte2);
}
void UnitSimulator::cbPSM26(int t)
{
cbMgnPSMS(t, 1, PSM2_Bit5_uv_5v, psm_status.payload.sts.byte2);
}
void UnitSimulator::cbPSM27(int t)
{
cbMgnPSMS(t, 1, PSM2_Bit6_ov_3v3, psm_status.payload.sts.byte2);
}
void UnitSimulator::cbPSM28(int t)
{
cbMgnPSMS(t, 1, PSM2_Bit7_uv_3v3, psm_status.payload.sts.byte2);
}
void UnitSimulator::cbPSM31(int t)
{
cbMgnPSMS(t, 2, PSM3_Bit0_ov_13v_b, psm_status.payload.sts.byte3);
}
void UnitSimulator::cbPSM32(int t)
{
cbMgnPSMS(t, 2, PSM3_Bit1_uv_13v_b, psm_status.payload.sts.byte3);
}
void UnitSimulator::cbPSM33(int t)
{
cbMgnPSMS(t, 2, PSM3_Bit2_wow_out, psm_status.payload.sts.byte3);
}
void UnitSimulator::cbPSM34(int t)
{
cbMgnPSMS(t, 2, PSM3_Bit3_3sec_in, psm_status.payload.sts.byte3);
}
void UnitSimulator::cbPSM35(int t)
{
cbMgnPSMS(t, 2, PSM3_Bit4_uv_350v, psm_status.payload.sts.byte3);
}
void UnitSimulator::cbPSM36(int t)
{
cbMgnPSMS(t, 2, PSM3_Bit5_ov_350v, psm_status.payload.sts.byte3);
}
void UnitSimulator::cbPSM37(int t)
{
cbMgnPSMS(t, 2, PSM3_Bit6_blko_tst, psm_status.payload.sts.byte3);
}
void UnitSimulator::cbPSM38(int t)
{
cbMgnPSMS(t, 2, PSM3_Bit7_pwr_err, psm_status.payload.sts.byte3);
}
void UnitSimulator::cbPSM41(int t)
{
cbMgnPSMS(t, 3, PSM4_Bit0_rdr_on_sts, psm_status.payload.sts.byte4);
}
void UnitSimulator::cbPSM42(int t)
{
cbMgnPSMS(t, 3, PSM4_Bit1_lcu_rdy_uc, psm_status.payload.sts.byte4);
}
void UnitSimulator::cbPSM43(int t)
{
cbMgnPSMS(t, 3, PSM4_Bit2_uc_interlock_o, psm_status.payload.sts.byte4);
}
void UnitSimulator::cbPSM44(int t)
{
cbMgnPSMS(t, 3, PSM4_Bit3_ac_loss, psm_status.payload.sts.byte4);
}
void UnitSimulator::cbPSM45(int t)
{
cbMgnPSMS(t, 3, PSM4_Bit4_ps_interlock_n, psm_status.payload.sts.byte4);
}
void UnitSimulator::cbPSM46(int t)
{
cbMgnPSMS(t, 3, PSM4_Bit5_ov_temp_haz, psm_status.payload.sts.byte4);
}
void UnitSimulator::cbPSM47(int t)
{
cbMgnPSMS(t, 3, PSM4_Bit6_uv_270v, psm_status.payload.sts.byte4);
}
void UnitSimulator::cbPSM48(int t)
{
cbMgnPSMS(t, 3, PSM4_Bit7_battle_short_cmd, psm_status.payload.sts.byte4);
}
//*****************************************************************
//PPS
void UnitSimulator::cbPPSModeStatus(const QString &t)
{
pps_status.payload.sts.sts = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPPShazard(const QString &t)
{
pps_status.payload.sts.hazard = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPPShealth(const QString &t)
{
pps_status.payload.sts.health = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPPSwow(const QString &t)
{
pps_status.payload.sts.wow = (t.toLatin1().data())[0];
}
void UnitSimulator::cbPPSlimit(const QString &t)
{
pps_status.payload.sts.current_limit = (t.toLatin1().data())[0];
}
void cbMgnPPS(int t, int idxByte, uint8_t flag, char byte1[2])
{
if (t==0)
PPS_Status_byte[idxByte] &= ~flag;
else
PPS_Status_byte[idxByte] |= flag;
char tmp[3] = { 0 };
snprintf(tmp, 3, "%02X", PPS_Status_byte[idxByte]);
byte1[0] = tmp[0];
byte1[1] = tmp[1];
}
//PPS BIT DEFINITIONS
void UnitSimulator::cbPPS11(int t)
{
cbMgnPPS(t, 0, PPS1_Bit1_HoldUp_LP_Under_Voltage_Fail, pps_status.payload.sts.hold_up_status);
}
void UnitSimulator::cbPPS12(int t)
{
cbMgnPPS(t, 0, PPS1_Bit2_HoldUp_HP_Under_Voltage_Fail, pps_status.payload.sts.hold_up_status);
}
void UnitSimulator::cbPPS13(int t)
{
//cbMgnPPS(t, 0, PPS1_Bit3_HoldUp_LP_Under_Voltage_Fail, pps_status.payload.sts.hold_up_status);
}
void UnitSimulator::cbPPS14(int t)
{
//cbMgnPPS(t, 0, PPS1_Bit4_HoldUp_LP_Charging_Time_Fail, pps_status.payload.sts.hold_up_status);
}
void UnitSimulator::cbPPS16(int t)
{
cbMgnPPS(t, 0, PPS1_Bit6_AC_Power_Unbalance_Fail_Ph1, pps_status.payload.sts.hold_up_status);
}
void UnitSimulator::cbPPS17(int t)
{
cbMgnPPS(t, 0, PPS1_Bit7_AC_Power_Unbalance_Fail_Ph2, pps_status.payload.sts.hold_up_status);
}
void UnitSimulator::cbPPS18(int t)
{
cbMgnPPS(t, 0, PPS1_Bit7_AC_Power_Unbalance_Fail_Ph3, pps_status.payload.sts.hold_up_status);
}
/*Byte 2*/
void UnitSimulator::cbPPS21(int t)
{
cbMgnPPS(t, 1, PPS2_Bit1_RX_Link_Fail, pps_status.payload.sts.rx_board);
}
void UnitSimulator::cbPPS22(int t)
{
cbMgnPPS(t, 1, PPS2_Bit2_RX_Input_DC_Overcurrent_Fail, pps_status.payload.sts.rx_board);
}
void UnitSimulator::cbPPS23(int t)
{
cbMgnPPS(t, 1, PPS2_Bit3_RX_Rectified_DC_Under_Voltage_Fail_Ac_Power_Loss, pps_status.payload.sts.rx_board);
}
void UnitSimulator::cbPPS25(int t)
{
cbMgnPPS(t, 1, PPS2_Bit5_Output_RX_Over_Voltage_Fail, pps_status.payload.sts.rx_board);
}
void UnitSimulator::cbPPS26(int t)
{
cbMgnPPS(t, 1, PPS2_Bit6_Output_RX_Under_Voltage_Fail, pps_status.payload.sts.rx_board);
}
void UnitSimulator::cbPPS27(int t)
{
cbMgnPPS(t, 1, PPS2_Bit7_RX_Hazard1, pps_status.payload.sts.rx_board);
}
void UnitSimulator::cbPPS28(int t)
{
cbMgnPPS(t, 1, PPS2_Bit8_RX_Hazard2, pps_status.payload.sts.rx_board);
}
/*Byte 3*/
void UnitSimulator::cbPPS31(int t)
{
cbMgnPPS(t, 2, PPS3_Bit1_TX1_link_with_RX, pps_status.payload.sts.tx1_board);
}
void UnitSimulator::cbPPS32(int t)
{
cbMgnPPS(t, 2, PPS3_Bit2_TX1_Input_DC_Over_Current_Fail, pps_status.payload.sts.tx1_board);
}
void UnitSimulator::cbPPS33(int t)
{
cbMgnPPS(t, 2, PPS3_Bit3_TX1_Rectified_DC_Under_Voltage_Fail_270_uv, pps_status.payload.sts.tx1_board);
}
void UnitSimulator::cbPPS34(int t)
{
// cbMgnPPS(t, 2, PPS3_Bit4_TX1_Rectified_DC_Over_Voltage_Fail, pps_status.payload.sts.tx1_board);
}
void UnitSimulator::cbPPS35(int t)
{
cbMgnPPS(t, 2, PPS3_Bit5_Output_TX1_Over_Voltage_Fail, pps_status.payload.sts.tx1_board);
}
void UnitSimulator::cbPPS36(int t)
{
cbMgnPPS(t, 2, PPS3_Bit6_Output_TX1_Over_Voltage_Fail, pps_status.payload.sts.tx1_board);
}
void UnitSimulator::cbPPS37(int t)
{
cbMgnPPS(t, 2, PPS3_Bit7_TX1_Hazard1, pps_status.payload.sts.tx1_board);
}
void UnitSimulator::cbPPS38(int t)
{
cbMgnPPS(t, 2, PPS3_Bit8_TX1_Hazard2, pps_status.payload.sts.tx1_board);
}
/*Byte 4*/
void UnitSimulator::cbPPS41(int t)
{
cbMgnPPS(t, 3, PPS4_Bit1_TX2_link_with_RX, pps_status.payload.sts.tx2_board);
}
void UnitSimulator::cbPPS42(int t)
{
cbMgnPPS(t, 3, PPS4_Bit2_TX2_Input_DC_Over_Current_Fail, pps_status.payload.sts.tx2_board);
}
void UnitSimulator::cbPPS43(int t)
{
cbMgnPPS(t, 3, PPS4_Bit3_TX2_Rectified_DC_Under_Voltage_Fail_270_uv, pps_status.payload.sts.tx2_board);
}
void UnitSimulator::cbPPS44(int t)
{
//cbMgnPPS(t, 3, PPS4_Bit4_TX2_Rectified_DC_Over_Voltage_Fail, pps_status.payload.sts.tx2_board);
}
void UnitSimulator::cbPPS45(int t)
{
cbMgnPPS(t, 3, PPS4_Bit5_Output_TX2_Over_Voltage_Fail, pps_status.payload.sts.tx2_board);
}
void UnitSimulator::cbPPS46(int t){
cbMgnPPS(t, 3, PPS4_Bit6_Output_TX2_Over_Voltage_Fail, pps_status.payload.sts.tx2_board);
}
void UnitSimulator::cbPPS47(int t)
{
cbMgnPPS(t, 3, PPS4_Bit7_TX2_Hazard1, pps_status.payload.sts.tx2_board);
}
void UnitSimulator::cbPPS48(int t)
{
cbMgnPPS(t, 3, PPS4_Bit8_TX2_Hazard2, pps_status.payload.sts.tx2_board);
}
/*
char general[2];*/
/*Byte 5*/
void UnitSimulator::cbPPS51(int t)
{
cbMgnPPS(t, 4, PPS5_Bit1_TX3_link_with_RX, pps_status.payload.sts.tx3_board);
}
void UnitSimulator::cbPPS52(int t)
{
cbMgnPPS(t, 4, PPS5_Bit2_TX3_Input_DC_Over_Current_Fail, pps_status.payload.sts.tx3_board);
}
void UnitSimulator::cbPPS53(int t)
{
cbMgnPPS(t, 4, PPS5_Bit3_TX3_Rectified_DC_Under_Voltage_Fail_270_uv, pps_status.payload.sts.tx3_board);
}
void UnitSimulator::cbPPS54(int t)
{
//cbMgnPPS(t, 4, PPS5_Bit4_TX3_Rectified_DC_Over_Voltage_Fail, pps_status.payload.sts.tx3_board);
}
void UnitSimulator::cbPPS55(int t)
{
cbMgnPPS(t, 4, PPS5_Bit5_Output_TX3_Over_Voltage_Fail, pps_status.payload.sts.tx3_board);
}
void UnitSimulator::cbPPS56(int t)
{
cbMgnPPS(t, 4, PPS5_Bit6_Output_TX3_Over_Voltage_Fail, pps_status.payload.sts.tx3_board);
}
void UnitSimulator::cbPPS57(int t){
cbMgnPPS(t, 4, PPS5_Bit7_TX3_Hazard1, pps_status.payload.sts.tx3_board);
}
void UnitSimulator::cbPPS58(int t)
{
cbMgnPPS(t, 4, PPS5_Bit8_TX3_Hazard2, pps_status.payload.sts.tx3_board);
}
/*Byte 6*/
void UnitSimulator::cbPPS61(int t)
{
cbMgnPPS(t, 5, PPS6_Bit1_WOW_Tellback_1, pps_status.payload.sts.general);
}
void UnitSimulator::cbPPS62(int t)
{
cbMgnPPS(t, 5, PPS6_Bit2_WOW_Tellback_2, pps_status.payload.sts.general);
}
void UnitSimulator::cbPPS63(int t){
cbMgnPPS(t, 5, PPS6_Bit3_WOW_Tellback_3, pps_status.payload.sts.general);
}
void UnitSimulator::sbPPSRXver(int t)
{
processChange(t,pps_status.payload.sts.rx_version);
}
void UnitSimulator::sbPPSRXrel(int t)
{
processChange(t,pps_status.payload.sts.rx_release);
}
void UnitSimulator::sbPPSTX1rel(int t)
{
processChange(t,pps_status.payload.sts.tx1_release);
}
void UnitSimulator::sbPPSTX2rel(int t)
{
processChange(t,pps_status.payload.sts.tx2_release);
}
void UnitSimulator::sbPPSTX3rel(int t)
{
processChange(t,pps_status.payload.sts.tx3_release);
}
void UnitSimulator::sbPPSTX1ver(int t)
{
processChange(t,pps_status.payload.sts.tx1_version);
}
void UnitSimulator::sbPPSTX2ver(int t)
{
processChange(t,pps_status.payload.sts.tx2_version);
}
void UnitSimulator::sbPPSTX3ver(int t)
{
processChange(t,pps_status.payload.sts.tx3_version);
}
void UnitSimulator::sbPPSRXtemp(int t)
{
processChange(t,pps_status.payload.sts.rx_temp);
}
void UnitSimulator::sbPPSTX1temp(int t)
{
processChange(t,pps_status.payload.sts.tx1_temp);
}
void UnitSimulator::sbPPSTX2temp(int t)
{
processChange(t,pps_status.payload.sts.tx2_temp);
}
void UnitSimulator::sbPPSTX3temp(int t)
{
processChange(t,pps_status.payload.sts.tx3_temp);
}
void UnitSimulator::sbPPSInletTemp(int t)
{
processChange(t,pps_status.payload.sts.inlet_temp);
}
void UnitSimulator::sbPPSOutletTemp(int t)
{
processChange(t,pps_status.payload.sts.outlet_temp);
}
void UnitSimulator::sbPPSCurr(double t)
{
processChangeLsb(t, pps_status.payload.sts.curr, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSTX1current(double t)
{
processChangeLsb(t, pps_status.payload.sts.tx1_curr, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSTX2current(double t)
{
processChangeLsb(t, pps_status.payload.sts.tx2_curr, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSTX3current(double t)
{
processChangeLsb(t, pps_status.payload.sts.tx3_curr, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSTX1currentMAX_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.tx1_curr_max, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSTX2currentMAX_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.tx2_curr_max, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSTX3currentMAX_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.tx3_curr_max, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSTX1currentAVG_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.tx1_curr_avg, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSTX2currentAVG_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.tx2_curr_avg, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSTX3currentAVG_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.tx3_curr_avg, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSRXPhaseRmin_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.rx_phaseR_min, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSRXPhaseSmin_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.rx_phaseS_min, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSRXPhaseTmin_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.rx_phaseT_min, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSRXPhaseRmax_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.rx_phaseR_max, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSRXPhaseSmax_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.rx_phaseS_max, PPS_CURR_LSB);
}
void UnitSimulator::sbPPSRXPhaseTmax_2(double t)
{
processChangeLsb(t, pps_status.payload.sts.rx_phaseT_max, PPS_CURR_LSB);
}