108 lines
3.0 KiB
C++
108 lines
3.0 KiB
C++
/*******************************************************************************
|
|
* *
|
|
* Société de Transports de Montréal. *
|
|
* 2012 *
|
|
* *
|
|
* Projet Zones Tests *
|
|
* *
|
|
* *
|
|
* *
|
|
*******************************************************************************/
|
|
/*
|
|
Description:
|
|
Classe instantiable d'un module d'entrées externe simulé. Dérivée de COutputModule, elle
|
|
permet d'émuler les sorties du module externe en réimplémentant les fonctions
|
|
génériques de sa classe de base. La classe notifie le simulateur d'un changement
|
|
d'état des sorties afin que ce dernier puisse les afficher visuellement.
|
|
*/
|
|
|
|
/* ************************************************************************** */
|
|
/* Revision:
|
|
### YYYMMDD JFM
|
|
Verision d'origine.
|
|
|
|
### YYYYMMDD Description du besoin ou du bug
|
|
Description du changement.
|
|
*/
|
|
|
|
/* ************************************************************************** */
|
|
|
|
#include "SImulatorOutputModule.h"
|
|
#include "ZTSimulator.h"
|
|
|
|
CSImulatorOutputModule::CSImulatorOutputModule()
|
|
{
|
|
mOutputBuffer = 0;
|
|
mSimulatorPtr = 0;
|
|
}
|
|
|
|
unsigned int CSImulatorOutputModule::SetOutput(unsigned char *buffer)
|
|
{
|
|
// quint32 temp;
|
|
// mRdWrLock.lockForWrite();
|
|
// mOutputBuffer |= FlagMask;
|
|
// temp = mOutputBuffer;
|
|
// mRdWrLock.unlock();
|
|
Q_UNUSED(buffer)
|
|
|
|
return RET_OK;
|
|
}
|
|
|
|
unsigned int CSImulatorOutputModule::SetOutput(quint32 buffer)
|
|
{
|
|
quint32 temp;
|
|
mRdWrLock.lockForWrite();
|
|
mOutputBuffer = buffer;
|
|
temp = mOutputBuffer;
|
|
mRdWrLock.unlock();
|
|
|
|
|
|
// mSimulatorPtr->UpdateOutputsDisplay(temp);
|
|
emit UpdateOutputsDisplay(temp);
|
|
|
|
return RET_OK;
|
|
}
|
|
|
|
unsigned int CSImulatorOutputModule::SetOutputFlags(quint32 FlagMask)
|
|
{
|
|
quint32 temp;
|
|
mRdWrLock.lockForWrite();
|
|
mOutputBuffer |= FlagMask;
|
|
temp = mOutputBuffer;
|
|
mRdWrLock.unlock();
|
|
|
|
emit UpdateOutputsDisplay(temp);
|
|
// mSimulatorPtr->UpdateOutputsDisplay(temp);
|
|
|
|
return RET_OK;
|
|
}
|
|
|
|
unsigned int CSImulatorOutputModule::ClearOutputFlags(quint32 FlagMask)
|
|
{
|
|
unsigned int temp;
|
|
mRdWrLock.lockForWrite();
|
|
mOutputBuffer &= ~FlagMask;
|
|
temp = mOutputBuffer;
|
|
mRdWrLock.unlock();
|
|
|
|
/* mSimulatorPtr->UpdateOutputsDisplay(temp)*/;
|
|
emit UpdateOutputsDisplay(temp);
|
|
|
|
return RET_OK;
|
|
}
|
|
|
|
|
|
unsigned int CSImulatorOutputModule::ToggleOutputFlags(quint32 FlagMask)
|
|
{
|
|
unsigned int temp;
|
|
mRdWrLock.lockForWrite();
|
|
mOutputBuffer ^= FlagMask;
|
|
temp = mOutputBuffer;
|
|
mRdWrLock.unlock();
|
|
|
|
// mSimulatorPtr->UpdateOutputsDisplay(temp);
|
|
emit UpdateOutputsDisplay(temp);
|
|
|
|
return RET_OK;
|
|
}
|