dev modbus
This commit is contained in:
parent
8a5f0fc92e
commit
69ca721ef7
@ -242,8 +242,13 @@ qint16 CModbusCCMgr::GetZT1TrainType()
|
||||
{
|
||||
Type = TRAIN_TYPE_MPM10;
|
||||
}
|
||||
else if(Reg == 0)
|
||||
{
|
||||
Type = TRAIN_TYPE_MAINTENANCE_VEHICLE;
|
||||
}
|
||||
else
|
||||
{
|
||||
CEngLog::instance()->AddLogString(QString("MODBUS: Réception d'un type de train ZT1 invalide du SACL [%1]").arg(Reg));
|
||||
Type = TRAIN_TYPE_UNKNOWN;
|
||||
}
|
||||
}
|
||||
@ -254,9 +259,30 @@ qint16 CModbusCCMgr::GetZT2TrainType()
|
||||
{
|
||||
bool OK = false;
|
||||
qint16 Reg = mModbusRepo->GetSingleReg(MODBUS_CC_ZT2_TRAIN_TYPE_REG_ADD,&OK);
|
||||
int Type = TRAIN_TYPE_UNKNOWN;
|
||||
if(OK)
|
||||
{
|
||||
return Reg;
|
||||
if(Reg == 63)
|
||||
{
|
||||
Type = TRAIN_TYPE_MR63;
|
||||
}
|
||||
else if(Reg == 73)
|
||||
{
|
||||
Type = TRAIN_TYPE_MR73;
|
||||
}
|
||||
else if(Reg == 10)
|
||||
{
|
||||
Type = TRAIN_TYPE_MPM10;
|
||||
}
|
||||
else if(Reg == 0)
|
||||
{
|
||||
Type = TRAIN_TYPE_MAINTENANCE_VEHICLE;
|
||||
}
|
||||
else
|
||||
{
|
||||
CEngLog::instance()->AddLogString(QString("MODBUS: Réception d'un type de train ZT2 invalide du SACL [%1]").arg(Reg));
|
||||
Type = TRAIN_TYPE_UNKNOWN;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
return Type;
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@
|
||||
|
||||
#include "ZTData.h"
|
||||
|
||||
const char * CZTData::TrainTypeString[] = {"Inconnu","MR63/73", "MPM10", "MR63", "MR73"};
|
||||
const char * CZTData::TrainTypeString[] = {"Inconnu","MR63/73", "MPM10", "MR63", "MR73", "Véhicule Travaux"};
|
||||
CZTData::CZTData()
|
||||
{
|
||||
}
|
||||
|
||||
@ -115,6 +115,7 @@ enum eTrainTypeID
|
||||
TRAIN_TYPE_MPM10,
|
||||
TRAIN_TYPE_MR63,
|
||||
TRAIN_TYPE_MR73,
|
||||
TRAIN_TYPE_MAINTENANCE_VEHICLE,
|
||||
|
||||
|
||||
TRAIN_TYPE_MAX_ID
|
||||
|
||||
@ -303,17 +303,16 @@ unsigned int CZTStateMachine::ZT1StateMachine(unsigned int Event, unsigned int S
|
||||
mZT1Log.mZT1Flags.mPGCalibrationON = (mIsPGCalibON == true);
|
||||
mZT1State = ZT1_TRAIN_ON_APPROACH_CDV_STATE;
|
||||
}
|
||||
|
||||
}
|
||||
else if(mZTStationPtr->IsZT1ApproachCDVOccupied() && !mZTStationPtr->IsZT1CDVOccupied()) //Normal situation
|
||||
{
|
||||
DestroyZT1Log();
|
||||
DestroyZT1Log();
|
||||
mEventsRefTimer.start();
|
||||
mNbPassages++;
|
||||
mNbPassages++;
|
||||
InsertZT1LogItem();
|
||||
mZT1Log.mZT1Flags.mPGCalibrationON = (mIsPGCalibON == true);
|
||||
mZT1State = ZT1_TRAIN_ON_APPROACH_CDV_STATE;
|
||||
}
|
||||
mZT1Log.mZT1Flags.mPGCalibrationON = (mIsPGCalibON == true);
|
||||
mZT1State = ZT1_TRAIN_ON_APPROACH_CDV_STATE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case ZT1_WAIT_FOR_SUBSEQUENT_LIBERATION: //Subsequent CDV should never be occupied before ZT CDV.
|
||||
@ -340,38 +339,53 @@ unsigned int CZTStateMachine::ZT1StateMachine(unsigned int Event, unsigned int S
|
||||
mZT1State = ZT1_WAIT_FOR_TRAIN_STATE;
|
||||
}
|
||||
else if(mZTStationPtr->IsZT1CDVOccupied())
|
||||
{
|
||||
mZT1ActiveStatus = SB_ZT_ACTIVE_STATUS;
|
||||
mZTPagePTr->SetZTStatus(mNbPassages,mNbTriggers,mZT1ActiveStatus,mZT2ActiveStatus);
|
||||
mZTPagePTr->SetZT1ActivationState(true);
|
||||
|
||||
mZTPagePTr->ResetZT1Stats();
|
||||
{
|
||||
bool abort = false;
|
||||
if(mModbusCCMgr != 0)
|
||||
{
|
||||
//update train info received from the CC Modbus interface
|
||||
mTrainTypeDetected = (unsigned)mModbusCCMgr->GetZT1TrainType();
|
||||
mZT1TrainComposition = mModbusCCMgr->GetZT1TrainComposition();
|
||||
mZTPagePTr->SetZT1TrainData(mTrainTypeDetected,mZT1TrainComposition);
|
||||
if(mModbusCCMgr->GetZT1InhibitionFlag() == true) //Check if the CC wants us to analyze the passage
|
||||
{
|
||||
abort = true;
|
||||
CZTLog::instance()->AddLogString("Passage de train inhibé par le SACL");
|
||||
mZT1State = ZT1_WAIT_FOR_SUBSEQUENT_LIBERATION; //Wait for the train to leave the ZT
|
||||
}
|
||||
}
|
||||
|
||||
InsertZT1LogItem();
|
||||
if(abort == false)
|
||||
{
|
||||
mZT1ActiveStatus = SB_ZT_ACTIVE_STATUS;
|
||||
mZTPagePTr->SetZTStatus(mNbPassages,mNbTriggers,mZT1ActiveStatus,mZT2ActiveStatus);
|
||||
mZTPagePTr->SetZT1ActivationState(true);
|
||||
|
||||
mZT1WorkerThread->UpdateDetectionConfig(mZTDetectionConfig);
|
||||
mTKGenerator->UpdateDetectionConfig(mZTDetectionConfig);
|
||||
mZT1SMThread->start(QThread::NormalPriority);
|
||||
mZTPagePTr->ResetZT1Stats();
|
||||
if(mModbusCCMgr != 0)
|
||||
{
|
||||
//update train info received from the CC Modbus interface
|
||||
mTrainTypeDetected = (unsigned)mModbusCCMgr->GetZT1TrainType();
|
||||
mZT1TrainComposition = mModbusCCMgr->GetZT1TrainComposition();
|
||||
mZTPagePTr->SetZT1TrainData(mTrainTypeDetected,mZT1TrainComposition);
|
||||
}
|
||||
|
||||
mZT1PassageTimeLimitTimer.start();
|
||||
//CZTLog::instance()->AddLogString("ZT1 activée",true);
|
||||
InsertZT1LogItem();
|
||||
|
||||
mZT1WorkerThread->UpdateDetectionConfig(mZTDetectionConfig);
|
||||
mTKGenerator->UpdateDetectionConfig(mZTDetectionConfig);
|
||||
mZT1SMThread->start(QThread::NormalPriority);
|
||||
|
||||
mZT1PassageTimeLimitTimer.start();
|
||||
//CZTLog::instance()->AddLogString("ZT1 activée",true);
|
||||
|
||||
|
||||
CZTLog::instance()->ClearBufferString();
|
||||
CZTLog::instance()->AddBufferString("ZT1 activée",true);
|
||||
CZTLog::instance()->ClearBufferString();
|
||||
CZTLog::instance()->AddBufferString("ZT1 activée",true);
|
||||
|
||||
if(mIsPGCalibON)
|
||||
{
|
||||
emit PGCalibrationStatus(mCalibrationPassagesCount+1,mPGNbTotalPassages);
|
||||
}
|
||||
mZT1State = ZT1_ANALYZE_TRAIN_STATE;
|
||||
}
|
||||
|
||||
if(mIsPGCalibON)
|
||||
{
|
||||
emit PGCalibrationStatus(mCalibrationPassagesCount+1,mPGNbTotalPassages);
|
||||
}
|
||||
mZT1State = ZT1_ANALYZE_TRAIN_STATE;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user