MCPcopy Create free account
hub / github.com/Serial-Studio/Serial-Studio / valueSetH

Method valueSetH

app/src/API/Handlers/DataTablesHandler.cpp:797–828  ·  view source on GitHub ↗

* @brief Writes a register's live value by handle; written=false for stale/invalid/constant. */

Source from the content-addressed store, hash-verified

795 * @brief Writes a register's live value by handle; written=false for stale/invalid/constant.
796 */
797API::CommandResponse API::Handlers::DataTablesHandler::valueSetH(const QString& id,
798 const QJsonObject& params)
799{
800 if (!params.contains(QStringLiteral("handle")))
801 return CommandResponse::makeError(
802 id, ErrorCode::MissingParam, QStringLiteral("Missing required parameter: handle"));
803
804 if (!params.contains(QStringLiteral("value")))
805 return CommandResponse::makeError(
806 id, ErrorCode::MissingParam, QStringLiteral("Missing required parameter: value"));
807
808 const qint64 handle =
809 static_cast<qint64>(SerialStudio::toDouble(params.value(QStringLiteral("handle"))));
810 const QVariant v = jsonToVariant(params.value(QStringLiteral("value")));
811
812 DataModel::RegisterValue rv;
813 rv.numericValue = SerialStudio::toDouble(v, &rv.isNumeric);
814 if (!rv.isNumeric)
815 rv.stringValue = v.toString();
816
817 auto& store = DataModel::FrameBuilder::instance().tableStore();
818 if (!store.isInitialized())
819 return CommandResponse::makeError(
820 id, ErrorCode::InvalidParam, QStringLiteral("Data-table store not initialized (no project)"));
821
822 const bool written = store.setByHandle(handle, rv);
823
824 QJsonObject result;
825 result[QStringLiteral("handle")] = static_cast<double>(handle);
826 result[QStringLiteral("written")] = written;
827 return CommandResponse::makeSuccess(id, result);
828}

Callers

nothing calls this directly

Calls 5

jsonToVariantFunction · 0.85
isInitializedMethod · 0.80
setByHandleMethod · 0.80
containsMethod · 0.45
valueMethod · 0.45

Tested by

no test coverage detected