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

Method getStatus

app/src/API/Handlers/IOManagerHandler.cpp:381–423  ·  view source on GitHub ↗

* @brief Get current connection status and configuration */

Source from the content-addressed store, hash-verified

379 * @brief Get current connection status and configuration
380 */
381API::CommandResponse API::Handlers::IOManagerHandler::getStatus(const QString& id,
382 const QJsonObject& params)
383{
384 Q_UNUSED(params)
385
386 auto& manager = IO::ConnectionManager::instance();
387 const int busInt = static_cast<int>(manager.busType());
388 const bool ok = manager.configurationOk();
389 const bool live = manager.isConnected();
390 const bool paused = manager.paused();
391
392 QJsonObject result;
393 result[QStringLiteral("isConnected")] = live;
394 result[QStringLiteral("paused")] = paused;
395 result[Keys::BusType] = busInt;
396 result[QStringLiteral("busTypeLabel")] = API::EnumLabels::busTypeLabel(busInt);
397 result[QStringLiteral("busTypeSlug")] = API::EnumLabels::busTypeSlug(busInt);
398 result[QStringLiteral("configurationOk")] = ok;
399 result[QStringLiteral("readOnly")] = manager.readOnly();
400 result[QStringLiteral("readWrite")] = manager.readWrite();
401
402 const auto& availableBuses = manager.availableBuses();
403 if (busInt >= 0 && busInt < availableBuses.count())
404 result[QStringLiteral("busTypeName")] = availableBuses.at(busInt);
405
406 QString summary;
407 if (live)
408 summary = QStringLiteral("Connected via %1%2.")
409 .arg(API::EnumLabels::busTypeLabel(busInt))
410 .arg(paused ? QStringLiteral(" (paused)") : QString());
411 else if (!ok)
412 summary = QStringLiteral("Not connected. The %1 driver is not fully "
413 "configured yet.")
414 .arg(API::EnumLabels::busTypeLabel(busInt));
415 else
416 summary = QStringLiteral("Not connected. %1 is configured and ready "
417 "to open.")
418 .arg(API::EnumLabels::busTypeLabel(busInt));
419
420 result[QStringLiteral("_summary")] = summary;
421
422 return CommandResponse::makeSuccess(id, result);
423}
424
425/**
426 * @brief Returns the latest raw frame captured by FrameBuilder: payload plus parser tokens.

Callers

nothing calls this directly

Calls 8

busTypeMethod · 0.80
readOnlyMethod · 0.80
readWriteMethod · 0.80
availableBusesMethod · 0.80
configurationOkMethod · 0.45
isConnectedMethod · 0.45
pausedMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected