blob: c7628a8c3ba73c8a2261f89923be38eb17bbb251 [file] [log] [blame]
/*
*
* Copyright (c) 2024 Project CHIP Authors
* All rights reserved.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#pragma once
#include <controller/CommissioningWindowParams.h>
#include <platform/CHIPDeviceLayer.h>
constexpr uint16_t kFabricAdminServerPort = 33001;
/**
* Initializes the RPC client by setting the server port and starting packet processing.
*
* @param rpcServerPort The port number of the RPC server.
* @return CHIP_ERROR An error code indicating the success or failure of the initialization process.
* - CHIP_NO_ERROR: Initialization was successful.
* - Other error codes indicating specific failure reasons.
*/
CHIP_ERROR InitRpcClient(uint16_t rpcServerPort);
/**
* Opens a commissioning window for a specified node using setup PIN (passcode).
*
* @param params Params for opening the commissioning window using passcode.
* @return CHIP_ERROR An error code indicating the success or failure of the operation.
* - CHIP_NO_ERROR: The RPC command was successfully processed.
* - CHIP_ERROR_BUSY: Another commissioning window is currently in progress.
* - CHIP_ERROR_INTERNAL: An internal error occurred.
*/
CHIP_ERROR
OpenCommissioningWindow(chip::Controller::CommissioningWindowPasscodeParams params);
/**
* Opens a commissioning window for a specified node using pre-computed PAKE passcode verifier.
*
* @param params Params for opening the commissioning window using verifier.
* @return CHIP_ERROR An error code indicating the success or failure of the operation.
* - CHIP_NO_ERROR: The RPC command was successfully sent.
* - CHIP_ERROR_BUSY: Another commissioning window is currently in progress.
* - CHIP_ERROR_INTERNAL: An internal error occurred.
*/
CHIP_ERROR
OpenCommissioningWindow(chip::Controller::CommissioningWindowVerifierParams params);
/**
* Commission a node using the specified parameters.
*
* This function initiates the commissioning process for a node, utilizing
* the provided passcode parameters, vendor ID, and product ID.
*
* @param params Parameters required for commissioning the device using passcode.
* @param vendorId The Vendor ID (VID) of the device being commissioned. This identifies
* the manufacturer of the device.
* @param productId The Product ID (PID) of the device being commissioned. This identifies
* the specific product within the vendor's lineup.
*
* @return CHIP_ERROR An error code indicating the success or failure of the operation.
* - CHIP_NO_ERROR: The RPC command was successfully sent and the commissioning process was initiated.
* - CHIP_ERROR_INTERNAL: An internal error occurred during the preparation or sending of the command.
*/
CHIP_ERROR
CommissionNode(chip::Controller::CommissioningWindowPasscodeParams params, chip::VendorId vendorId, uint16_t productId);
CHIP_ERROR KeepActive(chip::NodeId nodeId, uint32_t stayActiveDurationMs);