blob: 52c84f5141dea29294917cf94d8045653e46e14f [file] [log] [blame]
/*
* Copyright (c) 2022 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.
*
*/
package com.matter.controller;
import chip.devicecontroller.ChipDeviceController;
import chip.devicecontroller.ControllerParams;
import com.matter.controller.commands.common.*;
import com.matter.controller.commands.discover.*;
import com.matter.controller.commands.pairing.*;
import java.util.ArrayList;
public class Main {
private static void registerCommandsDiscover(
ChipDeviceController controller,
CommandManager commandManager,
CredentialsIssuer credentialsIssuer) {
ArrayList<Command> clusterCommands = new ArrayList<Command>();
DiscoverCommand discoverCommand = new DiscoverCommand(controller, credentialsIssuer);
DiscoverCommissionablesCommand discoverCommissionablesCommand =
new DiscoverCommissionablesCommand(controller, credentialsIssuer);
DiscoverCommissionersCommand discoverCommissionersCommand =
new DiscoverCommissionersCommand(controller, credentialsIssuer);
clusterCommands.add(discoverCommand);
clusterCommands.add(discoverCommissionablesCommand);
clusterCommands.add(discoverCommissionersCommand);
commandManager.register("discover", clusterCommands);
}
private static void registerCommandsPairing(
ChipDeviceController controller,
CommandManager commandManager,
CredentialsIssuer credentialsIssuer) {
ArrayList<Command> clusterCommands = new ArrayList<Command>();
UnpairCommand unpairCommand = new UnpairCommand(controller, credentialsIssuer);
PairCodeCommand pairCodeCommand = new PairCodeCommand(controller, credentialsIssuer);
PairCodePaseCommand pairCodePaseCommand =
new PairCodePaseCommand(controller, credentialsIssuer);
PairCodeWifiCommand pairCodeWifiCommand =
new PairCodeWifiCommand(controller, credentialsIssuer);
PairCodeThreadCommand pairCodeThreadCommand =
new PairCodeThreadCommand(controller, credentialsIssuer);
PairEthernetCommand pairEthernetCommand =
new PairEthernetCommand(controller, credentialsIssuer);
PairOnNetworkCommand pairOnNetworkCommand =
new PairOnNetworkCommand(controller, credentialsIssuer);
PairOnNetworkShortCommand pairOnNetworkShortCommand =
new PairOnNetworkShortCommand(controller, credentialsIssuer);
PairOnNetworkLongCommand pairOnNetworkLongCommand =
new PairOnNetworkLongCommand(controller, credentialsIssuer);
PairOnNetworkVendorCommand pairOnNetworkVendorCommand =
new PairOnNetworkVendorCommand(controller, credentialsIssuer);
PairOnNetworkCommissioningModeCommand pairOnNetworkCommissioningModeCommand =
new PairOnNetworkCommissioningModeCommand(controller, credentialsIssuer);
PairOnNetworkCommissionerCommand pairOnNetworkCommissionerCommand =
new PairOnNetworkCommissionerCommand(controller, credentialsIssuer);
PairOnNetworkDeviceTypeCommand pairOnNetworkDeviceTypeCommand =
new PairOnNetworkDeviceTypeCommand(controller, credentialsIssuer);
PairOnNetworkInstanceNameCommand pairOnNetworkInstanceNameCommand =
new PairOnNetworkInstanceNameCommand(controller, credentialsIssuer);
clusterCommands.add(unpairCommand);
clusterCommands.add(pairCodeCommand);
clusterCommands.add(pairCodePaseCommand);
clusterCommands.add(pairCodeWifiCommand);
clusterCommands.add(pairCodeThreadCommand);
clusterCommands.add(pairEthernetCommand);
clusterCommands.add(pairOnNetworkCommand);
clusterCommands.add(pairOnNetworkShortCommand);
clusterCommands.add(pairOnNetworkLongCommand);
clusterCommands.add(pairOnNetworkVendorCommand);
clusterCommands.add(pairOnNetworkCommissioningModeCommand);
clusterCommands.add(pairOnNetworkCommissionerCommand);
clusterCommands.add(pairOnNetworkDeviceTypeCommand);
clusterCommands.add(pairOnNetworkInstanceNameCommand);
commandManager.register("pairing", clusterCommands);
}
public static void main(String[] args) {
ChipDeviceController controller =
new ChipDeviceController(
ControllerParams.newBuilder()
.setUdpListenPort(0)
.setControllerVendorId(0xFFF1)
.build());
CredentialsIssuer credentialsIssuer = new CredentialsIssuer();
CommandManager commandManager = new CommandManager();
registerCommandsDiscover(controller, commandManager, credentialsIssuer);
registerCommandsPairing(controller, commandManager, credentialsIssuer);
try {
commandManager.run(args);
} catch (IllegalArgumentException e) {
System.out.println("Arguments init failed with exception: " + e.getMessage());
} catch (Exception e) {
System.out.println("Run command failed with exception: " + e.getMessage());
}
}
}