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

Method setInterfaceIndex

app/src/API/Handlers/CANBusHandler.cpp:141–168  ·  view source on GitHub ↗

* @brief Select CAN interface by index */

Source from the content-addressed store, hash-verified

139 * @brief Select CAN interface by index
140 */
141API::CommandResponse API::Handlers::CANBusHandler::setInterfaceIndex(const QString& id,
142 const QJsonObject& params)
143{
144 if (!params.contains(QStringLiteral("interfaceIndex"))) {
145 return CommandResponse::makeError(
146 id, ErrorCode::MissingParam, QStringLiteral("Missing required parameter: interfaceIndex"));
147 }
148
149 const int interfaceIndex = params.value(QStringLiteral("interfaceIndex")).toInt();
150 auto* canbus = IO::ConnectionManager::instance().canBus();
151 const auto& interfaceList = canbus->interfaceList();
152
153 if (interfaceIndex < 0 || interfaceIndex >= interfaceList.count()) {
154 return CommandResponse::makeError(
155 id,
156 ErrorCode::InvalidParam,
157 QStringLiteral("Invalid interfaceIndex: %1. Valid range: 0-%2")
158 .arg(interfaceIndex)
159 .arg(interfaceList.count() - 1));
160 }
161
162 canbus->setInterfaceIndex(static_cast<quint8>(interfaceIndex));
163
164 QJsonObject result;
165 result[QStringLiteral("interfaceIndex")] = interfaceIndex;
166 result[QStringLiteral("interfaceName")] = interfaceList.at(interfaceIndex);
167 return CommandResponse::makeSuccess(id, result);
168}
169
170/**
171 * @brief Set CAN bitrate

Callers

nothing calls this directly

Calls 5

canBusMethod · 0.80
interfaceListMethod · 0.80
containsMethod · 0.45
valueMethod · 0.45
countMethod · 0.45

Tested by

no test coverage detected