* @brief Get current connection status and configuration */
| 379 | * @brief Get current connection status and configuration |
| 380 | */ |
| 381 | API::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. |
nothing calls this directly
no test coverage detected