/******************************************************************************* * * * Société de Transports de Montréal. * * 2012 * * * * Projet Zones Tests * * * * * * * *******************************************************************************/ /* Description: Classe qui offre une interface avec la librairie de SeaLevel pour les modules externes. */ /* ************************************************************************** */ /* Revision: ### 20121213 JFM Verision d'origine. ### YYYYMMDD Description du besoin ou du bug Description du changement. */ /* ************************************************************************** */ #include "Seaiolibinterface.h" CSeaIOLibInterface::CSeaIOLibInterface(): mIsOpened(false) { } CSeaIOLibInterface::~CSeaIOLibInterface() { mSeaMaxInterface.Close(); } void CSeaIOLibInterface::CloseSeaMaxInterface() { mSeaMaxInterface.Close(); } unsigned int CSeaIOLibInterface::OpenSeaMaxInterface(QString MasterModuleIP) { QString Address = "sealevel_tcp://"; Address += MasterModuleIP; CEngLog::instance()->AddLogString(QString("Connexion aux modules externes : " + Address),1); if(mSeaMaxInterface.Open(Address.toAscii().data()) < 0) { //Try to connect 2 times... sometimes the first connection is not successful if(mSeaMaxInterface.Open(Address.toAscii().data()) < 0) { CEngLog::instance()->AddLogString(QString("").sprintf("Connexion aux modules externes impossible à l'adresse: %s",Address.toAscii().data()),1); mIsOpened = false; return RET_ERROR; } } CEngLog::instance()->AddLogString("Connexion aux modules externes établie",3); mIsOpened = true; return RET_OK; } CSeaMaxLin *CSeaIOLibInterface::GetSeaMaxInterfacePtr() { if(mIsOpened == true) return &mSeaMaxInterface; else return NULL; }