Premier commit suite au crash du repo le 10 juillet 2017
This commit is contained in:
@@ -0,0 +1,167 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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:
|
||||
### 20121217 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "Angrignon.h"
|
||||
#include <QtGlobal>
|
||||
#ifndef WINDOWS_OS
|
||||
#include "ExternalIOMgr.h"
|
||||
#include "Seaio430driver.h"
|
||||
#endif
|
||||
|
||||
//rydy
|
||||
CAngrignonStation::CAngrignonStation()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = ANGRIGNON_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = ANGRIGNON_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = ANGRIGNON_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = ANGRIGNON_STATION_KEY;
|
||||
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = ANGRIGNON_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = ANGRIGNON_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = ANGRIGNON_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = ANGRIGNON_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = ANGRIGNON_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = ANGRIGNON_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = ANGRIGNON_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = ANGRIGNON_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = ANGRIGNON_IN_ZT1_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = ANGRIGNON_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = ANGRIGNON_IN_ZT1_AN_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = ANGRIGNON_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = ANGRIGNON_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = ANGRIGNON_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = ANGRIGNON_IN_STATION_ID_MASK;
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = ANGRIGNON_IN_CDV_11A_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = ANGRIGNON_IN_CDV_11B_MASK;
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = ANGRIGNON_IN_CDV_12B_MASK;
|
||||
mStationInputMasks.InputCDVZT2Mask = ANGRIGNON_IN_CDV_13A_MASK;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = ANGRIGNON_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = ANGRIGNON_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = ANGRIGNON_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = ANGRIGNON_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = ANGRIGNON_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = ANGRIGNON_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = ANGRIGNON_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = ANGRIGNON_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = ANGRIGNON_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = ANGRIGNON_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = ANGRIGNON_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = ANGRIGNON_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = ANGRIGNON_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = ANGRIGNON_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = ANGRIGNON_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = ANGRIGNON_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = ANGRIGNON_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = ANGRIGNON_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = ANGRIGNON_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = ANGRIGNON_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = ANGRIGNON_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = ANGRIGNON_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = ANGRIGNON_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = ANGRIGNON_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = ANGRIGNON_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = ANGRIGNON_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = ANGRIGNON_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = ANGRIGNON_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = ANGRIGNON_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = ANGRIGNON_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = ANGRIGNON_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = ANGRIGNON_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = ANGRIGNON_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
mStationHasZT2 = true;
|
||||
mTextualStationName = "Angrignon";
|
||||
mTextualShortName = "ANG";
|
||||
}
|
||||
|
||||
unsigned int CAngrignonStation::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
NewCDV = new CCDV(ANGRIGNON_IN_ZT2_ITI_MASK,ANGRIGNON_IN_CDV_14B_MASK,CDV_NORMAL_TYPE,"14B",1,0);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(ANGRIGNON_IN_ZT2_ITI_MASK,ANGRIGNON_IN_CDV_14A_MASK,CDV_NORMAL_TYPE,"14A",1,1);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(ANGRIGNON_IN_ZT2_ITI_MASK,ANGRIGNON_IN_CDV_13BC_MASK,CDV_NORMAL_TYPE,"13BC",1,2);
|
||||
mZT2AlarmAutoAcquireCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(ANGRIGNON_IN_ZT2_ITI_MASK,ANGRIGNON_IN_CDV_13A_MASK,CDV_NORMAL_TYPE,"13A ZT2",1,3);
|
||||
mZT2CDV = NewCDV;
|
||||
mZT2ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(ANGRIGNON_IN_ZT1_ITI_MASK,ANGRIGNON_IN_CDV_12B_MASK,CDV_NORMAL_TYPE,"12B",1,4);
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
|
||||
NewCDV = new CCDV(ANGRIGNON_IN_ZT1_ITI_MASK,ANGRIGNON_IN_CDV_12A_MASK,CDV_NORMAL_TYPE,"12A",1,5);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
mZT1SubsequentCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
|
||||
NewCDV = new CCDV(ANGRIGNON_IN_ZT1_ITI_MASK,ANGRIGNON_IN_CDV_11B_MASK,CDV_NORMAL_TYPE,"11B ZT1",1,6);
|
||||
mZT1CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(ANGRIGNON_IN_ZT1_ITI_MASK,ANGRIGNON_IN_CDV_11A_MASK,CDV_NORMAL_TYPE,"11A",1,7);
|
||||
mZT1ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(ANGRIGNON_IN_ZT1_ITI_MASK,ANGRIGNON_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B",1,8);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,119 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121217 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef Angrignon_H
|
||||
#define Angrignon_H
|
||||
#include "Station.h"
|
||||
|
||||
#define ANGRIGNON_STATION_KEY 0x0010000
|
||||
#define ANGRIGNON_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define ANGRIGNON_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define ANGRIGNON_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define ANGRIGNON_ZT1_S1_MASK 0x00000001
|
||||
#define ANGRIGNON_ZT1_S2_MASK 0x00000002
|
||||
#define ANGRIGNON_ZT1_PI_MASK 0x00000004
|
||||
#define ANGRIGNON_ZT1_PE_MASK 0x00000008
|
||||
#define ANGRIGNON_ZT1_FN_MASK 0x00000010
|
||||
#define ANGRIGNON_ZT2_S1_MASK 0x00000020
|
||||
#define ANGRIGNON_ZT2_PI_MASK 0x00000040
|
||||
#define ANGRIGNON_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for Angrignon
|
||||
#define ANGRIGNON_IN_CDV_12A_MASK 0x00000001
|
||||
#define ANGRIGNON_IN_CDV_12B_MASK 0x00000002
|
||||
#define ANGRIGNON_IN_CDV_11B_MASK 0x00000004
|
||||
#define ANGRIGNON_IN_CDV_11A_MASK 0x00000008
|
||||
#define ANGRIGNON_IN_CDV_10B_MASK 0x00000010
|
||||
#define ANGRIGNON_IN_CDV_13A_MASK 0x00000020
|
||||
#define ANGRIGNON_IN_CDV_14A_MASK 0x00000040
|
||||
#define ANGRIGNON_IN_CDV_13BC_MASK 0x00000080
|
||||
#define ANGRIGNON_IN_CDV_14B_MASK 0x00000100
|
||||
#define ANGRIGNON_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define ANGRIGNON_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define ANGRIGNON_IN_ZT1_AN_MASK 0x00000800
|
||||
#define ANGRIGNON_IN_ZT2_AN_MASK 0x00001000
|
||||
#define ANGRIGNON_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define ANGRIGNON_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define ANGRIGNON_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for Angrignon
|
||||
#define ANGRIGNON_OUT_VP1_MASK 0x00000001
|
||||
#define ANGRIGNON_OUT_VP2_MASK 0x00000002
|
||||
#define ANGRIGNON_OUT_VP3_MASK 0x00000004
|
||||
#define ANGRIGNON_OUT_VP4_MASK 0x00000008
|
||||
#define ANGRIGNON_OUT_VP5_MASK 0x00000010
|
||||
#define ANGRIGNON_OUT_VP6_MASK 0x00000020
|
||||
#define ANGRIGNON_OUT_VF1_MASK 0x00000040
|
||||
#define ANGRIGNON_OUT_VF2_MASK 0x00000080
|
||||
#define ANGRIGNON_OUT_VF3_MASK 0x00000100
|
||||
#define ANGRIGNON_OUT_VF4_MASK 0x00000200
|
||||
#define ANGRIGNON_OUT_VF5_MASK 0x00000400
|
||||
#define ANGRIGNON_OUT_WP1_MASK 0x00000800
|
||||
#define ANGRIGNON_OUT_WP2_MASK 0x00001000
|
||||
#define ANGRIGNON_OUT_WP3_MASK 0x00002000
|
||||
#define ANGRIGNON_OUT_WP4_MASK 0x00004000
|
||||
#define ANGRIGNON_OUT_WP5_MASK 0x00008000
|
||||
#define ANGRIGNON_OUT_WP6_MASK 0x00010000
|
||||
#define ANGRIGNON_OUT_DPE_MASK 0x00020000
|
||||
#define ANGRIGNON_OUT_DPI_MASK 0x00040000
|
||||
#define ANGRIGNON_OUT_V00_MASK 0x00080000
|
||||
#define ANGRIGNON_OUT_DPG_MASK 0x00100000
|
||||
#define ANGRIGNON_OUT_DFR_MASK 0x00200000
|
||||
#define ANGRIGNON_OUT_RF_MASK 0x00400000
|
||||
#define ANGRIGNON_OUT_RF2_MASK 0x00800000
|
||||
#define ANGRIGNON_OUT_VEL_MASK 0x01000000
|
||||
#define ANGRIGNON_OUT_VEL2_MASK 0x02000000
|
||||
#define ANGRIGNON_OUT_DPI2_MASK 0x04000000
|
||||
#define ANGRIGNON_OUT_DPE2_MASK 0x08000000
|
||||
#define ANGRIGNON_OUT_V002_MASK 0x10000000
|
||||
#define ANGRIGNON_OUT_PEQ1_MASK 0x20000000
|
||||
#define ANGRIGNON_OUT_PEQ2_MASK 0x40000000
|
||||
#define ANGRIGNON_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define ANGRIGNON_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
|
||||
class CAngrignonStation : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CAngrignonStation();
|
||||
|
||||
|
||||
private:
|
||||
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
|
||||
};
|
||||
|
||||
#endif // Angrignon_H
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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 "BerriUQAM.h"
|
||||
#include <QtGlobal>
|
||||
|
||||
CBerriUQAMStation::CBerriUQAMStation()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = BERRIUQAM_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = BERRIUQAM_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = BERRIUQAM_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = BERRIUQAM_STATION_KEY;
|
||||
|
||||
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = BERRIUQAM_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = BERRIUQAM_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = BERRIUQAM_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = BERRIUQAM_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = BERRIUQAM_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = BERRIUQAM_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = BERRIUQAM_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = BERRIUQAM_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = BERRIUQAM_IN_ZT1_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = BERRIUQAM_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = BERRIUQAM_IN_ZT1_AN_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = BERRIUQAM_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = BERRIUQAM_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = BERRIUQAM_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = BERRIUQAM_IN_STATION_ID_MASK;
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = BERRIUQAM_IN_CDV_10B_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = BERRIUQAM_IN_CDV_11_MASK;
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = BERRIUQAM_IN_CDV_12B_MASK;
|
||||
mStationInputMasks.InputCDVZT2Mask = BERRIUQAM_IN_CDV_13A_MASK;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = BERRIUQAM_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = BERRIUQAM_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = BERRIUQAM_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = BERRIUQAM_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = BERRIUQAM_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = BERRIUQAM_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = BERRIUQAM_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = BERRIUQAM_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = BERRIUQAM_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = BERRIUQAM_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = BERRIUQAM_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = BERRIUQAM_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = BERRIUQAM_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = BERRIUQAM_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = BERRIUQAM_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = BERRIUQAM_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = BERRIUQAM_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = BERRIUQAM_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = BERRIUQAM_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = BERRIUQAM_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = BERRIUQAM_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = BERRIUQAM_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = BERRIUQAM_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = BERRIUQAM_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = BERRIUQAM_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = BERRIUQAM_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = BERRIUQAM_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = BERRIUQAM_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = BERRIUQAM_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = BERRIUQAM_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = BERRIUQAM_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = BERRIUQAM_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = BERRIUQAM_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
|
||||
mStationHasZT2 = true;
|
||||
mTextualStationName = "Berri UQAM";
|
||||
mTextualShortName = "BUQ4";
|
||||
}
|
||||
|
||||
unsigned int CBerriUQAMStation::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
|
||||
NewCDV = new CCDV(BERRIUQAM_IN_ZT2_ITI_MASK,BERRIUQAM_IN_CDV_14B_MASK,CDV_NORMAL_TYPE,"14B",1,0);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(BERRIUQAM_IN_ZT2_ITI_MASK,BERRIUQAM_IN_CDV_14A_MASK,CDV_NORMAL_TYPE,"14A",1,1);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(BERRIUQAM_IN_ZT2_ITI_MASK,BERRIUQAM_IN_CDV_13B_MASK,CDV_NORMAL_TYPE,"13B",1,2);
|
||||
mZT2AlarmAutoAcquireCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(BERRIUQAM_IN_ZT2_ITI_MASK,BERRIUQAM_IN_CDV_13A_MASK,CDV_NORMAL_TYPE,"13A (ZT2)",1,3);
|
||||
mZT2CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(BERRIUQAM_IN_ZT1_ITI_MASK,BERRIUQAM_IN_CDV_12B_MASK,CDV_NORMAL_TYPE,"12B",1,4);
|
||||
mZT2ApproachCDV = NewCDV; //ZT2 Approach CDV must be the one before the ZT2 CDV because equipment is installed very close from CDV limit.
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
|
||||
NewCDV = new CCDV(BERRIUQAM_IN_ZT1_ITI_MASK,BERRIUQAM_IN_CDV_12A_MASK,CDV_NORMAL_TYPE,"12A",1,5);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
mZT1SubsequentCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(BERRIUQAM_IN_ZT1_ITI_MASK,BERRIUQAM_IN_CDV_11_MASK,CDV_NORMAL_TYPE,"11 (ZT1)",1,6);
|
||||
mZT1CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(BERRIUQAM_IN_ZT1_ITI_MASK,BERRIUQAM_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B",1,7);
|
||||
mZT1ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(BERRIUQAM_IN_ZT1_ITI_MASK,BERRIUQAM_IN_CDV_10A_MASK,CDV_NORMAL_TYPE,"10A",1,8);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef BERRIUQAM_H
|
||||
#define BERRIUQAM_H
|
||||
#include "Station.h"
|
||||
|
||||
#define BERRIUQAM_STATION_KEY 0x0028000
|
||||
#define BERRIUQAM_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define BERRIUQAM_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define BERRIUQAM_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define BERRIUQAM_ZT1_S1_MASK 0x00000001
|
||||
#define BERRIUQAM_ZT1_S2_MASK 0x00000002
|
||||
#define BERRIUQAM_ZT1_PI_MASK 0x00000004
|
||||
#define BERRIUQAM_ZT1_PE_MASK 0x00000008
|
||||
#define BERRIUQAM_ZT1_FN_MASK 0x00000010
|
||||
#define BERRIUQAM_ZT2_S1_MASK 0x00000020
|
||||
#define BERRIUQAM_ZT2_PI_MASK 0x00000040
|
||||
#define BERRIUQAM_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for Angrignon
|
||||
#define BERRIUQAM_IN_CDV_12A_MASK 0x00000001
|
||||
#define BERRIUQAM_IN_CDV_12B_MASK 0x00000002
|
||||
#define BERRIUQAM_IN_CDV_11_MASK 0x00000004
|
||||
#define BERRIUQAM_IN_CDV_10B_MASK 0x00000008
|
||||
#define BERRIUQAM_IN_CDV_10A_MASK 0x00000010
|
||||
#define BERRIUQAM_IN_CDV_13A_MASK 0x00000020
|
||||
#define BERRIUQAM_IN_CDV_14A_MASK 0x00000040
|
||||
#define BERRIUQAM_IN_CDV_13B_MASK 0x00000080
|
||||
#define BERRIUQAM_IN_CDV_14B_MASK 0x00000100
|
||||
#define BERRIUQAM_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define BERRIUQAM_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define BERRIUQAM_IN_ZT1_AN_MASK 0x00000800
|
||||
#define BERRIUQAM_IN_ZT2_AN_MASK 0x00001000
|
||||
#define BERRIUQAM_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define BERRIUQAM_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define BERRIUQAM_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for Angrignon
|
||||
#define BERRIUQAM_OUT_VP1_MASK 0x00000001
|
||||
#define BERRIUQAM_OUT_VP2_MASK 0x00000002
|
||||
#define BERRIUQAM_OUT_VP3_MASK 0x00000004
|
||||
#define BERRIUQAM_OUT_VP4_MASK 0x00000008
|
||||
#define BERRIUQAM_OUT_VP5_MASK 0x00000010
|
||||
#define BERRIUQAM_OUT_VP6_MASK 0x00000020
|
||||
#define BERRIUQAM_OUT_VF1_MASK 0x00000040
|
||||
#define BERRIUQAM_OUT_VF2_MASK 0x00000080
|
||||
#define BERRIUQAM_OUT_VF3_MASK 0x00000100
|
||||
#define BERRIUQAM_OUT_VF4_MASK 0x00000200
|
||||
#define BERRIUQAM_OUT_VF5_MASK 0x00000400
|
||||
#define BERRIUQAM_OUT_WP1_MASK 0x00000800
|
||||
#define BERRIUQAM_OUT_WP2_MASK 0x00001000
|
||||
#define BERRIUQAM_OUT_WP3_MASK 0x00002000
|
||||
#define BERRIUQAM_OUT_WP4_MASK 0x00004000
|
||||
#define BERRIUQAM_OUT_WP5_MASK 0x00008000
|
||||
#define BERRIUQAM_OUT_WP6_MASK 0x00010000
|
||||
#define BERRIUQAM_OUT_DPE_MASK 0x00020000
|
||||
#define BERRIUQAM_OUT_DPI_MASK 0x00040000
|
||||
#define BERRIUQAM_OUT_V00_MASK 0x00080000
|
||||
#define BERRIUQAM_OUT_DPG_MASK 0x00100000
|
||||
#define BERRIUQAM_OUT_DFR_MASK 0x00200000
|
||||
#define BERRIUQAM_OUT_RF_MASK 0x00400000
|
||||
#define BERRIUQAM_OUT_RF2_MASK 0x00800000
|
||||
#define BERRIUQAM_OUT_VEL_MASK 0x01000000
|
||||
#define BERRIUQAM_OUT_VEL2_MASK 0x02000000
|
||||
#define BERRIUQAM_OUT_DPI2_MASK 0x04000000
|
||||
#define BERRIUQAM_OUT_DPE2_MASK 0x08000000
|
||||
#define BERRIUQAM_OUT_V002_MASK 0x10000000
|
||||
#define BERRIUQAM_OUT_PEQ1_MASK 0x20000000
|
||||
#define BERRIUQAM_OUT_PEQ2_MASK 0x40000000
|
||||
#define BERRIUQAM_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define BERRIUQAM_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
class CBerriUQAMStation : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CBerriUQAMStation();
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
};
|
||||
|
||||
#endif // BERRIUQAM_H
|
||||
|
||||
@@ -0,0 +1,162 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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 "CoteVertu.h"
|
||||
#include <QtGlobal>
|
||||
|
||||
CCoteVertuStation::CCoteVertuStation()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = COTEVERTU_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = COTEVERTU_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = COTEVERTU_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = COTEVERTU_STATION_KEY;
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = COTEVERTU_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = COTEVERTU_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = COTEVERTU_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = COTEVERTU_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = COTEVERTU_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = COTEVERTU_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = COTEVERTU_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = COTEVERTU_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = COTEVERTU_IN_ZT1_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = COTEVERTU_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = COTEVERTU_IN_ZT1_AN_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = COTEVERTU_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = COTEVERTU_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = COTEVERTU_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = COTEVERTU_IN_STATION_ID_MASK;
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = COTEVERTU_IN_CDV_11A_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = COTEVERTU_IN_CDV_11B_MASK;
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = COTEVERTU_IN_CDV_12B_MASK;
|
||||
mStationInputMasks.InputCDVZT2Mask = COTEVERTU_IN_CDV_13A_MASK;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = COTEVERTU_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = COTEVERTU_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = COTEVERTU_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = COTEVERTU_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = COTEVERTU_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = COTEVERTU_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = COTEVERTU_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = COTEVERTU_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = COTEVERTU_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = COTEVERTU_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = COTEVERTU_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = COTEVERTU_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = COTEVERTU_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = COTEVERTU_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = COTEVERTU_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = COTEVERTU_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = COTEVERTU_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = COTEVERTU_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = COTEVERTU_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = COTEVERTU_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = COTEVERTU_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = COTEVERTU_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = COTEVERTU_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = COTEVERTU_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = COTEVERTU_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = COTEVERTU_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = COTEVERTU_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = COTEVERTU_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = COTEVERTU_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = COTEVERTU_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = COTEVERTU_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = COTEVERTU_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = COTEVERTU_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
mStationHasZT2 = true;
|
||||
mTextualStationName = "Côte Vertu";
|
||||
mTextualShortName = "CVRT";
|
||||
}
|
||||
|
||||
unsigned int CCoteVertuStation::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
|
||||
NewCDV = new CCDV(COTEVERTU_IN_ZT2_ITI_MASK,COTEVERTU_IN_CDV_14B_MASK,CDV_NORMAL_TYPE,"14B",1,0);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(COTEVERTU_IN_ZT2_ITI_MASK,COTEVERTU_IN_CDV_14A_MASK,CDV_NORMAL_TYPE,"14A",1,1);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(COTEVERTU_IN_ZT2_ITI_MASK,COTEVERTU_IN_CDV_13B_MASK,CDV_NORMAL_TYPE,"13B",1,2);
|
||||
mZT2AlarmAutoAcquireCDV = NewCDV;
|
||||
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(COTEVERTU_IN_ZT2_ITI_MASK,COTEVERTU_IN_CDV_13A_MASK,CDV_NORMAL_TYPE,"13A (ZT2)",1,3);
|
||||
mZT2CDV = NewCDV;
|
||||
mZT2ApproachCDV = NewCDV; //Approach = ZT2 CDV
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(COTEVERTU_IN_ZT1_ITI_MASK,COTEVERTU_IN_CDV_12B_MASK,CDV_NORMAL_TYPE,"12B",1,4);
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
|
||||
NewCDV = new CCDV(COTEVERTU_IN_ZT1_ITI_MASK,COTEVERTU_IN_CDV_12A_MASK,CDV_NORMAL_TYPE,"12A",1,5);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
mZT1SubsequentCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
|
||||
NewCDV = new CCDV(COTEVERTU_IN_ZT1_ITI_MASK,COTEVERTU_IN_CDV_11B_MASK,CDV_NORMAL_TYPE,"11B (ZT1)",1,6);
|
||||
mZT1CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(COTEVERTU_IN_ZT1_ITI_MASK,COTEVERTU_IN_CDV_11A_MASK,CDV_NORMAL_TYPE,"11A",1,7);
|
||||
mZT1ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(COTEVERTU_IN_ZT1_ITI_MASK,COTEVERTU_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B",1,8);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef COTEVERTU_H
|
||||
#define COTEVERTU_H
|
||||
#include "Station.h"
|
||||
|
||||
#define COTEVERTU_STATION_KEY 0x0020000
|
||||
#define COTEVERTU_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define COTEVERTU_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define COTEVERTU_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define COTEVERTU_ZT1_S1_MASK 0x00000001
|
||||
#define COTEVERTU_ZT1_S2_MASK 0x00000002
|
||||
#define COTEVERTU_ZT1_PI_MASK 0x00000004
|
||||
#define COTEVERTU_ZT1_PE_MASK 0x00000008
|
||||
#define COTEVERTU_ZT1_FN_MASK 0x00000010
|
||||
#define COTEVERTU_ZT2_S1_MASK 0x00000020
|
||||
#define COTEVERTU_ZT2_PI_MASK 0x00000040
|
||||
#define COTEVERTU_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for Cote Vertu
|
||||
#define COTEVERTU_IN_CDV_12A_MASK 0x00000001
|
||||
#define COTEVERTU_IN_CDV_12B_MASK 0x00000002
|
||||
#define COTEVERTU_IN_CDV_11B_MASK 0x00000004
|
||||
#define COTEVERTU_IN_CDV_11A_MASK 0x00000008
|
||||
#define COTEVERTU_IN_CDV_10B_MASK 0x00000010
|
||||
#define COTEVERTU_IN_CDV_13A_MASK 0x00000020
|
||||
#define COTEVERTU_IN_CDV_14A_MASK 0x00000040
|
||||
#define COTEVERTU_IN_CDV_13B_MASK 0x00000080
|
||||
#define COTEVERTU_IN_CDV_14B_MASK 0x00000100
|
||||
#define COTEVERTU_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define COTEVERTU_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define COTEVERTU_IN_ZT1_AN_MASK 0x00000800
|
||||
#define COTEVERTU_IN_ZT2_AN_MASK 0x00001000
|
||||
#define COTEVERTU_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define COTEVERTU_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define COTEVERTU_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for Cote Vertu
|
||||
#define COTEVERTU_OUT_VP1_MASK 0x00000001
|
||||
#define COTEVERTU_OUT_VP2_MASK 0x00000002
|
||||
#define COTEVERTU_OUT_VP3_MASK 0x00000004
|
||||
#define COTEVERTU_OUT_VP4_MASK 0x00000008
|
||||
#define COTEVERTU_OUT_VP5_MASK 0x00000010
|
||||
#define COTEVERTU_OUT_VP6_MASK 0x00000020
|
||||
#define COTEVERTU_OUT_VF1_MASK 0x00000040
|
||||
#define COTEVERTU_OUT_VF2_MASK 0x00000080
|
||||
#define COTEVERTU_OUT_VF3_MASK 0x00000100
|
||||
#define COTEVERTU_OUT_VF4_MASK 0x00000200
|
||||
#define COTEVERTU_OUT_VF5_MASK 0x00000400
|
||||
#define COTEVERTU_OUT_WP1_MASK 0x00000800
|
||||
#define COTEVERTU_OUT_WP2_MASK 0x00001000
|
||||
#define COTEVERTU_OUT_WP3_MASK 0x00002000
|
||||
#define COTEVERTU_OUT_WP4_MASK 0x00004000
|
||||
#define COTEVERTU_OUT_WP5_MASK 0x00008000
|
||||
#define COTEVERTU_OUT_WP6_MASK 0x00010000
|
||||
#define COTEVERTU_OUT_DPE_MASK 0x00020000
|
||||
#define COTEVERTU_OUT_DPI_MASK 0x00040000
|
||||
#define COTEVERTU_OUT_V00_MASK 0x00080000
|
||||
#define COTEVERTU_OUT_DPG_MASK 0x00100000
|
||||
#define COTEVERTU_OUT_DFR_MASK 0x00200000
|
||||
#define COTEVERTU_OUT_RF_MASK 0x00400000
|
||||
#define COTEVERTU_OUT_RF2_MASK 0x00800000
|
||||
#define COTEVERTU_OUT_VEL_MASK 0x01000000
|
||||
#define COTEVERTU_OUT_VEL2_MASK 0x02000000
|
||||
#define COTEVERTU_OUT_DPI2_MASK 0x04000000
|
||||
#define COTEVERTU_OUT_DPE2_MASK 0x08000000
|
||||
#define COTEVERTU_OUT_V002_MASK 0x10000000
|
||||
#define COTEVERTU_OUT_PEQ1_MASK 0x20000000
|
||||
#define COTEVERTU_OUT_PEQ2_MASK 0x40000000
|
||||
#define COTEVERTU_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define COTEVERTU_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
class CCoteVertuStation : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CCoteVertuStation();
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
};
|
||||
|
||||
#endif // COTEVERTU_H
|
||||
|
||||
@@ -0,0 +1,155 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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 "HenriBourassa.h"
|
||||
#include <QtGlobal>
|
||||
|
||||
CHenriBourassaStation::CHenriBourassaStation()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = HENRIBOURASSA_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = HENRIBOURASSA_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = HENRIBOURASSA_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = HENRIBOURASSA_STATION_KEY;
|
||||
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = HENRIBOURASSA_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = HENRIBOURASSA_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = HENRIBOURASSA_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = HENRIBOURASSA_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = HENRIBOURASSA_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = HENRIBOURASSA_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = HENRIBOURASSA_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = HENRIBOURASSA_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = HENRIBOURASSA_IN_ZT1_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = HENRIBOURASSA_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = HENRIBOURASSA_IN_ZT1_AN_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = HENRIBOURASSA_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = HENRIBOURASSA_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = HENRIBOURASSA_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = HENRIBOURASSA_IN_STATION_ID_MASK;
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = HENRIBOURASSA_IN_CDV_11A_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = HENRIBOURASSA_IN_CDV_11B_MASK;
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = HENRIBOURASSA_IN_CDV_12BC_MASK;
|
||||
mStationInputMasks.InputCDVZT2Mask = HENRIBOURASSA_IN_CDV_13A_MASK;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = HENRIBOURASSA_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = HENRIBOURASSA_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = HENRIBOURASSA_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = HENRIBOURASSA_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = HENRIBOURASSA_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = HENRIBOURASSA_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = HENRIBOURASSA_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = HENRIBOURASSA_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = HENRIBOURASSA_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = HENRIBOURASSA_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = HENRIBOURASSA_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = HENRIBOURASSA_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = HENRIBOURASSA_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = HENRIBOURASSA_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = HENRIBOURASSA_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = HENRIBOURASSA_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = HENRIBOURASSA_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = HENRIBOURASSA_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = HENRIBOURASSA_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = HENRIBOURASSA_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = HENRIBOURASSA_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = HENRIBOURASSA_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = HENRIBOURASSA_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = HENRIBOURASSA_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = HENRIBOURASSA_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = HENRIBOURASSA_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = HENRIBOURASSA_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = HENRIBOURASSA_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = HENRIBOURASSA_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = HENRIBOURASSA_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = HENRIBOURASSA_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = HENRIBOURASSA_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = HENRIBOURASSA_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
mStationHasZT2 = true;
|
||||
mTextualStationName = "Henri Bourassa";
|
||||
mTextualShortName = "HBOU";
|
||||
}
|
||||
|
||||
|
||||
unsigned int CHenriBourassaStation::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
NewCDV = new CCDV(HENRIBOURASSA_IN_ZT2_ITI_MASK,HENRIBOURASSA_IN_CDV_14B_MASK,CDV_NORMAL_TYPE,"14B",1,0);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HENRIBOURASSA_IN_ZT2_ITI_MASK,HENRIBOURASSA_IN_CDV_14A_MASK,CDV_NORMAL_TYPE,"14A",1,1);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HENRIBOURASSA_IN_ZT2_ITI_MASK,HENRIBOURASSA_IN_CDV_13B_MASK,CDV_NORMAL_TYPE,"13B",1,2);
|
||||
mZT2AlarmAutoAcquireCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HENRIBOURASSA_IN_ZT2_ITI_MASK,HENRIBOURASSA_IN_CDV_13A_MASK,CDV_NORMAL_TYPE,"13A (ZT2)",1,3);
|
||||
mZT2CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HENRIBOURASSA_IN_ZT1_ITI_MASK,HENRIBOURASSA_IN_CDV_12BC_MASK,CDV_NORMAL_TYPE,"12BC",1,4);
|
||||
mCDVList.append(NewCDV);
|
||||
mZT2ApproachCDV = NewCDV;
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(HENRIBOURASSA_IN_ZT1_ITI_MASK,HENRIBOURASSA_IN_CDV_12A_MASK,CDV_NORMAL_TYPE,"12A",1,5);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
mZT1SubsequentCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(HENRIBOURASSA_IN_ZT1_ITI_MASK,HENRIBOURASSA_IN_CDV_11B_MASK,CDV_NORMAL_TYPE,"11B (ZT1)",1,6);
|
||||
mZT1CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HENRIBOURASSA_IN_ZT1_ITI_MASK,HENRIBOURASSA_IN_CDV_11A_MASK,CDV_NORMAL_TYPE,"11A",1,7);
|
||||
mZT1ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HENRIBOURASSA_IN_ZT1_ITI_MASK,HENRIBOURASSA_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B",1,8);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef HENRIBOURASSA_H
|
||||
#define HENRIBOURASSA_H
|
||||
#include "Station.h"
|
||||
|
||||
#define HENRIBOURASSA_STATION_KEY 0x0018000
|
||||
#define HENRIBOURASSA_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define HENRIBOURASSA_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define HENRIBOURASSA_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define HENRIBOURASSA_ZT1_S1_MASK 0x00000001
|
||||
#define HENRIBOURASSA_ZT1_S2_MASK 0x00000002
|
||||
#define HENRIBOURASSA_ZT1_PI_MASK 0x00000004
|
||||
#define HENRIBOURASSA_ZT1_PE_MASK 0x00000008
|
||||
#define HENRIBOURASSA_ZT1_FN_MASK 0x00000010
|
||||
#define HENRIBOURASSA_ZT2_S1_MASK 0x00000020
|
||||
#define HENRIBOURASSA_ZT2_PI_MASK 0x00000040
|
||||
#define HENRIBOURASSA_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for HENRIBOURASSA
|
||||
#define HENRIBOURASSA_IN_CDV_12A_MASK 0x00000001
|
||||
#define HENRIBOURASSA_IN_CDV_12BC_MASK 0x00000002
|
||||
#define HENRIBOURASSA_IN_CDV_11B_MASK 0x00000004
|
||||
#define HENRIBOURASSA_IN_CDV_11A_MASK 0x00000008
|
||||
#define HENRIBOURASSA_IN_CDV_10B_MASK 0x00000010
|
||||
#define HENRIBOURASSA_IN_CDV_13A_MASK 0x00000020
|
||||
#define HENRIBOURASSA_IN_CDV_14A_MASK 0x00000040
|
||||
#define HENRIBOURASSA_IN_CDV_13B_MASK 0x00000080
|
||||
#define HENRIBOURASSA_IN_CDV_14B_MASK 0x00000100
|
||||
#define HENRIBOURASSA_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define HENRIBOURASSA_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define HENRIBOURASSA_IN_ZT1_AN_MASK 0x00000800
|
||||
#define HENRIBOURASSA_IN_ZT2_AN_MASK 0x00001000
|
||||
#define HENRIBOURASSA_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define HENRIBOURASSA_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define HENRIBOURASSA_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for HENRIBOURASSA
|
||||
#define HENRIBOURASSA_OUT_VP1_MASK 0x00000001
|
||||
#define HENRIBOURASSA_OUT_VP2_MASK 0x00000002
|
||||
#define HENRIBOURASSA_OUT_VP3_MASK 0x00000004
|
||||
#define HENRIBOURASSA_OUT_VP4_MASK 0x00000008
|
||||
#define HENRIBOURASSA_OUT_VP5_MASK 0x00000010
|
||||
#define HENRIBOURASSA_OUT_VP6_MASK 0x00000020
|
||||
#define HENRIBOURASSA_OUT_VF1_MASK 0x00000040
|
||||
#define HENRIBOURASSA_OUT_VF2_MASK 0x00000080
|
||||
#define HENRIBOURASSA_OUT_VF3_MASK 0x00000100
|
||||
#define HENRIBOURASSA_OUT_VF4_MASK 0x00000200
|
||||
#define HENRIBOURASSA_OUT_VF5_MASK 0x00000400
|
||||
#define HENRIBOURASSA_OUT_WP1_MASK 0x00000800
|
||||
#define HENRIBOURASSA_OUT_WP2_MASK 0x00001000
|
||||
#define HENRIBOURASSA_OUT_WP3_MASK 0x00002000
|
||||
#define HENRIBOURASSA_OUT_WP4_MASK 0x00004000
|
||||
#define HENRIBOURASSA_OUT_WP5_MASK 0x00008000
|
||||
#define HENRIBOURASSA_OUT_WP6_MASK 0x00010000
|
||||
#define HENRIBOURASSA_OUT_DPE_MASK 0x00020000
|
||||
#define HENRIBOURASSA_OUT_DPI_MASK 0x00040000
|
||||
#define HENRIBOURASSA_OUT_V00_MASK 0x00080000
|
||||
#define HENRIBOURASSA_OUT_DPG_MASK 0x00100000
|
||||
#define HENRIBOURASSA_OUT_DFR_MASK 0x00200000
|
||||
#define HENRIBOURASSA_OUT_RF_MASK 0x00400000
|
||||
#define HENRIBOURASSA_OUT_RF2_MASK 0x00800000
|
||||
#define HENRIBOURASSA_OUT_VEL_MASK 0x01000000
|
||||
#define HENRIBOURASSA_OUT_VEL2_MASK 0x02000000
|
||||
#define HENRIBOURASSA_OUT_DPI2_MASK 0x04000000
|
||||
#define HENRIBOURASSA_OUT_DPE2_MASK 0x08000000
|
||||
#define HENRIBOURASSA_OUT_V002_MASK 0x10000000
|
||||
#define HENRIBOURASSA_OUT_PEQ1_MASK 0x20000000
|
||||
#define HENRIBOURASSA_OUT_PEQ2_MASK 0x40000000
|
||||
#define HENRIBOURASSA_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define HENRIBOURASSA_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
class CHenriBourassaStation : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CHenriBourassaStation();
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
};
|
||||
|
||||
#endif // HENRIBOURASSA_H
|
||||
|
||||
@@ -0,0 +1,156 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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 "HonoreBeaugrand.h"
|
||||
#include <QtGlobal>
|
||||
|
||||
CHonoreBeaugrandStation::CHonoreBeaugrandStation()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = HONOREBEAUGRAND_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = HONOREBEAUGRAND_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = HONOREBEAUGRAND_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = HONOREBEAUGRAND_STATION_KEY;
|
||||
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = HONOREBEAUGRAND_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = HONOREBEAUGRAND_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = HONOREBEAUGRAND_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = HONOREBEAUGRAND_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = HONOREBEAUGRAND_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = HONOREBEAUGRAND_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = HONOREBEAUGRAND_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = HONOREBEAUGRAND_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = HONOREBEAUGRAND_IN_ZT1_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = HONOREBEAUGRAND_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = HONOREBEAUGRAND_IN_ZT1_AN_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = HONOREBEAUGRAND_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = HONOREBEAUGRAND_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = HONOREBEAUGRAND_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = HONOREBEAUGRAND_IN_STATION_ID_MASK;
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = HONOREBEAUGRAND_IN_CDV_11A_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = HONOREBEAUGRAND_IN_CDV_11B_MASK;
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = HONOREBEAUGRAND_IN_CDV_12BC_MASK;
|
||||
mStationInputMasks.InputCDVZT2Mask = HONOREBEAUGRAND_IN_CDV_13A_MASK;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = HONOREBEAUGRAND_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = HONOREBEAUGRAND_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = HONOREBEAUGRAND_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = HONOREBEAUGRAND_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = HONOREBEAUGRAND_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = HONOREBEAUGRAND_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = HONOREBEAUGRAND_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = HONOREBEAUGRAND_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = HONOREBEAUGRAND_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = HONOREBEAUGRAND_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = HONOREBEAUGRAND_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = HONOREBEAUGRAND_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = HONOREBEAUGRAND_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = HONOREBEAUGRAND_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = HONOREBEAUGRAND_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = HONOREBEAUGRAND_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = HONOREBEAUGRAND_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = HONOREBEAUGRAND_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = HONOREBEAUGRAND_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = HONOREBEAUGRAND_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = HONOREBEAUGRAND_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = HONOREBEAUGRAND_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = HONOREBEAUGRAND_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = HONOREBEAUGRAND_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = HONOREBEAUGRAND_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = HONOREBEAUGRAND_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = HONOREBEAUGRAND_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = HONOREBEAUGRAND_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = HONOREBEAUGRAND_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = HONOREBEAUGRAND_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = HONOREBEAUGRAND_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = HONOREBEAUGRAND_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = HONOREBEAUGRAND_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
mStationHasZT2 = true;
|
||||
mTextualStationName = "Honoré Beaugrand";
|
||||
mTextualShortName = "HBGR";
|
||||
}
|
||||
|
||||
|
||||
unsigned int CHonoreBeaugrandStation::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
NewCDV = new CCDV(HONOREBEAUGRAND_IN_ZT2_ITI_MASK,HONOREBEAUGRAND_IN_CDV_14B_MASK,CDV_NORMAL_TYPE,"14B",1,0);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HONOREBEAUGRAND_IN_ZT2_ITI_MASK,HONOREBEAUGRAND_IN_CDV_14A_MASK,CDV_NORMAL_TYPE,"14A",1,1);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HONOREBEAUGRAND_IN_ZT2_ITI_MASK,HONOREBEAUGRAND_IN_CDV_13B_MASK,CDV_NORMAL_TYPE,"13B",1,2);
|
||||
mZT2AlarmAutoAcquireCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
NewCDV = new CCDV(HONOREBEAUGRAND_IN_ZT2_ITI_MASK,HONOREBEAUGRAND_IN_CDV_13A_MASK,CDV_NORMAL_TYPE,"13A (ZT2)",1,3);
|
||||
mZT2CDV = NewCDV;
|
||||
mZT2ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HONOREBEAUGRAND_IN_ZT1_ITI_MASK,HONOREBEAUGRAND_IN_CDV_12BC_MASK,CDV_NORMAL_TYPE,"12BC",1,4);
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(HONOREBEAUGRAND_IN_ZT1_ITI_MASK,HONOREBEAUGRAND_IN_CDV_12A_MASK,CDV_NORMAL_TYPE,"12A",1,5);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
mZT1SubsequentCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(HONOREBEAUGRAND_IN_ZT1_ITI_MASK,HONOREBEAUGRAND_IN_CDV_11B_MASK,CDV_NORMAL_TYPE,"11B (ZT1)",1,6);
|
||||
mZT1CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HONOREBEAUGRAND_IN_ZT1_ITI_MASK,HONOREBEAUGRAND_IN_CDV_11A_MASK,CDV_NORMAL_TYPE,"11A",1,7);
|
||||
mZT1ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(HONOREBEAUGRAND_IN_ZT1_ITI_MASK,HONOREBEAUGRAND_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B",1,8);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -0,0 +1,118 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef HONOREBEAUGRAND_H
|
||||
#define HONOREBEAUGRAND_H
|
||||
#include "Station.h"
|
||||
|
||||
#define HONOREBEAUGRAND_STATION_KEY 0x0008000
|
||||
#define HONOREBEAUGRAND_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define HONOREBEAUGRAND_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define HONOREBEAUGRAND_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define HONOREBEAUGRAND_ZT1_S1_MASK 0x00000001
|
||||
#define HONOREBEAUGRAND_ZT1_S2_MASK 0x00000002
|
||||
#define HONOREBEAUGRAND_ZT1_PI_MASK 0x00000004
|
||||
#define HONOREBEAUGRAND_ZT1_PE_MASK 0x00000008
|
||||
#define HONOREBEAUGRAND_ZT1_FN_MASK 0x00000010
|
||||
#define HONOREBEAUGRAND_ZT2_S1_MASK 0x00000020
|
||||
#define HONOREBEAUGRAND_ZT2_PI_MASK 0x00000040
|
||||
#define HONOREBEAUGRAND_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for HONOREBEAUGRAND
|
||||
#define HONOREBEAUGRAND_IN_CDV_12A_MASK 0x00000001
|
||||
#define HONOREBEAUGRAND_IN_CDV_12BC_MASK 0x00000002
|
||||
#define HONOREBEAUGRAND_IN_CDV_11B_MASK 0x00000004
|
||||
#define HONOREBEAUGRAND_IN_CDV_11A_MASK 0x00000008
|
||||
#define HONOREBEAUGRAND_IN_CDV_10B_MASK 0x00000010
|
||||
#define HONOREBEAUGRAND_IN_CDV_13A_MASK 0x00000020
|
||||
#define HONOREBEAUGRAND_IN_CDV_14A_MASK 0x00000040
|
||||
#define HONOREBEAUGRAND_IN_CDV_13B_MASK 0x00000080
|
||||
#define HONOREBEAUGRAND_IN_CDV_14B_MASK 0x00000100
|
||||
#define HONOREBEAUGRAND_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define HONOREBEAUGRAND_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define HONOREBEAUGRAND_IN_ZT1_AN_MASK 0x00000800
|
||||
#define HONOREBEAUGRAND_IN_ZT2_AN_MASK 0x00001000
|
||||
#define HONOREBEAUGRAND_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define HONOREBEAUGRAND_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define HONOREBEAUGRAND_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for HONOREBEAUGRAND
|
||||
#define HONOREBEAUGRAND_OUT_VP1_MASK 0x00000001
|
||||
#define HONOREBEAUGRAND_OUT_VP2_MASK 0x00000002
|
||||
#define HONOREBEAUGRAND_OUT_VP3_MASK 0x00000004
|
||||
#define HONOREBEAUGRAND_OUT_VP4_MASK 0x00000008
|
||||
#define HONOREBEAUGRAND_OUT_VP5_MASK 0x00000010
|
||||
#define HONOREBEAUGRAND_OUT_VP6_MASK 0x00000020
|
||||
#define HONOREBEAUGRAND_OUT_VF1_MASK 0x00000040
|
||||
#define HONOREBEAUGRAND_OUT_VF2_MASK 0x00000080
|
||||
#define HONOREBEAUGRAND_OUT_VF3_MASK 0x00000100
|
||||
#define HONOREBEAUGRAND_OUT_VF4_MASK 0x00000200
|
||||
#define HONOREBEAUGRAND_OUT_VF5_MASK 0x00000400
|
||||
#define HONOREBEAUGRAND_OUT_WP1_MASK 0x00000800
|
||||
#define HONOREBEAUGRAND_OUT_WP2_MASK 0x00001000
|
||||
#define HONOREBEAUGRAND_OUT_WP3_MASK 0x00002000
|
||||
#define HONOREBEAUGRAND_OUT_WP4_MASK 0x00004000
|
||||
#define HONOREBEAUGRAND_OUT_WP5_MASK 0x00008000
|
||||
#define HONOREBEAUGRAND_OUT_WP6_MASK 0x00010000
|
||||
#define HONOREBEAUGRAND_OUT_DPE_MASK 0x00020000
|
||||
#define HONOREBEAUGRAND_OUT_DPI_MASK 0x00040000
|
||||
#define HONOREBEAUGRAND_OUT_V00_MASK 0x00080000
|
||||
#define HONOREBEAUGRAND_OUT_DPG_MASK 0x00100000
|
||||
#define HONOREBEAUGRAND_OUT_DFR_MASK 0x00200000
|
||||
#define HONOREBEAUGRAND_OUT_RF_MASK 0x00400000
|
||||
#define HONOREBEAUGRAND_OUT_RF2_MASK 0x00800000
|
||||
#define HONOREBEAUGRAND_OUT_VEL_MASK 0x01000000
|
||||
#define HONOREBEAUGRAND_OUT_VEL2_MASK 0x02000000
|
||||
#define HONOREBEAUGRAND_OUT_DPI2_MASK 0x04000000
|
||||
#define HONOREBEAUGRAND_OUT_DPE2_MASK 0x08000000
|
||||
#define HONOREBEAUGRAND_OUT_V002_MASK 0x10000000
|
||||
#define HONOREBEAUGRAND_OUT_PEQ1_MASK 0x20000000
|
||||
#define HONOREBEAUGRAND_OUT_PEQ2_MASK 0x40000000
|
||||
#define HONOREBEAUGRAND_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define HONOREBEAUGRAND_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
class CHonoreBeaugrandStation : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CHonoreBeaugrandStation();
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
};
|
||||
|
||||
#endif // HONOREBEAUGRAND_H
|
||||
|
||||
@@ -0,0 +1,164 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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 "Longueuil.h"
|
||||
#include <QtGlobal>
|
||||
|
||||
CLongueuilStation::CLongueuilStation()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = LONGUEUIL_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = LONGUEUIL_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = LONGUEUIL_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = LONGUEUIL_STATION_KEY;
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = LONGUEUIL_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = LONGUEUIL_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = LONGUEUIL_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = LONGUEUIL_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = LONGUEUIL_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = LONGUEUIL_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = LONGUEUIL_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = LONGUEUIL_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = LONGUEUIL_IN_ZT1_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = LONGUEUIL_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = LONGUEUIL_IN_ZT1_AN_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = LONGUEUIL_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = LONGUEUIL_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = LONGUEUIL_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = LONGUEUIL_IN_STATION_ID_MASK;
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = LONGUEUIL_IN_CDV_10B_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = LONGUEUIL_IN_CDV_11_MASK;
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = LONGUEUIL_IN_CDV_12B_MASK;
|
||||
mStationInputMasks.InputCDVZT2Mask = LONGUEUIL_IN_CDV_13A_MASK;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = LONGUEUIL_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = LONGUEUIL_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = LONGUEUIL_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = LONGUEUIL_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = LONGUEUIL_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = LONGUEUIL_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = LONGUEUIL_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = LONGUEUIL_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = LONGUEUIL_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = LONGUEUIL_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = LONGUEUIL_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = LONGUEUIL_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = LONGUEUIL_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = LONGUEUIL_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = LONGUEUIL_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = LONGUEUIL_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = LONGUEUIL_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = LONGUEUIL_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = LONGUEUIL_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = LONGUEUIL_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = LONGUEUIL_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = LONGUEUIL_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = LONGUEUIL_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = LONGUEUIL_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = LONGUEUIL_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = LONGUEUIL_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = LONGUEUIL_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = LONGUEUIL_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = LONGUEUIL_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = LONGUEUIL_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = LONGUEUIL_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = LONGUEUIL_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = LONGUEIL_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
mStationHasZT2 = true;
|
||||
mTextualStationName = "Longueuil";
|
||||
mTextualShortName = "LONG";
|
||||
}
|
||||
|
||||
unsigned int CLongueuilStation::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
NewCDV = new CCDV(LONGUEUIL_IN_ZT2_ITI_MASK,LONGUEUIL_IN_CDV_14B_MASK,CDV_NORMAL_TYPE,"14B",1,0);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(LONGUEUIL_IN_ZT2_ITI_MASK,LONGUEUIL_IN_CDV_14A_MASK,CDV_NORMAL_TYPE,"14A",1,1);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(LONGUEUIL_IN_ZT2_ITI_MASK,LONGUEUIL_IN_CDV_13B_MASK,CDV_NORMAL_TYPE,"13B",1,2);
|
||||
mZT2AlarmAutoAcquireCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(LONGUEUIL_IN_ZT2_ITI_MASK,LONGUEUIL_IN_CDV_13A_MASK,CDV_NORMAL_TYPE,"13A (ZT2)",1,3);
|
||||
mZT2CDV = NewCDV;
|
||||
mZT2ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(LONGUEUIL_IN_ZT1_ITI_MASK,LONGUEUIL_IN_CDV_12B_MASK,CDV_NORMAL_TYPE,"12B",1,4);
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(LONGUEUIL_IN_ZT1_ITI_MASK,LONGUEUIL_IN_CDV_12A_MASK,CDV_NORMAL_TYPE,"12A",1,5);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
mZT1SubsequentCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(LONGUEUIL_IN_ZT1_ITI_MASK,LONGUEUIL_IN_CDV_11_MASK,CDV_NORMAL_TYPE,"11 (ZT1)",1,6);
|
||||
mZT1CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(LONGUEUIL_IN_ZT1_ITI_MASK,LONGUEUIL_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B",1,7);
|
||||
mCDVList.append(NewCDV);
|
||||
mCDV10B = NewCDV;
|
||||
|
||||
NewCDV = new CCDV(LONGUEUIL_IN_ZT1_ITI_MASK,LONGUEUIL_IN_CDV_10A_MASK,CDV_NORMAL_TYPE,"10A",1,8);
|
||||
mCDVList.append(NewCDV);
|
||||
mZT1ApproachCDV = NewCDV; //The approach CDV is the n-3 because CDV 10B and 11 are merged as the ZT1 cdv.
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
bool CLongueuilStation::IsZT1CDVOccupied()
|
||||
{
|
||||
if(mZT1CDV->IsOccupied() || mCDV10B->IsOccupied())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef LONGUEUIL_H
|
||||
#define LONGUEUIL_H
|
||||
#include "Station.h"
|
||||
|
||||
#define LONGUEUIL_STATION_KEY 0x0030000
|
||||
#define LONGUEUIL_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define LONGUEUIL_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define LONGUEUIL_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define LONGUEUIL_ZT1_S1_MASK 0x00000001
|
||||
#define LONGUEUIL_ZT1_S2_MASK 0x00000002
|
||||
#define LONGUEUIL_ZT1_PI_MASK 0x00000004
|
||||
#define LONGUEUIL_ZT1_PE_MASK 0x00000008
|
||||
#define LONGUEUIL_ZT1_FN_MASK 0x00000010
|
||||
#define LONGUEUIL_ZT2_S1_MASK 0x00000020
|
||||
#define LONGUEUIL_ZT2_PI_MASK 0x00000040
|
||||
#define LONGUEUIL_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for LONGUEUIL
|
||||
#define LONGUEUIL_IN_CDV_12A_MASK 0x00000001
|
||||
#define LONGUEUIL_IN_CDV_12B_MASK 0x00000002
|
||||
#define LONGUEUIL_IN_CDV_11_MASK 0x00000004
|
||||
#define LONGUEUIL_IN_CDV_10B_MASK 0x00000008
|
||||
#define LONGUEUIL_IN_CDV_10A_MASK 0x00000010
|
||||
#define LONGUEUIL_IN_CDV_13A_MASK 0x00000020
|
||||
#define LONGUEUIL_IN_CDV_14A_MASK 0x00000040
|
||||
#define LONGUEUIL_IN_CDV_13B_MASK 0x00000080
|
||||
#define LONGUEUIL_IN_CDV_14B_MASK 0x00000100
|
||||
#define LONGUEUIL_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define LONGUEUIL_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define LONGUEUIL_IN_ZT1_AN_MASK 0x00000800
|
||||
#define LONGUEUIL_IN_ZT2_AN_MASK 0x00001000
|
||||
#define LONGUEUIL_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define LONGUEUIL_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define LONGUEUIL_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for LONGUEUIL
|
||||
#define LONGUEUIL_OUT_VP1_MASK 0x00000001
|
||||
#define LONGUEUIL_OUT_VP2_MASK 0x00000002
|
||||
#define LONGUEUIL_OUT_VP3_MASK 0x00000004
|
||||
#define LONGUEUIL_OUT_VP4_MASK 0x00000008
|
||||
#define LONGUEUIL_OUT_VP5_MASK 0x00000010
|
||||
#define LONGUEUIL_OUT_VP6_MASK 0x00000020
|
||||
#define LONGUEUIL_OUT_VF1_MASK 0x00000040
|
||||
#define LONGUEUIL_OUT_VF2_MASK 0x00000080
|
||||
#define LONGUEUIL_OUT_VF3_MASK 0x00000100
|
||||
#define LONGUEUIL_OUT_VF4_MASK 0x00000200
|
||||
#define LONGUEUIL_OUT_VF5_MASK 0x00000400
|
||||
#define LONGUEUIL_OUT_WP1_MASK 0x00000800
|
||||
#define LONGUEUIL_OUT_WP2_MASK 0x00001000
|
||||
#define LONGUEUIL_OUT_WP3_MASK 0x00002000
|
||||
#define LONGUEUIL_OUT_WP4_MASK 0x00004000
|
||||
#define LONGUEUIL_OUT_WP5_MASK 0x00008000
|
||||
#define LONGUEUIL_OUT_WP6_MASK 0x00010000
|
||||
#define LONGUEUIL_OUT_DPE_MASK 0x00020000
|
||||
#define LONGUEUIL_OUT_DPI_MASK 0x00040000
|
||||
#define LONGUEUIL_OUT_V00_MASK 0x00080000
|
||||
#define LONGUEUIL_OUT_DPG_MASK 0x00100000
|
||||
#define LONGUEUIL_OUT_DFR_MASK 0x00200000
|
||||
#define LONGUEUIL_OUT_RF_MASK 0x00400000
|
||||
#define LONGUEUIL_OUT_RF2_MASK 0x00800000
|
||||
#define LONGUEUIL_OUT_VEL_MASK 0x01000000
|
||||
#define LONGUEUIL_OUT_VEL2_MASK 0x02000000
|
||||
#define LONGUEUIL_OUT_DPI2_MASK 0x04000000
|
||||
#define LONGUEUIL_OUT_DPE2_MASK 0x08000000
|
||||
#define LONGUEUIL_OUT_V002_MASK 0x10000000
|
||||
#define LONGUEUIL_OUT_PEQ1_MASK 0x20000000
|
||||
#define LONGUEUIL_OUT_PEQ2_MASK 0x40000000
|
||||
#define LONGUEUIL_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define LONGUEIL_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
class CLongueuilStation : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CLongueuilStation();
|
||||
virtual bool IsZT1CDVOccupied();
|
||||
|
||||
|
||||
|
||||
private:
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
CCDV *mCDV10B;
|
||||
};
|
||||
|
||||
#endif // LONGUEUIL_H
|
||||
|
||||
@@ -0,0 +1,219 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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 "Montmorency.h"
|
||||
#include <QtGlobal>
|
||||
#include "SwitchCDV.h"
|
||||
|
||||
CMontmorencyStation::CMontmorencyStation()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = MONTMORENCY_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = MONTMORENCY_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = MONTMORENCY_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = MONTMORENCY_STATION_KEY;
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = MONTMORENCY_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = MONTMORENCY_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = MONTMORENCY_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = MONTMORENCY_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = MONTMORENCY_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = MONTMORENCY_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = MONTMORENCY_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = MONTMORENCY_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = MONTMORENCY_IN_ZT1_10_12_ITI_MASK;
|
||||
mStationInputMasks.InputZT1_AltITIMask = MONTMORENCY_IN_ZT1_10_22_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = MONTMORENCY_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = MONTMORENCY_IN_10_12_AN1_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = MONTMORENCY_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = MONTMORENCY_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = MONTMORENCY_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = MONTMORENCY_IN_STATION_ID_MASK;
|
||||
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = MONTMORENCY_IN_CDV_11A_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = MONTMORENCY_IN_CDV_11B_MASK;
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = MONTMORENCY_IN_CDV_12BC_MASK;
|
||||
mStationInputMasks.InputCDVZT2Mask = MONTMORENCY_IN_CDV_13A_MASK;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = MONTMORENCY_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = MONTMORENCY_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = MONTMORENCY_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = MONTMORENCY_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = MONTMORENCY_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = MONTMORENCY_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = MONTMORENCY_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = MONTMORENCY_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = MONTMORENCY_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = MONTMORENCY_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = MONTMORENCY_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = MONTMORENCY_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = MONTMORENCY_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = MONTMORENCY_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = MONTMORENCY_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = MONTMORENCY_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = MONTMORENCY_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = MONTMORENCY_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = MONTMORENCY_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = MONTMORENCY_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = MONTMORENCY_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = MONTMORENCY_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = MONTMORENCY_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = MONTMORENCY_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = MONTMORENCY_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = MONTMORENCY_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = MONTMORENCY_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = MONTMORENCY_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = MONTMORENCY_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = MONTMORENCY_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = MONTMORENCY_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = MONTMORENCY_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = MONTMORENCY_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
mStationHasZT2 = true;
|
||||
mCurZT1Itinerary = MONTMORENCY_ZT1_NO_ITINERARY;
|
||||
mTextualStationName = "Montmorency";
|
||||
mTextualShortName = "MMO";
|
||||
}
|
||||
|
||||
unsigned int CMontmorencyStation::UpdateStationMasks(unsigned int ExtInputData)
|
||||
{
|
||||
mStationInputMasks.InputZT1_StdITIMask = MONTMORENCY_IN_ZT1_10_12_ITI_MASK;
|
||||
if((MONTMORENCY_IN_ZT1_10_12_ITI_MASK & ExtInputData) != 0)
|
||||
{
|
||||
if(mCurZT1Itinerary != MONTMORENCY_ZT1_10_12_ITINERARY)
|
||||
{ //Assign masks relative to 10/12 itinerary
|
||||
mStationInputMasks.InputZT1ITIMask = MONTMORENCY_IN_ZT1_10_12_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = MONTMORENCY_IN_10_12_AN1_MASK;
|
||||
mCurZT1Itinerary = MONTMORENCY_ZT1_10_12_ITINERARY;
|
||||
mZT1AlarmAutoAcquireCDV = m10_12AlarmAutoAcquireCDV;
|
||||
mZT1SubsequentCDV = m10_12SubsequentCDV;
|
||||
qDebug("Itinéraire 10/12 configuré");
|
||||
}
|
||||
|
||||
}
|
||||
else if((MONTMORENCY_IN_ZT1_10_22_ITI_MASK & ExtInputData) != 0)
|
||||
{
|
||||
if(mCurZT1Itinerary != MONTMORENCY_ZT1_10_22_ITINERARY)
|
||||
{ //Assign masks relative to 10/22 itinerary
|
||||
mStationInputMasks.InputZT1ITIMask = MONTMORENCY_IN_ZT1_10_22_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = MONTMORENCY_IN_10_22_AN1_MASK;
|
||||
mCurZT1Itinerary = MONTMORENCY_ZT1_10_22_ITINERARY;
|
||||
mZT1AlarmAutoAcquireCDV = m10_22AlarmAutoAcquireCDV;
|
||||
mZT1SubsequentCDV = m10_22SubsequentCDV;
|
||||
qDebug("Itinéraire 10/22 configuré");
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
mCurZT1Itinerary = MONTMORENCY_ZT1_NO_ITINERARY;
|
||||
}
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
unsigned int CMontmorencyStation::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT2_ITI_MASK,MONTMORENCY_IN_CDV_14B_MASK,CDV_NORMAL_TYPE,"14B",1,0);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT2_ITI_MASK,MONTMORENCY_IN_CDV_14A_MASK,CDV_NORMAL_TYPE,"14A",1,1);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT2_ITI_MASK,MONTMORENCY_IN_CDV_13B_MASK,CDV_NORMAL_TYPE,"13B",1,2);
|
||||
mZT2AlarmAutoAcquireCDV = NewCDV;
|
||||
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT2_ITI_MASK,MONTMORENCY_IN_CDV_13A_MASK,CDV_NORMAL_TYPE,"13A ZT2",1,3);
|
||||
mZT2CDV = NewCDV;
|
||||
mZT2ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT1_10_12_ITI_MASK,MONTMORENCY_IN_CDV_12BC_MASK,CDV_NORMAL_TYPE,"12BC",1,4);
|
||||
mCDVList.append(NewCDV);
|
||||
m10_12AlarmAutoAcquireCDV = NewCDV; //Memorize it...
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT1_10_12_ITI_MASK,MONTMORENCY_IN_CDV_12A_MASK,CDV_NORMAL_TYPE,"12A",1,5);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT1_10_12_ITI_MASK,MONTMORENCY_IN_CDV_11B_MASK,CDV_NORMAL_TYPE,"11B",1,6);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
CSwitchCDV *NewSwitchCDV = new CSwitchCDV(MONTMORENCY_IN_ZT1_10_12_ITI_MASK,MONTMORENCY_IN_ZT1_10_22_ITI_MASK,MONTMORENCY_IN_CDV_11A_MASK,CDV_SWITCH_TYPE,"11A",1,7);
|
||||
mCDVList.append((CCDV*)NewSwitchCDV);
|
||||
mZT1SubsequentCDV = (CCDV*)NewSwitchCDV;
|
||||
m10_12SubsequentCDV = NewSwitchCDV;
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT1_10_12_ITI_MASK | MONTMORENCY_IN_ZT1_10_22_ITI_MASK,MONTMORENCY_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B ZT1",1,8);
|
||||
mZT1CDV = NewCDV;
|
||||
mZT1ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT1_10_22_ITI_MASK,MONTMORENCY_IN_CDV_22BC_MASK,CDV_NORMAL_TYPE,"22BC",2,4);
|
||||
mCDVList.append(NewCDV);
|
||||
m10_22AlarmAutoAcquireCDV = NewCDV; //Memorize it.
|
||||
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT1_10_22_ITI_MASK,MONTMORENCY_IN_CDV_22A_MASK,CDV_NORMAL_TYPE,"22A",2,5);
|
||||
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
// NewSwitchCDV = new CSwitchCDV(0,MONTMORENCY_IN_ZT1_10_22_ITI_MASK,MONTMORENCY_IN_CDV_21BC_MASK,CDV_SWITCH_TYPE,"21BC",2,6);
|
||||
// mCDVList.append((CCDV*)NewSwitchCDV);
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY_IN_ZT1_10_22_ITI_MASK,MONTMORENCY_IN_CDV_21BC_MASK,CDV_NORMAL_TYPE,"21B",2,6);
|
||||
mCDVList.append(NewCDV);
|
||||
m10_22SubsequentCDV = NewCDV;
|
||||
|
||||
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
GenericInputMasks_t *CMontmorencyStation::GetInputMasks(void)
|
||||
{
|
||||
return &mStationInputMasks;
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef MONTMORENCY_H
|
||||
#define MONTMORENCY_H
|
||||
#include "Station.h"
|
||||
|
||||
#define MONTMORENCY_STATION_KEY 0x0048000
|
||||
#define MONTMORENCY_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define MONTMORENCY_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define MONTMORENCY_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define MONTMORENCY_ZT1_S1_MASK 0x00000001
|
||||
#define MONTMORENCY_ZT1_S2_MASK 0x00000002
|
||||
#define MONTMORENCY_ZT1_PI_MASK 0x00000004
|
||||
#define MONTMORENCY_ZT1_PE_MASK 0x00000008
|
||||
#define MONTMORENCY_ZT1_FN_MASK 0x00000010
|
||||
#define MONTMORENCY_ZT2_S1_MASK 0x00000020
|
||||
#define MONTMORENCY_ZT2_PI_MASK 0x00000040
|
||||
#define MONTMORENCY_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for MONTMORENCY
|
||||
#define MONTMORENCY_IN_CDV_12A_MASK 0x00000001
|
||||
#define MONTMORENCY_IN_CDV_12BC_MASK 0x00000002
|
||||
#define MONTMORENCY_IN_CDV_11B_MASK 0x00000004
|
||||
#define MONTMORENCY_IN_CDV_11A_MASK 0x00000008
|
||||
#define MONTMORENCY_IN_CDV_10B_MASK 0x00000010
|
||||
#define MONTMORENCY_IN_CDV_13A_MASK 0x00000020
|
||||
#define MONTMORENCY_IN_CDV_14A_MASK 0x00000040
|
||||
#define MONTMORENCY_IN_CDV_13B_MASK 0x00000080
|
||||
#define MONTMORENCY_IN_CDV_14B_MASK 0x00000100
|
||||
#define MONTMORENCY_IN_ZT1_10_12_ITI_MASK 0x00000200
|
||||
#define MONTMORENCY_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define MONTMORENCY_IN_10_12_AN1_MASK 0x00000800
|
||||
#define MONTMORENCY_IN_ZT2_AN_MASK 0x00001000
|
||||
#define MONTMORENCY_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define MONTMORENCY_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define MONTMORENCY_IN_STATION_ID_MASK 0x00078000
|
||||
#define MONTMORENCY_IN_CDV_21BC_MASK 0x00080000
|
||||
#define MONTMORENCY_IN_CDV_22A_MASK 0x00100000
|
||||
#define MONTMORENCY_IN_CDV_22BC_MASK 0x00200000
|
||||
#define MONTMORENCY_IN_10_22_AN1_MASK 0x00400000
|
||||
#define MONTMORENCY_IN_ZT1_10_22_ITI_MASK 0x00800000
|
||||
|
||||
//External (ethernet) output module masks for MONTMORENCY
|
||||
#define MONTMORENCY_OUT_VP1_MASK 0x00000001
|
||||
#define MONTMORENCY_OUT_VP2_MASK 0x00000002
|
||||
#define MONTMORENCY_OUT_VP3_MASK 0x00000004
|
||||
#define MONTMORENCY_OUT_VP4_MASK 0x00000008
|
||||
#define MONTMORENCY_OUT_VP5_MASK 0x00000010
|
||||
#define MONTMORENCY_OUT_VP6_MASK 0x00000020
|
||||
#define MONTMORENCY_OUT_VF1_MASK 0x00000040
|
||||
#define MONTMORENCY_OUT_VF2_MASK 0x00000080
|
||||
#define MONTMORENCY_OUT_VF3_MASK 0x00000100
|
||||
#define MONTMORENCY_OUT_VF4_MASK 0x00000200
|
||||
#define MONTMORENCY_OUT_VF5_MASK 0x00000400
|
||||
#define MONTMORENCY_OUT_WP1_MASK 0x00000800
|
||||
#define MONTMORENCY_OUT_WP2_MASK 0x00001000
|
||||
#define MONTMORENCY_OUT_WP3_MASK 0x00002000
|
||||
#define MONTMORENCY_OUT_WP4_MASK 0x00004000
|
||||
#define MONTMORENCY_OUT_WP5_MASK 0x00008000
|
||||
#define MONTMORENCY_OUT_WP6_MASK 0x00010000
|
||||
#define MONTMORENCY_OUT_DPE_MASK 0x00020000
|
||||
#define MONTMORENCY_OUT_DPI_MASK 0x00040000
|
||||
#define MONTMORENCY_OUT_V00_MASK 0x00080000
|
||||
#define MONTMORENCY_OUT_DPG_MASK 0x00100000
|
||||
#define MONTMORENCY_OUT_DFR_MASK 0x00200000
|
||||
#define MONTMORENCY_OUT_RF_MASK 0x00400000
|
||||
#define MONTMORENCY_OUT_RF2_MASK 0x00800000
|
||||
#define MONTMORENCY_OUT_VEL_MASK 0x01000000
|
||||
#define MONTMORENCY_OUT_VEL2_MASK 0x02000000
|
||||
#define MONTMORENCY_OUT_DPI2_MASK 0x04000000
|
||||
#define MONTMORENCY_OUT_DPE2_MASK 0x08000000
|
||||
#define MONTMORENCY_OUT_V002_MASK 0x10000000
|
||||
#define MONTMORENCY_OUT_PEQ1_MASK 0x20000000
|
||||
#define MONTMORENCY_OUT_PEQ2_MASK 0x40000000
|
||||
#define MONTMORENCY_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define MONTMORENCY_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
class CMontmorencyStation : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CMontmorencyStation();
|
||||
virtual GenericInputMasks_t *GetInputMasks(void);
|
||||
virtual unsigned int UpdateStationMasks(unsigned int ExtInputData);
|
||||
|
||||
|
||||
private:
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
int mCurZT1Itinerary;
|
||||
CCDV *m10_12AlarmAutoAcquireCDV, *m10_22AlarmAutoAcquireCDV;
|
||||
CCDV *m10_12SubsequentCDV, *m10_22SubsequentCDV;
|
||||
|
||||
enum eMontmorencyZT1Itineraries
|
||||
{
|
||||
MONTMORENCY_ZT1_10_12_ITINERARY,
|
||||
MONTMORENCY_ZT1_10_22_ITINERARY,
|
||||
MONTMORENCY_ZT1_NO_ITINERARY
|
||||
};
|
||||
};
|
||||
|
||||
#endif // MONTMORENCY_H
|
||||
|
||||
@@ -0,0 +1,161 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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;
|
||||
//}
|
||||
@@ -0,0 +1,116 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef MONTMORENCY1012_H
|
||||
#define MONTMORENCY1012_H
|
||||
#include "Station.h"
|
||||
|
||||
#define MONTMORENCY1012_STATION_KEY 0x0048000
|
||||
#define MONTMORENCY1012_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define MONTMORENCY1012_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define MONTMORENCY1012_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define MONTMORENCY1012_ZT1_S1_MASK 0x00000001
|
||||
#define MONTMORENCY1012_ZT1_S2_MASK 0x00000002
|
||||
#define MONTMORENCY1012_ZT1_PI_MASK 0x00000004
|
||||
#define MONTMORENCY1012_ZT1_PE_MASK 0x00000008
|
||||
#define MONTMORENCY1012_ZT1_FN_MASK 0x00000010
|
||||
#define MONTMORENCY1012_ZT2_S1_MASK 0x00000020
|
||||
#define MONTMORENCY1012_ZT2_PI_MASK 0x00000040
|
||||
#define MONTMORENCY1012_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for MONTMORENCY
|
||||
#define MONTMORENCY1012_IN_CDV_12A_MASK 0x00000001
|
||||
#define MONTMORENCY1012_IN_CDV_12BC_MASK 0x00000002
|
||||
#define MONTMORENCY1012_IN_CDV_11B_MASK 0x00000004
|
||||
#define MONTMORENCY1012_IN_CDV_11A_MASK 0x00000008
|
||||
#define MONTMORENCY1012_IN_CDV_10B_MASK 0x00000010
|
||||
#define MONTMORENCY1012_IN_CDV_13A_MASK 0x00000020
|
||||
#define MONTMORENCY1012_IN_CDV_14A_MASK 0x00000040
|
||||
#define MONTMORENCY1012_IN_CDV_13B_MASK 0x00000080
|
||||
#define MONTMORENCY1012_IN_CDV_14B_MASK 0x00000100
|
||||
#define MONTMORENCY1012_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define MONTMORENCY1012_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define MONTMORENCY1012_IN_ZT1_AN_MASK 0x00000800
|
||||
#define MONTMORENCY1012_IN_ZT2_AN_MASK 0x00001000
|
||||
#define MONTMORENCY1012_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define MONTMORENCY1012_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define MONTMORENCY1012_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for MONTMORENCY
|
||||
#define MONTMORENCY1012_OUT_VP1_MASK 0x00000001
|
||||
#define MONTMORENCY1012_OUT_VP2_MASK 0x00000002
|
||||
#define MONTMORENCY1012_OUT_VP3_MASK 0x00000004
|
||||
#define MONTMORENCY1012_OUT_VP4_MASK 0x00000008
|
||||
#define MONTMORENCY1012_OUT_VP5_MASK 0x00000010
|
||||
#define MONTMORENCY1012_OUT_VP6_MASK 0x00000020
|
||||
#define MONTMORENCY1012_OUT_VF1_MASK 0x00000040
|
||||
#define MONTMORENCY1012_OUT_VF2_MASK 0x00000080
|
||||
#define MONTMORENCY1012_OUT_VF3_MASK 0x00000100
|
||||
#define MONTMORENCY1012_OUT_VF4_MASK 0x00000200
|
||||
#define MONTMORENCY1012_OUT_VF5_MASK 0x00000400
|
||||
#define MONTMORENCY1012_OUT_WP1_MASK 0x00000800
|
||||
#define MONTMORENCY1012_OUT_WP2_MASK 0x00001000
|
||||
#define MONTMORENCY1012_OUT_WP3_MASK 0x00002000
|
||||
#define MONTMORENCY1012_OUT_WP4_MASK 0x00004000
|
||||
#define MONTMORENCY1012_OUT_WP5_MASK 0x00008000
|
||||
#define MONTMORENCY1012_OUT_WP6_MASK 0x00010000
|
||||
#define MONTMORENCY1012_OUT_DPE_MASK 0x00020000
|
||||
#define MONTMORENCY1012_OUT_DPI_MASK 0x00040000
|
||||
#define MONTMORENCY1012_OUT_V00_MASK 0x00080000
|
||||
#define MONTMORENCY1012_OUT_DPG_MASK 0x00100000
|
||||
#define MONTMORENCY1012_OUT_DFR_MASK 0x00200000
|
||||
#define MONTMORENCY1012_OUT_RF_MASK 0x00400000
|
||||
#define MONTMORENCY1012_OUT_RF2_MASK 0x00800000
|
||||
#define MONTMORENCY1012_OUT_VEL_MASK 0x01000000
|
||||
#define MONTMORENCY1012_OUT_VEL2_MASK 0x02000000
|
||||
#define MONTMORENCY1012_OUT_DPI2_MASK 0x04000000
|
||||
#define MONTMORENCY1012_OUT_DPE2_MASK 0x08000000
|
||||
#define MONTMORENCY1012_OUT_V002_MASK 0x10000000
|
||||
#define MONTMORENCY1012_OUT_PEQ1_MASK 0x20000000
|
||||
#define MONTMORENCY1012_OUT_PEQ2_MASK 0x40000000
|
||||
#define MONTMORENCY1012_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define MONTMORENCY1012_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
class CMontmorency1012Station : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CMontmorency1012Station();
|
||||
// bool IsZT1ApproachCDVOccupied();
|
||||
|
||||
private:
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
};
|
||||
|
||||
#endif // MONTMORENCY_H
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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 "Montmorency1022.h"
|
||||
#include <QtGlobal>
|
||||
#include "SwitchCDV.h"
|
||||
|
||||
CMontmorency1022Station::CMontmorency1022Station()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = MONTMORENCY1022_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = MONTMORENCY1022_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = MONTMORENCY1022_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = MONTMORENCY1022_STATION_KEY;
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = MONTMORENCY1022_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = MONTMORENCY1022_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = MONTMORENCY1022_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = MONTMORENCY1022_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = MONTMORENCY1022_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = MONTMORENCY1022_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = MONTMORENCY1022_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = MONTMORENCY1022_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = MONTMORENCY1022_IN_ZT1_ITI_MASK;
|
||||
// mStationInputMasks.InputZT1ITIMask = MONTMORENCY1022_IN_ZT1_10_22_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = MONTMORENCY1022_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = MONTMORENCY1022_IN_ZT1_AN_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = MONTMORENCY1022_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = MONTMORENCY1022_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = MONTMORENCY1022_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = MONTMORENCY1022_IN_STATION_ID_MASK;
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = MONTMORENCY1022_IN_CDV_10B_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = MONTMORENCY1022_IN_CDV_10B_MASK;
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = 0;
|
||||
mStationInputMasks.InputCDVZT2Mask = 0;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = MONTMORENCY1022_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = MONTMORENCY1022_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = MONTMORENCY1022_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = MONTMORENCY1022_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = MONTMORENCY1022_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = MONTMORENCY1022_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = MONTMORENCY1022_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = MONTMORENCY1022_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = MONTMORENCY1022_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = MONTMORENCY1022_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = MONTMORENCY1022_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = MONTMORENCY1022_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = MONTMORENCY1022_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = MONTMORENCY1022_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = MONTMORENCY1022_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = MONTMORENCY1022_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = MONTMORENCY1022_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = MONTMORENCY1022_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = MONTMORENCY1022_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = MONTMORENCY1022_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = MONTMORENCY1022_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = MONTMORENCY1022_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = MONTMORENCY1022_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = MONTMORENCY1022_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = MONTMORENCY1022_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = MONTMORENCY1022_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = MONTMORENCY1022_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = MONTMORENCY1022_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = MONTMORENCY1022_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = MONTMORENCY1022_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = MONTMORENCY1022_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = MONTMORENCY1022_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = MONTMORENCY1022_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
mStationHasZT2 = false;
|
||||
mTextualStationName = "Montmorency (10/22)";
|
||||
mTextualShortName = "MMO2";
|
||||
}
|
||||
|
||||
unsigned int CMontmorency1022Station::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY1022_IN_ZT1_ITI_MASK,MONTMORENCY1022_IN_CDV_11A_MASK,CDV_NORMAL_TYPE,"11A",1,5);
|
||||
mCDVList.append(NewCDV);
|
||||
mZT1SubsequentCDV = NewCDV;
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY1022_IN_ZT1_ITI_MASK,MONTMORENCY1022_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B ZT1",1,6);
|
||||
mZT1CDV = NewCDV;
|
||||
mZT1ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY1022_IN_ZT1_ITI_MASK,MONTMORENCY1022_IN_CDV_22BC_MASK,CDV_NORMAL_TYPE,"22BC",2,2);
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY1022_IN_ZT1_ITI_MASK,MONTMORENCY1022_IN_CDV_22A_MASK,CDV_NORMAL_TYPE,"22A",2,3);
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
|
||||
NewCDV = new CCDV(MONTMORENCY1022_IN_ZT1_ITI_MASK,MONTMORENCY1022_IN_CDV_21AB_MASK,CDV_NORMAL_TYPE,"21AB",2,4);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef MONTMORENCY1022_H
|
||||
#define MONTMORENCY1022_H
|
||||
#include "Station.h"
|
||||
|
||||
#define MONTMORENCY1022_STATION_KEY 0x0050000
|
||||
#define MONTMORENCY1022_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define MONTMORENCY1022_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define MONTMORENCY1022_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define MONTMORENCY1022_ZT1_S1_MASK 0x00000001
|
||||
#define MONTMORENCY1022_ZT1_S2_MASK 0x00000002
|
||||
#define MONTMORENCY1022_ZT1_PI_MASK 0x00000004
|
||||
#define MONTMORENCY1022_ZT1_PE_MASK 0x00000008
|
||||
#define MONTMORENCY1022_ZT1_FN_MASK 0x00000010
|
||||
#define MONTMORENCY1022_ZT2_S1_MASK 0x00000020
|
||||
#define MONTMORENCY1022_ZT2_PI_MASK 0x00000040
|
||||
#define MONTMORENCY1022_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for MONTMORENCY
|
||||
#define MONTMORENCY1022_IN_CDV_22A_MASK 0x00000001
|
||||
#define MONTMORENCY1022_IN_CDV_22BC_MASK 0x00000002
|
||||
#define MONTMORENCY1022_IN_CDV_21AB_MASK 0x00000004
|
||||
#define MONTMORENCY1022_IN_CDV_11A_MASK 0x00000008
|
||||
#define MONTMORENCY1022_IN_CDV_10B_MASK 0x00000010
|
||||
//#define MONTMORENCY1022_IN_CDV_21BC_MASK 0x00000020
|
||||
//#define MONTMORENCY1022_IN_CDV_14A_MASK 0x00000040
|
||||
//#define MONTMORENCY1022_IN_CDV_13B_MASK 0x00000080
|
||||
//#define MONTMORENCY1022_IN_CDV_14B_MASK 0x00000100
|
||||
#define MONTMORENCY1022_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define MONTMORENCY1022_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define MONTMORENCY1022_IN_ZT1_AN_MASK 0x00000800
|
||||
#define MONTMORENCY1022_IN_ZT2_AN_MASK 0x00001000
|
||||
#define MONTMORENCY1022_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define MONTMORENCY1022_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define MONTMORENCY1022_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for MONTMORENCY
|
||||
#define MONTMORENCY1022_OUT_VP1_MASK 0x00000001
|
||||
#define MONTMORENCY1022_OUT_VP2_MASK 0x00000002
|
||||
#define MONTMORENCY1022_OUT_VP3_MASK 0x00000004
|
||||
#define MONTMORENCY1022_OUT_VP4_MASK 0x00000008
|
||||
#define MONTMORENCY1022_OUT_VP5_MASK 0x00000010
|
||||
#define MONTMORENCY1022_OUT_VP6_MASK 0x00000020
|
||||
#define MONTMORENCY1022_OUT_VF1_MASK 0x00000040
|
||||
#define MONTMORENCY1022_OUT_VF2_MASK 0x00000080
|
||||
#define MONTMORENCY1022_OUT_VF3_MASK 0x00000100
|
||||
#define MONTMORENCY1022_OUT_VF4_MASK 0x00000200
|
||||
#define MONTMORENCY1022_OUT_VF5_MASK 0x00000400
|
||||
#define MONTMORENCY1022_OUT_WP1_MASK 0x00000800
|
||||
#define MONTMORENCY1022_OUT_WP2_MASK 0x00001000
|
||||
#define MONTMORENCY1022_OUT_WP3_MASK 0x00002000
|
||||
#define MONTMORENCY1022_OUT_WP4_MASK 0x00004000
|
||||
#define MONTMORENCY1022_OUT_WP5_MASK 0x00008000
|
||||
#define MONTMORENCY1022_OUT_WP6_MASK 0x00010000
|
||||
#define MONTMORENCY1022_OUT_DPE_MASK 0x00020000
|
||||
#define MONTMORENCY1022_OUT_DPI_MASK 0x00040000
|
||||
#define MONTMORENCY1022_OUT_V00_MASK 0x00080000
|
||||
#define MONTMORENCY1022_OUT_DPG_MASK 0x00100000
|
||||
#define MONTMORENCY1022_OUT_DFR_MASK 0x00200000
|
||||
#define MONTMORENCY1022_OUT_RF_MASK 0x00400000
|
||||
#define MONTMORENCY1022_OUT_RF2_MASK 0x00800000
|
||||
#define MONTMORENCY1022_OUT_VEL_MASK 0x01000000
|
||||
#define MONTMORENCY1022_OUT_VEL2_MASK 0x02000000
|
||||
#define MONTMORENCY1022_OUT_DPI2_MASK 0x04000000
|
||||
#define MONTMORENCY1022_OUT_DPE2_MASK 0x08000000
|
||||
#define MONTMORENCY1022_OUT_V002_MASK 0x10000000
|
||||
#define MONTMORENCY1022_OUT_PEQ1_MASK 0x20000000
|
||||
#define MONTMORENCY1022_OUT_PEQ2_MASK 0x40000000
|
||||
#define MONTMORENCY1022_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define MONTMORENCY1022_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
class CMontmorency1022Station : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CMontmorency1022Station();
|
||||
|
||||
private:
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
};
|
||||
|
||||
#endif // MONTMORENCY_H
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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 "SaintMichel.h"
|
||||
#include <QtGlobal>
|
||||
|
||||
CSaintMichelStation::CSaintMichelStation()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = SAINTMICHEL_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = SAINTMICHEL_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = SAINTMICHEL_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = SAINTMICHEL_STATION_KEY;
|
||||
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = SAINTMICHEL_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = SAINTMICHEL_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = SAINTMICHEL_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = SAINTMICHEL_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = SAINTMICHEL_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = SAINTMICHEL_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = SAINTMICHEL_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = SAINTMICHEL_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = SAINTMICHEL_IN_ZT1_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = SAINTMICHEL_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = SAINTMICHEL_IN_ZT1_AN_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = SAINTMICHEL_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = SAINTMICHEL_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = SAINTMICHEL_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = SAINTMICHEL_IN_STATION_ID_MASK;
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = SAINTMICHEL_IN_CDV_11A_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = SAINTMICHEL_IN_CDV_11B_MASK;
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = SAINTMICHEL_IN_CDV_12B_MASK;
|
||||
mStationInputMasks.InputCDVZT2Mask = SAINTMICHEL_IN_CDV_13A_MASK;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = SAINTMICHEL_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = SAINTMICHEL_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = SAINTMICHEL_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = SAINTMICHEL_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = SAINTMICHEL_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = SAINTMICHEL_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = SAINTMICHEL_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = SAINTMICHEL_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = SAINTMICHEL_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = SAINTMICHEL_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = SAINTMICHEL_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = SAINTMICHEL_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = SAINTMICHEL_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = SAINTMICHEL_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = SAINTMICHEL_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = SAINTMICHEL_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = SAINTMICHEL_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = SAINTMICHEL_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = SAINTMICHEL_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = SAINTMICHEL_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = SAINTMICHEL_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = SAINTMICHEL_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = SAINTMICHEL_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = SAINTMICHEL_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = SAINTMICHEL_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = SAINTMICHEL_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = SAINTMICHEL_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = SAINTMICHEL_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = SAINTMICHEL_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = SAINTMICHEL_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = SAINTMICHEL_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = SAINTMICHEL_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = SAINTMICHEL_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
mStationHasZT2 = true;
|
||||
mTextualStationName = "Saint-Michel";
|
||||
mTextualShortName = "SMIC";
|
||||
}
|
||||
|
||||
unsigned int CSaintMichelStation::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
NewCDV = new CCDV(SAINTMICHEL_IN_ZT2_ITI_MASK,SAINTMICHEL_IN_CDV_14B_MASK,CDV_NORMAL_TYPE,"14B",1,0);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SAINTMICHEL_IN_ZT2_ITI_MASK,SAINTMICHEL_IN_CDV_14A_MASK,CDV_NORMAL_TYPE,"14A",1,1);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SAINTMICHEL_IN_ZT2_ITI_MASK,SAINTMICHEL_IN_CDV_13B_MASK,CDV_NORMAL_TYPE,"13B",1,2);
|
||||
mZT2AlarmAutoAcquireCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SAINTMICHEL_IN_ZT2_ITI_MASK,SAINTMICHEL_IN_CDV_13A_MASK,CDV_NORMAL_TYPE,"13A (ZT2)",1,3);
|
||||
mZT2CDV =NewCDV;
|
||||
mZT2ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SAINTMICHEL_IN_ZT1_ITI_MASK,SAINTMICHEL_IN_CDV_12B_MASK,CDV_NORMAL_TYPE,"12B",1,4);
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(SAINTMICHEL_IN_ZT1_ITI_MASK,SAINTMICHEL_IN_CDV_12A_MASK,CDV_NORMAL_TYPE,"12A",1,5);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(SAINTMICHEL_IN_ZT1_ITI_MASK,SAINTMICHEL_IN_CDV_11B_MASK,CDV_NORMAL_TYPE,"11B (ZT1)",1,6);
|
||||
mZT1CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SAINTMICHEL_IN_ZT1_ITI_MASK,SAINTMICHEL_IN_CDV_11A_MASK,CDV_NORMAL_TYPE,"11A",1,7);
|
||||
mZT1ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SAINTMICHEL_IN_ZT1_ITI_MASK,SAINTMICHEL_IN_CDV_10B_MASK,CDV_NORMAL_TYPE,"10B",1,8);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef SAINTMICHEL_H
|
||||
#define SAINTMICHEL_H
|
||||
#include "Station.h"
|
||||
|
||||
#define SAINTMICHEL_STATION_KEY 0x0038000
|
||||
#define SAINTMICHEL_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define SAINTMICHEL_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define SAINTMICHEL_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define SAINTMICHEL_ZT1_S1_MASK 0x00000001
|
||||
#define SAINTMICHEL_ZT1_S2_MASK 0x00000002
|
||||
#define SAINTMICHEL_ZT1_PI_MASK 0x00000004
|
||||
#define SAINTMICHEL_ZT1_PE_MASK 0x00000008
|
||||
#define SAINTMICHEL_ZT1_FN_MASK 0x00000010
|
||||
#define SAINTMICHEL_ZT2_S1_MASK 0x00000020
|
||||
#define SAINTMICHEL_ZT2_PI_MASK 0x00000040
|
||||
#define SAINTMICHEL_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for SAINTMICHEL
|
||||
#define SAINTMICHEL_IN_CDV_12A_MASK 0x00000001
|
||||
#define SAINTMICHEL_IN_CDV_12B_MASK 0x00000002
|
||||
#define SAINTMICHEL_IN_CDV_11B_MASK 0x00000004
|
||||
#define SAINTMICHEL_IN_CDV_11A_MASK 0x00000008
|
||||
#define SAINTMICHEL_IN_CDV_10B_MASK 0x00000010
|
||||
#define SAINTMICHEL_IN_CDV_13A_MASK 0x00000020
|
||||
#define SAINTMICHEL_IN_CDV_14A_MASK 0x00000040
|
||||
#define SAINTMICHEL_IN_CDV_13B_MASK 0x00000080
|
||||
#define SAINTMICHEL_IN_CDV_14B_MASK 0x00000100
|
||||
#define SAINTMICHEL_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define SAINTMICHEL_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define SAINTMICHEL_IN_ZT1_AN_MASK 0x00000800
|
||||
#define SAINTMICHEL_IN_ZT2_AN_MASK 0x00001000
|
||||
#define SAINTMICHEL_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define SAINTMICHEL_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define SAINTMICHEL_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for SAINTMICHEL
|
||||
#define SAINTMICHEL_OUT_VP1_MASK 0x00000001
|
||||
#define SAINTMICHEL_OUT_VP2_MASK 0x00000002
|
||||
#define SAINTMICHEL_OUT_VP3_MASK 0x00000004
|
||||
#define SAINTMICHEL_OUT_VP4_MASK 0x00000008
|
||||
#define SAINTMICHEL_OUT_VP5_MASK 0x00000010
|
||||
#define SAINTMICHEL_OUT_VP6_MASK 0x00000020
|
||||
#define SAINTMICHEL_OUT_VF1_MASK 0x00000040
|
||||
#define SAINTMICHEL_OUT_VF2_MASK 0x00000080
|
||||
#define SAINTMICHEL_OUT_VF3_MASK 0x00000100
|
||||
#define SAINTMICHEL_OUT_VF4_MASK 0x00000200
|
||||
#define SAINTMICHEL_OUT_VF5_MASK 0x00000400
|
||||
#define SAINTMICHEL_OUT_WP1_MASK 0x00000800
|
||||
#define SAINTMICHEL_OUT_WP2_MASK 0x00001000
|
||||
#define SAINTMICHEL_OUT_WP3_MASK 0x00002000
|
||||
#define SAINTMICHEL_OUT_WP4_MASK 0x00004000
|
||||
#define SAINTMICHEL_OUT_WP5_MASK 0x00008000
|
||||
#define SAINTMICHEL_OUT_WP6_MASK 0x00010000
|
||||
#define SAINTMICHEL_OUT_DPE_MASK 0x00020000
|
||||
#define SAINTMICHEL_OUT_DPI_MASK 0x00040000
|
||||
#define SAINTMICHEL_OUT_V00_MASK 0x00080000
|
||||
#define SAINTMICHEL_OUT_DPG_MASK 0x00100000
|
||||
#define SAINTMICHEL_OUT_DFR_MASK 0x00200000
|
||||
#define SAINTMICHEL_OUT_RF_MASK 0x00400000
|
||||
#define SAINTMICHEL_OUT_RF2_MASK 0x00800000
|
||||
#define SAINTMICHEL_OUT_VEL_MASK 0x01000000
|
||||
#define SAINTMICHEL_OUT_VEL2_MASK 0x02000000
|
||||
#define SAINTMICHEL_OUT_DPI2_MASK 0x04000000
|
||||
#define SAINTMICHEL_OUT_DPE2_MASK 0x08000000
|
||||
#define SAINTMICHEL_OUT_V002_MASK 0x10000000
|
||||
#define SAINTMICHEL_OUT_PEQ1_MASK 0x20000000
|
||||
#define SAINTMICHEL_OUT_PEQ2_MASK 0x40000000
|
||||
#define SAINTMICHEL_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define SAINTMICHEL_SDF_ACQUISITION_CHANNEL 0
|
||||
class CSaintMichelStation : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CSaintMichelStation();
|
||||
|
||||
|
||||
|
||||
private:
|
||||
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
};
|
||||
|
||||
#endif // SAINTMICHEL_H
|
||||
|
||||
@@ -0,0 +1,175 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* 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 "Snowdon.h"
|
||||
#include <QtGlobal>
|
||||
|
||||
CSnowdonStation::CSnowdonStation()
|
||||
{
|
||||
//All the inherited variables from base class must be initialized here
|
||||
//according to the physical implementation in the station.
|
||||
mNbExtInputModules430 = SNOWDON_NB_EXTERNAL_INPUT_430_MODULES;
|
||||
mNbExtOutputModules440 = SNOWDON_NB_EXTERNAL_OUTPUT_440_MODULES;
|
||||
mNbExtMixedModules470 = SNOWDON_NB_EXTERNAL_MIXED_470_MODULES;
|
||||
mStationPhysicalKey = SNOWDON_STATION_KEY;
|
||||
//Initialize mask structures
|
||||
//
|
||||
|
||||
mStationInputMasks.InputZT1S1Mask = SNOWDON_ZT1_S1_MASK;
|
||||
mStationInputMasks.InputZT1S2Mask = SNOWDON_ZT1_S2_MASK;
|
||||
mStationInputMasks.InputZT1PIMask = SNOWDON_ZT1_PI_MASK;
|
||||
mStationInputMasks.InputZT1PEMask = SNOWDON_ZT1_PE_MASK;
|
||||
mStationInputMasks.InputZT1FNMask = SNOWDON_ZT1_FN_MASK;
|
||||
mStationInputMasks.InputZT2S1Mask = SNOWDON_ZT2_S1_MASK;
|
||||
mStationInputMasks.InputZT2PIMask = SNOWDON_ZT2_PI_MASK;
|
||||
mStationInputMasks.InputZT2PEMask = SNOWDON_ZT2_PE_MASK;
|
||||
|
||||
//External (ethernet) input module masks
|
||||
mStationInputMasks.InputZT1ITIMask = SNOWDON_IN_ZT1_ITI_MASK;
|
||||
mStationInputMasks.InputZT2ITIMask = SNOWDON_IN_ZT2_ITI_MASK;
|
||||
mStationInputMasks.InputZT1ANMask = SNOWDON_IN_ZT1_AN_MASK;
|
||||
mStationInputMasks.InputZT2ANMask = SNOWDON_IN_ZT2_AN_MASK;
|
||||
mStationInputMasks.InputZT1ARFMask = SNOWDON_IN_ZT1_ARF_MASK;
|
||||
mStationInputMasks.InputZT2ARFMask = SNOWDON_IN_ZT2_ARF_MASK;
|
||||
mStationInputMasks.InputStationIDMask = SNOWDON_IN_STATION_ID_MASK;
|
||||
|
||||
//Logic input masks
|
||||
mStationInputMasks.InputCDVZT1ApproachMask = SNOWDON_IN_CDV_22C_MASK;
|
||||
mStationInputMasks.InputCDVZT1Mask = SNOWDON_IN_CDV_22B_MASK;
|
||||
|
||||
//No ZT2 at Snowdon...
|
||||
mStationInputMasks.InputCDVZT2ApproachMask = 0;
|
||||
mStationInputMasks.InputCDVZT2Mask = 0;
|
||||
|
||||
//Output masks
|
||||
mStationOutputMasks.OutputVP1Mask = SNOWDON_OUT_VP1_MASK;
|
||||
mStationOutputMasks.OutputVP2Mask = SNOWDON_OUT_VP2_MASK;
|
||||
mStationOutputMasks.OutputVP3Mask = SNOWDON_OUT_VP3_MASK;
|
||||
mStationOutputMasks.OutputVP4Mask = SNOWDON_OUT_VP4_MASK;
|
||||
mStationOutputMasks.OutputVP5Mask = SNOWDON_OUT_VP5_MASK;
|
||||
mStationOutputMasks.OutputVP6Mask = SNOWDON_OUT_VP6_MASK;
|
||||
mStationOutputMasks.OutputVF1Mask = SNOWDON_OUT_VF1_MASK;
|
||||
mStationOutputMasks.OutputVF2Mask = SNOWDON_OUT_VF2_MASK;
|
||||
mStationOutputMasks.OutputVF3Mask = SNOWDON_OUT_VF3_MASK;
|
||||
mStationOutputMasks.OutputVF4Mask = SNOWDON_OUT_VF4_MASK;
|
||||
mStationOutputMasks.OutputVF5Mask = SNOWDON_OUT_VF5_MASK;
|
||||
mStationOutputMasks.OutputWP1Mask = SNOWDON_OUT_WP1_MASK;
|
||||
mStationOutputMasks.OutputWP2Mask = SNOWDON_OUT_WP2_MASK;
|
||||
mStationOutputMasks.OutputWP3Mask = SNOWDON_OUT_WP3_MASK;
|
||||
mStationOutputMasks.OutputWP4Mask = SNOWDON_OUT_WP4_MASK;
|
||||
mStationOutputMasks.OutputWP5Mask = SNOWDON_OUT_WP5_MASK;
|
||||
mStationOutputMasks.OutputWP6Mask = SNOWDON_OUT_WP6_MASK;
|
||||
mStationOutputMasks.OutputDPEMask = SNOWDON_OUT_DPE_MASK;
|
||||
mStationOutputMasks.OutputDPIMask = SNOWDON_OUT_DPI_MASK;
|
||||
mStationOutputMasks.OutputV00Mask = SNOWDON_OUT_V00_MASK;
|
||||
mStationOutputMasks.OutputDPGMask = SNOWDON_OUT_DPG_MASK;
|
||||
mStationOutputMasks.OutputDFRMask = SNOWDON_OUT_DFR_MASK;
|
||||
mStationOutputMasks.OutputRFMask = SNOWDON_OUT_RF_MASK;
|
||||
mStationOutputMasks.OutputRF2Mask = SNOWDON_OUT_RF2_MASK;
|
||||
mStationOutputMasks.OutputVELMask = SNOWDON_OUT_VEL_MASK;
|
||||
mStationOutputMasks.OutputVEL2Mask = SNOWDON_OUT_VEL2_MASK;
|
||||
mStationOutputMasks.OutputDPI2Mask = SNOWDON_OUT_DPI2_MASK;
|
||||
mStationOutputMasks.OutputDPE2Mask = SNOWDON_OUT_DPE2_MASK;
|
||||
mStationOutputMasks.OutputV002Mask = SNOWDON_OUT_V002_MASK;
|
||||
mStationOutputMasks.OutputPEQ1Mask = SNOWDON_OUT_PEQ1_MASK;
|
||||
mStationOutputMasks.OutputPEQ2Mask = SNOWDON_OUT_PEQ2_MASK;
|
||||
mStationOutputMasks.OutputWatchdogMask = SNOWDON_OUT_WATCHDOG_MASK;
|
||||
|
||||
mAnalogAcqChannels.SDFAcquisitionChannel = SNOWDON_SDF_ACQUISITION_CHANNEL;
|
||||
|
||||
mStationHasZT2 = false;
|
||||
mTextualStationName = "Snowdon";
|
||||
mTextualShortName = "SNW5";
|
||||
}
|
||||
|
||||
unsigned int CSnowdonStation::BuildStationCDVList()
|
||||
{
|
||||
CCDV *NewCDV;
|
||||
mCDVList.empty();
|
||||
|
||||
NewCDV = new CCDV(0,SNOWDON_IN_CDV_20A_MASK,CDV_NORMAL_TYPE,"20A",1,0);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(0,SNOWDON_IN_CDV_20B_MASK,CDV_NORMAL_TYPE,"20B",1,1);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(0,SNOWDON_IN_CDV_20C_MASK,CDV_NORMAL_TYPE,"20C",1,2);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(0,SNOWDON_IN_CDV_21_MASK,CDV_NORMAL_TYPE,"21",1,3);
|
||||
NewCDV->SetInputMask(SNOWDON_IN_CDV_21_MASK);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SNOWDON_IN_ZT1_ITI_MASK,SNOWDON_IN_CDV_22A_MASK,CDV_NORMAL_TYPE,"22A",1,4);
|
||||
mZT1AlarmAutoAcquireCDV = NewCDV;
|
||||
mCDV22A = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SNOWDON_IN_ZT1_ITI_MASK,SNOWDON_IN_CDV_22B_MASK,CDV_NORMAL_TYPE,"22B (ZT1)",1,5);
|
||||
mZT1CDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SNOWDON_IN_ZT1_ITI_MASK,SNOWDON_IN_CDV_22C_MASK,CDV_NORMAL_TYPE,"22C",1,6);
|
||||
mCDV22C = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
NewCDV->SetCDVDeck(true);
|
||||
|
||||
NewCDV = new CCDV(SNOWDON_IN_ZT1_ITI_MASK,SNOWDON_IN_CDV_23_MASK,CDV_NORMAL_TYPE,"23",1,7);
|
||||
mZT1ApproachCDV = NewCDV;
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
NewCDV = new CCDV(SNOWDON_IN_ZT1_ITI_MASK,SNOWDON_IN_CDV_24A_MASK,CDV_NORMAL_TYPE,"24A",1,8);
|
||||
mCDVList.append(NewCDV);
|
||||
|
||||
return RET_OK;
|
||||
}
|
||||
|
||||
bool CSnowdonStation::IsZT1AnalysisFinished()
|
||||
{
|
||||
//At Snowdon, we must stop the ZT1 analysis when the CDV 22A is occupied or when ZT1 CDV (22B | 22C) is free.
|
||||
if(mCDV22A->IsOccupied() || !IsZT1CDVOccupied())
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CSnowdonStation::IsZT1CDVOccupied()
|
||||
{
|
||||
if(mZT1CDV->IsOccupied() || mCDV22C->IsOccupied()) //Combine CDV 22B and 22C as the ZT1 CDV because equipment is too close from the deck
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
/*******************************************************************************
|
||||
* *
|
||||
* Société de Transports de Montréal. *
|
||||
* 2012 *
|
||||
* *
|
||||
* Projet Zones Tests *
|
||||
* *
|
||||
* *
|
||||
* *
|
||||
*******************************************************************************/
|
||||
/*
|
||||
Description:
|
||||
Description du fichier si nécessaire.
|
||||
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
/* Revision:
|
||||
### 20121220 JFM
|
||||
Verision d'origine.
|
||||
|
||||
### YYYYMMDD Description du besoin ou du bug
|
||||
Description du changement.
|
||||
*/
|
||||
|
||||
/* ************************************************************************** */
|
||||
|
||||
#ifndef SNOWDON_H
|
||||
#define SNOWDON_H
|
||||
#include "Station.h"
|
||||
|
||||
#define SNOWDON_STATION_KEY 0x0040000
|
||||
#define SNOWDON_NB_EXTERNAL_INPUT_430_MODULES 1
|
||||
#define SNOWDON_NB_EXTERNAL_OUTPUT_440_MODULES 1
|
||||
#define SNOWDON_NB_EXTERNAL_MIXED_470_MODULES 0
|
||||
|
||||
//Since it's necessary to execute a very fast acquisition and analysis
|
||||
//of magnetic sensors through the PCI I/O adapter, we will use masks
|
||||
//instead of bitfields for those sensors. This will accelerate
|
||||
//treatment by avoiding the use of a memcpy().
|
||||
#define SNOWDON_ZT1_S1_MASK 0x00000001
|
||||
#define SNOWDON_ZT1_S2_MASK 0x00000002
|
||||
#define SNOWDON_ZT1_PI_MASK 0x00000004
|
||||
#define SNOWDON_ZT1_PE_MASK 0x00000008
|
||||
#define SNOWDON_ZT1_FN_MASK 0x00000010
|
||||
#define SNOWDON_ZT2_S1_MASK 0x00000020
|
||||
#define SNOWDON_ZT2_PI_MASK 0x00000040
|
||||
#define SNOWDON_ZT2_PE_MASK 0x00000080
|
||||
|
||||
//External (ethernet) input module masks for SNOWDON
|
||||
//#define SNOWDON_IN_CDV_22B_MASK 0x00000001
|
||||
//#define SNOWDON_IN_CDV_22A_MASK 0x00000002
|
||||
//#define SNOWDON_IN_CDV_22C_MASK 0x00000004
|
||||
//#define SNOWDON_IN_CDV_23_MASK 0x00000008
|
||||
//#define SNOWDON_IN_CDV_24A_MASK 0x00000010
|
||||
//#define SNOWDON_IN_CDV_21_MASK 0x00000020
|
||||
//#define SNOWDON_IN_CDV_20B_MASK 0x00000040
|
||||
//#define SNOWDON_IN_CDV_20C_MASK 0x00000080
|
||||
//#define SNOWDON_IN_CDV_20A_MASK 0x00000100
|
||||
//#define SNOWDON_IN_ZT1_ITI_MASK 0x00000200
|
||||
//#define SNOWDON_IN_ZT2_ITI_MASK 0x00000400
|
||||
//#define SNOWDON_IN_ZT1_AN_MASK 0x00000800
|
||||
//#define SNOWDON_IN_ZT2_AN_MASK 0x00001000
|
||||
//#define SNOWDON_IN_ZT1_ARF_MASK 0x00002000
|
||||
//#define SNOWDON_IN_ZT2_ARF_MASK 0x00004000
|
||||
//#define SNOWDON_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
#define SNOWDON_IN_CDV_22B_MASK 0x00000004 //2.1
|
||||
#define SNOWDON_IN_CDV_22A_MASK 0x00000001 //1.2
|
||||
#define SNOWDON_IN_CDV_22C_MASK 0x00000008 //2.2
|
||||
#define SNOWDON_IN_CDV_23_MASK 0x00000010 //3.1
|
||||
#define SNOWDON_IN_CDV_24A_MASK 0x00000040 //10.1
|
||||
#define SNOWDON_IN_CDV_21_MASK 0x00000020 //9.2
|
||||
#define SNOWDON_IN_CDV_20B_MASK 0x00000100 //13.2
|
||||
#define SNOWDON_IN_CDV_20C_MASK 0x00000002 //1.1
|
||||
#define SNOWDON_IN_CDV_20A_MASK 0x00000080 //13.1
|
||||
#define SNOWDON_IN_ZT1_ITI_MASK 0x00000200
|
||||
#define SNOWDON_IN_ZT2_ITI_MASK 0x00000400
|
||||
#define SNOWDON_IN_ZT1_AN_MASK 0x00000800
|
||||
#define SNOWDON_IN_ZT2_AN_MASK 0x00001000
|
||||
#define SNOWDON_IN_ZT1_ARF_MASK 0x00002000
|
||||
#define SNOWDON_IN_ZT2_ARF_MASK 0x00004000
|
||||
#define SNOWDON_IN_STATION_ID_MASK 0x00078000
|
||||
|
||||
//External (ethernet) output module masks for SNOWDON
|
||||
#define SNOWDON_OUT_VP1_MASK 0x00000001
|
||||
#define SNOWDON_OUT_VP2_MASK 0x00000002
|
||||
#define SNOWDON_OUT_VP3_MASK 0x00000004
|
||||
#define SNOWDON_OUT_VP4_MASK 0x00000008
|
||||
#define SNOWDON_OUT_VP5_MASK 0x00000010
|
||||
#define SNOWDON_OUT_VP6_MASK 0x00000020
|
||||
#define SNOWDON_OUT_VF1_MASK 0x00000040
|
||||
#define SNOWDON_OUT_VF2_MASK 0x00000080
|
||||
#define SNOWDON_OUT_VF3_MASK 0x00000100
|
||||
#define SNOWDON_OUT_VF4_MASK 0x00000200
|
||||
#define SNOWDON_OUT_VF5_MASK 0x00000400
|
||||
#define SNOWDON_OUT_WP1_MASK 0x00000800
|
||||
#define SNOWDON_OUT_WP2_MASK 0x00001000
|
||||
#define SNOWDON_OUT_WP3_MASK 0x00002000
|
||||
#define SNOWDON_OUT_WP4_MASK 0x00004000
|
||||
#define SNOWDON_OUT_WP5_MASK 0x00008000
|
||||
#define SNOWDON_OUT_WP6_MASK 0x00010000
|
||||
#define SNOWDON_OUT_DPE_MASK 0x00020000
|
||||
#define SNOWDON_OUT_DPI_MASK 0x00040000
|
||||
#define SNOWDON_OUT_V00_MASK 0x00080000
|
||||
#define SNOWDON_OUT_DPG_MASK 0x00100000
|
||||
#define SNOWDON_OUT_DFR_MASK 0x00200000
|
||||
#define SNOWDON_OUT_RF_MASK 0x00400000
|
||||
#define SNOWDON_OUT_RF2_MASK 0x00800000
|
||||
#define SNOWDON_OUT_VEL_MASK 0x01000000
|
||||
#define SNOWDON_OUT_VEL2_MASK 0x02000000
|
||||
#define SNOWDON_OUT_DPI2_MASK 0x04000000
|
||||
#define SNOWDON_OUT_DPE2_MASK 0x08000000
|
||||
#define SNOWDON_OUT_V002_MASK 0x10000000
|
||||
#define SNOWDON_OUT_PEQ1_MASK 0x20000000
|
||||
#define SNOWDON_OUT_PEQ2_MASK 0x40000000
|
||||
#define SNOWDON_OUT_WATCHDOG_MASK 0x80000000
|
||||
|
||||
#define SNOWDON_SDF_ACQUISITION_CHANNEL 0
|
||||
|
||||
class CSnowdonStation : public CStation
|
||||
{
|
||||
public:
|
||||
|
||||
CSnowdonStation();
|
||||
|
||||
virtual bool IsZT1AnalysisFinished();
|
||||
virtual bool IsZT1CDVOccupied();
|
||||
CCDV *mCDV22C, *mCDV22A;
|
||||
|
||||
|
||||
|
||||
private:
|
||||
virtual unsigned int BuildStationCDVList();
|
||||
};
|
||||
|
||||
#endif // SNOWDON_H
|
||||
|
||||
Reference in New Issue
Block a user