Développement Modbus CC (suite)
- Implémentation des stats de ZT1 et ZT2 (compo et type de train) provenant de Modbus CC. - Implémentation de l'inhibition ZT1 et ZT2 par la CC via Modbus. - Dégradation des données Modbus lors de la perte du Watchdog SACL.
This commit is contained in:
@@ -228,7 +228,7 @@ unsigned int CZT1StatsZone::Reset()
|
||||
mS2CountText->setPlainText("Compte S2: 0");
|
||||
mFNCountText->setPlainText("Compte FN: 0");
|
||||
mActualRankText->setPlainText("Rang: 0");
|
||||
mTrainTypeText->setPlainText("Train Détecté: Aucun");
|
||||
mTrainTypeText->setPlainText("Type de train: Inconnu");
|
||||
if(mTrainCompositionText != 0)
|
||||
{
|
||||
mTrainCompositionText->setPlainText("Composition : Inconnue");
|
||||
@@ -244,10 +244,7 @@ unsigned int CZT1StatsZone::SetTrainParameters(int TrainType, QList<qint16> Trai
|
||||
if(mTrainType != (unsigned)TrainType)
|
||||
{
|
||||
mTrainType = TrainType;
|
||||
// temp.clear();
|
||||
// temp = "Train détecté: ";
|
||||
// temp += CZTData::GetTrainTypeString(mTrainType);
|
||||
mTrainTypeText->setPlainText(QString("Train détecté : %1").arg(CZTData::GetTrainTypeString(mTrainType)));
|
||||
mTrainTypeText->setPlainText(QString("Type de train : %1").arg(CZTData::GetTrainTypeString(mTrainType)));
|
||||
}
|
||||
|
||||
if(TrainComposition.size() != 3)
|
||||
@@ -264,7 +261,6 @@ unsigned int CZT1StatsZone::SetTrainParameters(int TrainType, QList<qint16> Trai
|
||||
}
|
||||
else
|
||||
{
|
||||
int toto = TrainComposition[0];
|
||||
mTrainCompositionText->setPlainText(QString("Composition : %1-%2-%3").arg((int)TrainComposition[0],3,10,QChar('0')).arg(TrainComposition[1],3,10,QChar('0')).arg(TrainComposition[2],3,10,QChar('0')));
|
||||
}
|
||||
|
||||
|
||||
@@ -35,33 +35,57 @@
|
||||
CZT2StatsZone::CZT2StatsZone(QGraphicsItem *Parent)
|
||||
{
|
||||
setParentItem(Parent);
|
||||
mTrainCompoText = mTrainTypeText = 0;
|
||||
mTrainType = TRAIN_TYPE_UNKNOWN;
|
||||
}
|
||||
|
||||
QFont font;
|
||||
//font.setPixelSize(15);
|
||||
font.setPointSize(15);
|
||||
unsigned int CZT2StatsZone::Init(bool ModbusEnabled)
|
||||
{
|
||||
mModbusEnabled = ModbusEnabled;
|
||||
|
||||
mBogieCountText = new QGraphicsTextItem(this);
|
||||
mBogieCountText->setPos(0,12);
|
||||
// mBogieCountText->setPlainText("Compte Bogie: 0");
|
||||
mBogieCountText->setFont(font);
|
||||
|
||||
mS1CountText = new QGraphicsTextItem(this);
|
||||
mS1CountText->setPos(0,34);
|
||||
// mS1CountText->setPlainText("Compte S1: 0");
|
||||
mS1CountText->setFont(font);
|
||||
QFont font;
|
||||
font.setPointSize(15);
|
||||
int TextPos = 22;
|
||||
|
||||
mActualRankText = new QGraphicsTextItem(this);
|
||||
mActualRankText->setPos(0,56);
|
||||
// mActualRankText->setPlainText("Rang: 0");
|
||||
mActualRankText->setFont(font);
|
||||
mBogieCountText = new QGraphicsTextItem(this);
|
||||
mBogieCountText->setPos(0,TextPos);
|
||||
mBogieCountText->setFont(font);
|
||||
|
||||
mLastActivationDateTime = new QGraphicsTextItem(this);
|
||||
mLastActivationDateTime->setPos(0,78);
|
||||
mLastActivationDateTime->setFont(font);
|
||||
mLastActivationDateTime->setPlainText("Dernier passage : ");
|
||||
TextPos += 22;
|
||||
mS1CountText = new QGraphicsTextItem(this);
|
||||
mS1CountText->setPos(0,TextPos);
|
||||
mS1CountText->setFont(font);
|
||||
|
||||
Reset();
|
||||
TextPos += 22;
|
||||
mActualRankText = new QGraphicsTextItem(this);
|
||||
mActualRankText->setPos(0,TextPos);
|
||||
mActualRankText->setFont(font);
|
||||
|
||||
if(ModbusEnabled)
|
||||
{
|
||||
TextPos += 22;
|
||||
mTrainCompoText = new QGraphicsTextItem(this);
|
||||
mTrainCompoText->setPos(0,TextPos);
|
||||
mTrainCompoText->setFont(font);
|
||||
|
||||
TextPos += 22;
|
||||
mTrainTypeText = new QGraphicsTextItem(this);
|
||||
mTrainTypeText->setPos(0,TextPos);
|
||||
mTrainTypeText->setFont(font);
|
||||
}
|
||||
|
||||
TextPos += 22;
|
||||
mLastActivationDateTime = new QGraphicsTextItem(this);
|
||||
mLastActivationDateTime->setPos(0,TextPos);
|
||||
mLastActivationDateTime->setFont(font);
|
||||
mLastActivationDateTime->setPlainText("Dernier passage : ");
|
||||
|
||||
|
||||
|
||||
Reset();
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
unsigned int CZT2StatsZone::SetLastActivationDateTime()
|
||||
@@ -113,7 +137,43 @@ unsigned int CZT2StatsZone::Reset()
|
||||
mBogieCountText->setPlainText("Compte Bogie: 0");
|
||||
mS1CountText->setPlainText("Compte S1: 0");
|
||||
mActualRankText->setPlainText("Rang: 0");
|
||||
if(mTrainTypeText != 0)
|
||||
{
|
||||
mTrainTypeText->setPlainText("Type de train: Inconnu");
|
||||
}
|
||||
if(mTrainCompoText != 0)
|
||||
{
|
||||
mTrainCompoText->setPlainText("Composition du train: Inconnue");
|
||||
}
|
||||
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
unsigned int CZT2StatsZone::SetTrainParameters(int TrainType, QList<qint16> TrainComposition)
|
||||
{
|
||||
if(mTrainType != (unsigned)TrainType)
|
||||
{
|
||||
mTrainType = TrainType;
|
||||
mTrainTypeText->setPlainText(QString("Type de train : %1").arg(CZTData::GetTrainTypeString(mTrainType)));
|
||||
}
|
||||
|
||||
if(TrainComposition.size() != 3)
|
||||
{
|
||||
//Invalid composition
|
||||
mTrainCompoText->setPlainText("Composition: Inconnue");
|
||||
}
|
||||
else if((TrainComposition[0] == 0) ||
|
||||
(TrainComposition[1] == 0) ||
|
||||
(TrainComposition[2] == 0))
|
||||
{
|
||||
//Composition invalide...
|
||||
mTrainCompoText->setPlainText("Composition: Inconnue");
|
||||
}
|
||||
else
|
||||
{
|
||||
mTrainCompoText->setPlainText(QString("Composition : %1-%2-%3").arg((int)TrainComposition[0],3,10,QChar('0')).arg(TrainComposition[1],3,10,QChar('0')).arg(TrainComposition[2],3,10,QChar('0')));
|
||||
}
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
@@ -39,15 +39,18 @@ public:
|
||||
CZT2StatsZone(QGraphicsItem *Parent);
|
||||
|
||||
// unsigned int UpdateStats(unsigned int BogieCount, unsigned int S1Count, unsigned int S2Count, unsigned int FNCount, unsigned int Rank, unsigned int Bogie, unsigned int TrainType, float TrainSpeed);
|
||||
unsigned int Init(bool ModbusEnabled);
|
||||
unsigned int UpdateStats(CZT2ThreadData *DataPtr);
|
||||
unsigned int Reset();
|
||||
unsigned int SetLastActivationDateTime();
|
||||
unsigned int SetTrainParameters(int TrainType, QList<qint16> TrainComposition);
|
||||
|
||||
private:
|
||||
unsigned int mBogieCount,mS1Count,mActualRank;
|
||||
unsigned int mBogieCount,mS1Count,mActualRank, mTrainType;
|
||||
int mPIValue, mPEValue;
|
||||
bool mModbusEnabled;
|
||||
|
||||
QGraphicsTextItem *mBogieCountText, *mS1CountText,*mActualRankText, *mLastActivationDateTime;
|
||||
QGraphicsTextItem *mBogieCountText, *mS1CountText,*mActualRankText, *mLastActivationDateTime, *mTrainCompoText, *mTrainTypeText;
|
||||
};
|
||||
|
||||
#endif // ZT2STATSZONE_H
|
||||
|
||||
@@ -358,6 +358,13 @@ unsigned int CZTPage::SetZT2Data(CZT2ThreadData *Data)
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
unsigned int CZTPage::SetZT2TrainData(int TrainType, QList<qint16> TrainComposition)
|
||||
{
|
||||
//This is a low frequency stats update (only once for every train), so no timer filtering is necessary.
|
||||
mZT2Stats->SetTrainParameters(TrainType,TrainComposition);
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
unsigned int CZTPage::SetZT1ActivationState(bool ZT1Activated)
|
||||
{
|
||||
if(ZT1Activated)
|
||||
|
||||
@@ -71,6 +71,7 @@ public:
|
||||
unsigned int SetZT1Data(CZT1ThreadData *Data, bool ForceDisplay = false);
|
||||
unsigned int SetZT1TrainData(int TrainType, QList<qint16> TrainComposition);
|
||||
unsigned int SetZT2Data(CZT2ThreadData *Data);
|
||||
unsigned int SetZT2TrainData(int TrainType, QList<qint16> TrainComposition);
|
||||
unsigned int SetZT1ActivationState(bool ZT1Activated);
|
||||
unsigned int SetZT2ActivationSTate(bool ZT2Activated);
|
||||
unsigned int ResetZT1Stats();
|
||||
|
||||
Reference in New Issue
Block a user