refs #848, parse command line in simulator

* added default implementation
* sims can override parseDetails for specific cmd lines
* enable/disable FSUIPC in fscommon part
* added useFsuipc(bool on)
This commit is contained in:
Klaus Basan
2016-12-31 05:09:26 +01:00
committed by Mathew Sutcliffe
parent 15020b2d5f
commit c609c555b4
5 changed files with 78 additions and 6 deletions

View File

@@ -9,6 +9,7 @@
#include "simulatorfscommon.h"
#include "blackcore/webdataservices.h"
#include "blackmisc/simplecommandparser.h"
#include "blackmisc/logmessage.h"
#include "blackmisc/stringutils.h"
@@ -52,6 +53,17 @@ namespace BlackSimPlugin
this->m_simulatorInternals = s;
}
bool CSimulatorFsCommon::parseDetails(const CSimpleCommandParser &parser)
{
if (parser.matchesPart(1, "fsuipc") && parser.hasPart(2))
{
const bool on = parser.toBool(2);
const bool s = useFsuipc(on);
return s;
}
return false;
}
bool CSimulatorFsCommon::disconnectFrom()
{
if (this->m_fsuipc) { this->m_fsuipc->disconnect(); }
@@ -67,6 +79,21 @@ namespace BlackSimPlugin
return !m_fsuipc.isNull() && m_fsuipc->isConnected();
}
bool CSimulatorFsCommon::useFsuipc(bool on)
{
if (!m_fsuipc) { return false; } // no FSUIPC available
m_useFsuipc = on;
if (on)
{
m_useFsuipc = m_fsuipc->connect();
}
else
{
m_fsuipc->disconnect();
}
return m_useFsuipc;
}
CTime CSimulatorFsCommon::getTimeSynchronizationOffset() const
{
return m_syncTimeOffset;