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