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

Method setDeviceIndex

app/src/API/Handlers/USBHandler.cpp:98–124  ·  view source on GitHub ↗

* @brief Select USB device by list index. */

Source from the content-addressed store, hash-verified

96 * @brief Select USB device by list index.
97 */
98API::CommandResponse API::Handlers::USBHandler::setDeviceIndex(const QString& id,
99 const QJsonObject& params)
100{
101 if (!params.contains(QStringLiteral("deviceIndex"))) {
102 return CommandResponse::makeError(
103 id, ErrorCode::MissingParam, QStringLiteral("Missing required parameter: deviceIndex"));
104 }
105
106 const int device_index = params.value(QStringLiteral("deviceIndex")).toInt();
107 const auto& devices = IO::ConnectionManager::instance().usb()->deviceList();
108
109 if (device_index < 0 || device_index >= devices.count()) {
110 return CommandResponse::makeError(
111 id,
112 ErrorCode::InvalidParam,
113 QString(QStringLiteral("Invalid deviceIndex: %1. Valid range: 0-%2"))
114 .arg(device_index)
115 .arg(devices.count() - 1));
116 }
117
118 IO::ConnectionManager::instance().usb()->setDeviceIndex(device_index);
119
120 QJsonObject result;
121 result[QStringLiteral("deviceIndex")] = device_index;
122 result[QStringLiteral("deviceName")] = devices.at(device_index);
123 return CommandResponse::makeSuccess(id, result);
124}
125
126/**
127 * @brief Set USB transfer mode.

Callers

nothing calls this directly

Calls 5

usbMethod · 0.80
containsMethod · 0.45
valueMethod · 0.45
deviceListMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected