99 lines
2.6 KiB
C++
99 lines
2.6 KiB
C++
/*******************************************************************************
|
|
* *
|
|
* Société de Transports de Montréal. *
|
|
* 2012 *
|
|
* *
|
|
* Projet Zones Tests *
|
|
* *
|
|
* *
|
|
* *
|
|
*******************************************************************************/
|
|
/*
|
|
Description:
|
|
Classe instantiable d'un module simulé d'entrées externes. Dérivée de CInputModule, elle
|
|
permet d'émuler les entrées du module externe en réimplémentant les fonctions
|
|
génériques de sa classe de base. Le simulateur peut changer l'état des entrées
|
|
par les fonctions Set...
|
|
|
|
*/
|
|
|
|
/* ************************************************************************** */
|
|
/* Revision:
|
|
### YYYMMDD JFM
|
|
Verision d'origine.
|
|
|
|
### YYYYMMDD Description du besoin ou du bug
|
|
Description du changement.
|
|
*/
|
|
|
|
/* ************************************************************************** */
|
|
|
|
#include "SimulatorInputModule.h"
|
|
#include "Angrignon.h"
|
|
|
|
CSimulatorInputModule::CSimulatorInputModule()
|
|
{
|
|
mInputBuf = 0;
|
|
}
|
|
|
|
CSimulatorInputModule::~CSimulatorInputModule()
|
|
{
|
|
|
|
}
|
|
|
|
//unsigned int CSimulatorInputModule::GetInputs(unsigned char *DataBuf)
|
|
//{
|
|
|
|
// memcpy(DataBuf,&mInputBuf,sizeof(mInputBuf));
|
|
|
|
// return RET_OK;
|
|
//}
|
|
|
|
unsigned int CSimulatorInputModule::GetInputs()
|
|
{
|
|
unsigned int temp;
|
|
mRdWrLock.lockForRead();
|
|
temp = mInputBuf;
|
|
mRdWrLock.unlock();
|
|
return temp;
|
|
}
|
|
|
|
unsigned int CSimulatorInputModule::GetInputBuf()
|
|
{
|
|
unsigned int temp;
|
|
mRdWrLock.lockForRead();
|
|
temp = mInputBuf;
|
|
mRdWrLock.unlock();
|
|
return temp;
|
|
}
|
|
|
|
unsigned int CSimulatorInputModule::SetInputBufFlags(unsigned int FlagMask)
|
|
{
|
|
unsigned int temp;
|
|
mRdWrLock.lockForWrite();
|
|
mInputBuf |= FlagMask;
|
|
temp = mInputBuf;
|
|
mRdWrLock.unlock();
|
|
return temp;
|
|
}
|
|
|
|
unsigned int CSimulatorInputModule::SetInputBufValue(unsigned int value)
|
|
{
|
|
unsigned int temp;
|
|
mRdWrLock.lockForWrite();
|
|
mInputBuf = value;
|
|
temp = mInputBuf;
|
|
mRdWrLock.unlock();
|
|
return temp;
|
|
}
|
|
|
|
unsigned int CSimulatorInputModule::ClearInputBufFlags(unsigned int FlagMask)
|
|
{
|
|
unsigned int temp;
|
|
mRdWrLock.lockForWrite();
|
|
mInputBuf &= ~FlagMask;
|
|
temp = mInputBuf;
|
|
mRdWrLock.unlock();
|
|
return temp;
|
|
}
|