blob: 997c1b92b0ebb4dc4e69e9c2a2508bfe354512f8 [file] [log] [blame]
/*
* Copyright (c) 2023 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 com.matter.controller.commands.common.Command
import com.matter.controller.commands.common.CommandManager
import com.matter.controller.commands.common.CredentialsIssuer
import com.matter.controller.commands.pairing.PairOnNetworkLongCommand
import com.matter.controller.commands.pairing.PairOnNetworkLongImInvokeCommand
import com.matter.controller.commands.pairing.PairOnNetworkLongImReadCommand
import com.matter.controller.commands.pairing.PairOnNetworkLongImSubscribeCommand
import com.matter.controller.commands.pairing.PairOnNetworkLongImWriteCommand
import matter.controller.ControllerParams
import matter.controller.MatterController
import matter.controller.MatterControllerImpl
private fun getPairingCommands(
controller: MatterController,
credentialsIssuer: CredentialsIssuer
): List<Command> {
return listOf(
PairOnNetworkLongCommand(controller, credentialsIssuer),
)
}
private fun getImCommands(
controller: MatterController,
credentialsIssuer: CredentialsIssuer
): List<Command> {
return listOf(
PairOnNetworkLongImReadCommand(controller, credentialsIssuer),
PairOnNetworkLongImSubscribeCommand(controller, credentialsIssuer),
PairOnNetworkLongImWriteCommand(controller, credentialsIssuer),
PairOnNetworkLongImInvokeCommand(controller, credentialsIssuer),
)
}
fun main(args: Array<String>) {
val controller: MatterController = MatterControllerImpl(ControllerParams(countryCode = "US"))
val credentialsIssuer = CredentialsIssuer()
val commandManager = CommandManager()
commandManager.register("pairing", getPairingCommands(controller, credentialsIssuer))
commandManager.register("im", getImCommands(controller, credentialsIssuer))
try {
commandManager.run(args)
} catch (e: Exception) {
println("Run command failed with exception: " + e.message)
controller.close()
System.exit(1)
}
controller.close()
}