blob: 2455bc56c8400ff768f0c636a613186c234dd31f [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>
/**
* Sets the RPC server port to which the RPC client will connect.
*
* @param port The port number.
*/
void SetRpcRemoteServerPort(uint16_t port);
/**
* Starts packet processing for the RPC client.
*
* @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 StartRpcClient();
/**
* 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, uint32_t timeoutMs);