ZT/sources/Stations/Montmorency1012.cpp

162 lines
7.8 KiB
C++

/*******************************************************************************
* *
* Société de Transports de Montréal. *
* 2012 *
* *
* Projet Zones Tests *
* *
* *
* *
*******************************************************************************/
/*
Description:
Classe instantiable dérivée de la classe de base CStation. Les paramètres
physiques de la station sont définis et initialisés ici. Ils sont ensuite
accédés de manière générique à travers la classe CStation.
Les paramètres dépend du câblage de l'armoire ZT et de la configuration
particulière des CDVs de la station.
*/
/* ************************************************************************** */
/* Revision:
### 20121220 JFM
Verision d'origine.
### YYYYMMDD Description du besoin ou du bug
Description du changement.
*/
/* ************************************************************************** */
#include "Montmorency1012.h"
#include <QtGlobal>
#include "SwitchCDV.h"
CMontmorency1012Station::CMontmorency1012Station()
{
//All the inherited variables from base class must be initialized here
//according to the physical implementation in the station.
mNbExtInputModules430 = MONTMORENCY1012_NB_EXTERNAL_INPUT_430_MODULES;
mNbExtOutputModules440 = MONTMORENCY1012_NB_EXTERNAL_OUTPUT_440_MODULES;
mNbExtMixedModules470 = MONTMORENCY1012_NB_EXTERNAL_MIXED_470_MODULES;
mStationPhysicalKey = MONTMORENCY1012_STATION_KEY;
//Initialize mask structures
//
mStationInputMasks.InputZT1S1Mask = MONTMORENCY1012_ZT1_S1_MASK;
mStationInputMasks.InputZT1S2Mask = MONTMORENCY1012_ZT1_S2_MASK;
mStationInputMasks.InputZT1PIMask = MONTMORENCY1012_ZT1_PI_MASK;
mStationInputMasks.InputZT1PEMask = MONTMORENCY1012_ZT1_PE_MASK;
mStationInputMasks.InputZT1FNMask = MONTMORENCY1012_ZT1_FN_MASK;
mStationInputMasks.InputZT2S1Mask = MONTMORENCY1012_ZT2_S1_MASK;
mStationInputMasks.InputZT2PIMask = MONTMORENCY1012_ZT2_PI_MASK;
mStationInputMasks.InputZT2PEMask = MONTMORENCY1012_ZT2_PE_MASK;
//External (ethernet) input module masks
mStationInputMasks.InputZT1ITIMask = MONTMORENCY1012_IN_ZT1_ITI_MASK;
// mStationInputMasks.InputZT1ITIMask = MONTMORENCY1012_IN_ZT1_10_22_ITI_MASK;
mStationInputMasks.InputZT2ITIMask = MONTMORENCY1012_IN_ZT2_ITI_MASK;
mStationInputMasks.InputZT1ANMask = MONTMORENCY1012_IN_ZT1_AN_MASK;
mStationInputMasks.InputZT2ANMask = MONTMORENCY1012_IN_ZT2_AN_MASK;
mStationInputMasks.InputZT1ARFMask = MONTMORENCY1012_IN_ZT1_ARF_MASK;
mStationInputMasks.InputZT2ARFMask = MONTMORENCY1012_IN_ZT2_ARF_MASK;
mStationInputMasks.InputStationIDMask = MONTMORENCY1012_IN_STATION_ID_MASK;
//Logic input masks
mStationInputMasks.InputCDVZT1ApproachMask = MONTMORENCY1012_IN_CDV_10B_MASK;
mStationInputMasks.InputCDVZT1Mask = MONTMORENCY1012_IN_CDV_10B_MASK;
mStationInputMasks.InputCDVZT2ApproachMask = MONTMORENCY1012_IN_CDV_12BC_MASK;
mStationInputMasks.InputCDVZT2Mask = MONTMORENCY1012_IN_CDV_13A_MASK;
//Output masks
mStationOutputMasks.OutputVP1Mask = MONTMORENCY1012_OUT_VP1_MASK;
mStationOutputMasks.OutputVP2Mask = MONTMORENCY1012_OUT_VP2_MASK;
mStationOutputMasks.OutputVP3Mask = MONTMORENCY1012_OUT_VP3_MASK;
mStationOutputMasks.OutputVP4Mask = MONTMORENCY1012_OUT_VP4_MASK;
mStationOutputMasks.OutputVP5Mask = MONTMORENCY1012_OUT_VP5_MASK;
mStationOutputMasks.OutputVP6Mask = MONTMORENCY1012_OUT_VP6_MASK;
mStationOutputMasks.OutputVF1Mask = MONTMORENCY1012_OUT_VF1_MASK;
mStationOutputMasks.OutputVF2Mask = MONTMORENCY1012_OUT_VF2_MASK;
mStationOutputMasks.OutputVF3Mask = MONTMORENCY1012_OUT_VF3_MASK;
mStationOutputMasks.OutputVF4Mask = MONTMORENCY1012_OUT_VF4_MASK;
mStationOutputMasks.OutputVF5Mask = MONTMORENCY1012_OUT_VF5_MASK;
mStationOutputMasks.OutputWP1Mask = MONTMORENCY1012_OUT_WP1_MASK;
mStationOutputMasks.OutputWP2Mask = MONTMORENCY1012_OUT_WP2_MASK;
mStationOutputMasks.OutputWP3Mask = MONTMORENCY1012_OUT_WP3_MASK;
mStationOutputMasks.OutputWP4Mask = MONTMORENCY1012_OUT_WP4_MASK;
mStationOutputMasks.OutputWP5Mask = MONTMORENCY1012_OUT_WP5_MASK;
mStationOutputMasks.OutputWP6Mask = MONTMORENCY1012_OUT_WP6_MASK;
mStationOutputMasks.OutputDPEMask = MONTMORENCY1012_OUT_DPE_MASK;
mStationOutputMasks.OutputDPIMask = MONTMORENCY1012_OUT_DPI_MASK;
mStationOutputMasks.OutputV00Mask = MONTMORENCY1012_OUT_V00_MASK;
mStationOutputMasks.OutputDPGMask = MONTMORENCY1012_OUT_DPG_MASK;
mStationOutputMasks.OutputDFRMask = MONTMORENCY1012_OUT_DFR_MASK;
mStationOutputMasks.OutputRFMask = MONTMORENCY1012_OUT_RF_MASK;
mStationOutputMasks.OutputRF2Mask = MONTMORENCY1012_OUT_RF2_MASK;
mStationOutputMasks.OutputVELMask = MONTMORENCY1012_OUT_VEL_MASK;
mStationOutputMasks.OutputVEL2Mask = MONTMORENCY1012_OUT_VEL2_MASK;
mStationOutputMasks.OutputDPI2Mask = MONTMORENCY1012_OUT_DPI2_MASK;
mStationOutputMasks.OutputDPE2Mask = MONTMORENCY1012_OUT_DPE2_MASK;
mStationOutputMasks.OutputV002Mask = MONTMORENCY1012_OUT_V002_MASK;
mStationOutputMasks.OutputPEQ1Mask = MONTMORENCY1012_OUT_PEQ1_MASK;
mStationOutputMasks.OutputPEQ2Mask = MONTMORENCY1012_OUT_PEQ2_MASK;
mStationOutputMasks.OutputWatchdogMask = MONTMORENCY1012_OUT_WATCHDOG_MASK;
mAnalogAcqChannels.SDFAcquisitionChannel = MONTMORENCY1012_SDF_ACQUISITION_CHANNEL;
mStationHasZT2 = true;
mTextualStationName = "Montmorency (10/12)";
mTextualShortName = "MMO";
}
unsigned int CMontmorency1012Station::BuildStationCDVList()
{
CCDV *NewCDV;
mCDVList.empty();
NewCDV = new CCDV(MONTMORENCY1012_IN_ZT2_ITI_MASK,MONTMORENCY1012_IN_CDV_14B_MASK,CDV_NORMAL_TYPE,"14B",1,0);
mCDVList.append(NewCDV);
NewCDV = new CCDV(MONTMORENCY1012_IN_ZT2_ITI_MASK,MONTMORENCY1012_IN_CDV_14A_MASK,CDV_NORMAL_TYPE,"14A",1,1);
mCDVList.append(NewCDV);
NewCDV = new CCDV(MONTMORENCY1012_IN_ZT2_ITI_MASK,MONTMORENCY1012_IN_CDV_13B_MASK,CDV_NORMAL_TYPE,"13B",1,2);
mZT2AlarmAutoAcquireCDV = NewCDV;
mCDVList.append(NewCDV);
NewCDV = new CCDV(MONTMORENCY1012_IN_ZT2_ITI_MASK,MONTMORENCY1012_IN_CDV_13A_MASK,CDV_NORMAL_TYPE,"13A ZT2",1,3);
mZT2CDV = NewCDV;
mZT2ApproachCDV = NewCDV;
mCDVList.append(NewCDV);
NewCDV = new CCDV(MONTMORENCY1012_IN_ZT1_ITI_MASK,MONTMORENCY1012_IN_CDV_12BC_MASK,CDV_NORMAL_TYPE,"12BC",1,4);
mCDVList.append(NewCDV);
NewCDV->SetCDVDeck(true);
NewCDV = new CCDV(MONTMORENCY1012_IN_ZT1_ITI_MASK,MONTMORENCY1012_IN_CDV_12A_MASK,CDV_NORMAL_TYPE,"12A",1,5);
mZT1AlarmAutoAcquireCDV = NewCDV;
mCDVList.append(NewCDV);
NewCDV->SetCDVDeck(true);
NewCDV = new CCDV(MONTMORENCY1012_IN_ZT1_ITI_MASK,MONTMORENCY1012_IN_CDV_11B_MASK,CDV_NORMAL_TYPE,"11B",1,6);
mCDVList.append(NewCDV);
NewCDV = new CCDV(MONTMORENCY1012_IN_ZT1_ITI_MASK,MONTMORENCY1012_IN_CDV_11A_MASK,CDV_NORMAL_TYPE,"11A",1,7);
mCDVList.append(NewCDV);
mZT1SubsequentCDV = NewCDV;
NewCDV = new CCDV(MONTMORENCY1012_IN_ZT1_ITI_MASK,MONTMORENCY1012_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B ZT1",1,8);
mZT1CDV = NewCDV;
mZT1ApproachCDV = NewCDV;
mCDVList.append(NewCDV);
return RET_OK;
}
//bool CMontmorency1012Station::IsZT1ApproachCDVOccupied()
//{
// //Puisqu'il n'y a pas de CDV d'approche ZT1 à Montmorency, on doit simuler un train sur ce dernier.
// return true;
//}