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

Method setDeviceIndex

app/src/API/Handlers/HIDHandler.cpp:76–102  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

74 * @brief Select HID device by list index.
75 */
76API::CommandResponse API::Handlers::HIDHandler::setDeviceIndex(const QString& id,
77 const QJsonObject& params)
78{
79 if (!params.contains(QStringLiteral("deviceIndex"))) {
80 return CommandResponse::makeError(
81 id, ErrorCode::MissingParam, QStringLiteral("Missing required parameter: deviceIndex"));
82 }
83
84 const int device_index = params.value(QStringLiteral("deviceIndex")).toInt();
85 const auto& devices = IO::ConnectionManager::instance().hid()->deviceList();
86
87 if (device_index < 0 || device_index >= devices.count()) {
88 return CommandResponse::makeError(
89 id,
90 ErrorCode::InvalidParam,
91 QString(QStringLiteral("Invalid deviceIndex: %1. Valid range: 0-%2"))
92 .arg(device_index)
93 .arg(devices.count() - 1));
94 }
95
96 IO::ConnectionManager::instance().hid()->setDeviceIndex(device_index);
97
98 QJsonObject result;
99 result[QStringLiteral("deviceIndex")] = device_index;
100 result[QStringLiteral("deviceName")] = devices.at(device_index);
101 return CommandResponse::makeSuccess(id, result);
102}
103
104//--------------------------------------------------------------------------------------------------
105// Getters

Callers

nothing calls this directly

Calls 5

hidMethod · 0.80
containsMethod · 0.45
valueMethod · 0.45
deviceListMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected