/******************************************************************************* * * * 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; }