ZT/sources/Simulator/SImulatorOutputModule.cpp

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