/******************************************************************************* * * * Société de Transports de Montréal. * * 2012 - 2013 * * * * Projet Zones Tests * * * * * * * *******************************************************************************/ /* Description: Classe instantiable d'une carte d'entrées PCI. Dérivée de CPCIIOMgr, elle permet d'émuler les entrées de la carte PCI en réimplémentant les fonctions génériques de sa classe de base. Les fonctions SetInputBufFlags et SetInputBufValue permettent au simulateur d'assigner les valeurs des entrées qui doivent être lues par le programme. */ /* ************************************************************************** */ /* Revision: ### YYYMMDD JFM Verision d'origine. ### YYYYMMDD Description du besoin ou du bug Description du changement. */ /* ************************************************************************** */ #include "SimulatorPCIIO.h" CSimulatorPCIIO::CSimulatorPCIIO() { mSimPCIInputsBuffer = 0; } unsigned int CSimulatorPCIIO::GetInputs() { unsigned int temp; mRdWrLock.lockForRead(); //lock for thread access temp = mSimPCIInputsBuffer; mRdWrLock.unlock(); return temp; } unsigned int CSimulatorPCIIO::OpenPCIInterface() { return PCIIO_OK; } unsigned int CSimulatorPCIIO::SetInputBufFlags(unsigned int FlagMask) { unsigned int temp; mRdWrLock.lockForWrite(); mSimPCIInputsBuffer |= FlagMask; temp = mSimPCIInputsBuffer; mRdWrLock.unlock(); return temp; } unsigned int CSimulatorPCIIO::SetInputBufValue(unsigned int value) { unsigned int temp; mRdWrLock.lockForWrite(); mSimPCIInputsBuffer = value; temp = mSimPCIInputsBuffer; mRdWrLock.unlock(); return temp; } unsigned int CSimulatorPCIIO::ClearInputBufFlags(unsigned int FlagMask) { unsigned int temp; mRdWrLock.lockForWrite(); mSimPCIInputsBuffer ^= FlagMask; temp = mSimPCIInputsBuffer; mRdWrLock.unlock(); return temp; }