Skip to content
Snippets Groups Projects
Verified Commit 1742cd92 authored by Tobias Triffterer's avatar Tobias Triffterer :house_with_garden:
Browse files

Add Parser for fillHistogram Command

As all commands that contain arguments, a dedicated parser method is
added for this one, too.
parent 5fcd8a3c
No related branches found
No related tags found
No related merge requests found
Pipeline #3019 passed with stage
in 48 seconds
...@@ -79,6 +79,8 @@ Command Command::fromString(const QString& source) ...@@ -79,6 +79,8 @@ Command Command::fromString(const QString& source)
return parseUpdateExperimentState(rootobj); return parseUpdateExperimentState(rootobj);
case Action::setTargetState: case Action::setTargetState:
return parseSetTargetState(rootobj); return parseSetTargetState(rootobj);
case Action::fillHistogram:
return parseFillHistogram(rootobj);
case Action::sendHistogramUpdate: case Action::sendHistogramUpdate:
case Action::moveTargetCloser: case Action::moveTargetCloser:
case Action::moveTargetFarther: case Action::moveTargetFarther:
...@@ -93,7 +95,6 @@ Command Command::fromString(const QString& source) ...@@ -93,7 +95,6 @@ Command Command::fromString(const QString& source)
// Not yet implemented: // Not yet implemented:
case Action::queryServerInformation: case Action::queryServerInformation:
case Action::updateHistogram: case Action::updateHistogram:
case Action::fillHistogram:
return Command(); return Command();
default: default:
return Command(); return Command();
...@@ -228,6 +229,20 @@ Protocol::Command Protocol::Command::parseSetTargetState(const QJsonObject& inpu ...@@ -228,6 +229,20 @@ Protocol::Command Protocol::Command::parseSetTargetState(const QJsonObject& inpu
); );
} }
Protocol::Command Protocol::Command::parseFillHistogram(const QJsonObject& input)
{
if (!input.keys().contains(QStringLiteral("adcchannels")) || !input.value(QStringLiteral("adcchannels")).isString()) {
logError(QStringLiteral("fillHistogram command does not contain adcchannels."));
return Command();
}
return Command(
Action::fillHistogram,
Arguments{std::make_pair(QStringLiteral("adcchannels"), input.value(QStringLiteral("adcchannels")).toString())},
input.value(QStringLiteral("token")).toString()
);
}
QString Command::toString() const QString Command::toString() const
{ {
if (action == Action::invalid) if (action == Action::invalid)
......
...@@ -74,6 +74,7 @@ private: ...@@ -74,6 +74,7 @@ private:
static Command parseError(const QJsonObject& input); static Command parseError(const QJsonObject& input);
static Command parseUpdateExperimentState(const QJsonObject& input); static Command parseUpdateExperimentState(const QJsonObject& input);
static Command parseSetTargetState(const QJsonObject& input); static Command parseSetTargetState(const QJsonObject& input);
static Command parseFillHistogram(const QJsonObject& input);
static QString getActionString(const Action action); static QString getActionString(const Action action);
}; };
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment