84 lines
2.4 KiB
C++
84 lines
2.4 KiB
C++
/*******************************************************************************
|
|
* *
|
|
* 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;
|
|
}
|