WIP: use chip tool on host to detect success
diff --git a/local_agent/local_agent.py b/local_agent/local_agent.py
index 25398d1..9ca947f 100644
--- a/local_agent/local_agent.py
+++ b/local_agent/local_agent.py
@@ -95,9 +95,9 @@
requests.
"""
- _REPORT_INFO_INTERVAL_SECONDS = 30
+ _REPORT_INFO_INTERVAL_SECONDS = 30000
_REPORT_INFO_THREAD_TERMINATION_WAIT_SECONDS = 10
- _POLL_RPC_COOL_DOWN_SECONDS = 1
+ _POLL_RPC_COOL_DOWN_SECONDS = 10000
_POLL_RPC_THREAD_TERMINATION_WAIT_SECONDS = 10
_MAIN_THREAD_KEEP_ALIVE_COOLDOWN_SECONDS = 1
@@ -612,3 +612,5 @@
scheme=ams_scheme)
proc = LocalAgentProcess(client=client, artifacts_dir=artifacts_dir)
proc.run()
+
+main()
diff --git a/local_agent/translation_layer/gdm_manager.py b/local_agent/translation_layer/gdm_manager.py
index 91048b2..4e33b4f 100644
--- a/local_agent/translation_layer/gdm_manager.py
+++ b/local_agent/translation_layer/gdm_manager.py
@@ -56,47 +56,68 @@
with self._mgr_lock:
self._mgr.detect(force_overwrite=self._first_detection,
log_directory=_DEVICE_DETECTION_LOG_DIR)
+
+ device_id = 'chip_tool-0000'
+ device_type = 'chip_tool'
+ serial_number = '00000000'
+
connected_devices = self._mgr.get_devices('all')
- for device_id, info in connected_devices.items():
- # The device has been removed.
- if not self._mgr.is_device_connected(device_id):
- continue
+ if not device_id in connected_devices:
+ return
- # The first time this device is detected.
- if device_id not in self._connected_devices:
- serial_number = info['persistent']['serial_number']
- device_type = info['persistent']['device_type']
+ if not self._mgr.is_device_connected(device_id):
+ return
- # Retrieve the Matter endpoints and clusters in the first detection.
- with self._mgr.create_and_close_device(device_id) as device:
- # If the device is not Matter device
- if not device.has_capabilities(["matter_endpoints"]):
- matter_endpoints = []
- cluster_capabilities = []
- else:
- matter_endpoints = device.matter_endpoints.get_supported_endpoints()
- endpoint_clusters_mapping = device.matter_endpoints.get_supported_endpoints_and_clusters()
- cluster_capabilities = list(set().union(*endpoint_clusters_mapping.values()))
+ with self._mgr.create_and_close_device(device_id) as device:
+ device.set_property("matter_node_id", 6666)
+ # devices has to be commissioned to chip tool first
+ matter_endpoints = device.matter_endpoints.get_supported_endpoints()
+ endpoint_clusters_mapping = device.matter_endpoints.get_supported_endpoints_and_clusters()
+ cluster_capabilities = list(set().union(*endpoint_clusters_mapping.values()))
- # Additional non-Matter capabilities.
- if device.has_capabilities([common.PWRPC_COMMON_CAPABILITY]):
- matter_endpoints.append(common.PWRPC_COMMON_CAPABILITY)
- cluster_capabilities.append(common.PWRPC_COMMON_CAPABILITY)
+ # connected_devices = self._mgr.get_devices('all')
+ # for device_id, info in connected_devices.items():
- # Therefore, we only need to update the command handlers once.
- self._update_handlers_cls_map(device_type, matter_endpoints)
+ # # The device has been removed.
+ # if not self._mgr.is_device_connected(device_id):
+ # continue
- # Store the device information in cache.
- device_info = {
- 'deviceId': device_id,
- 'serialNumber': serial_number,
- 'deviceType': device_type,
- 'capabilities': cluster_capabilities,
- }
- self._connected_devices[device_id] = device_info
+ # # The first time this device is detected.
+ # if device_id not in self._connected_devices:
+ # serial_number = info['persistent']['serial_number']
+ # device_type = info['persistent']['device_type']
- devices.append(self._connected_devices[device_id])
+ # # Retrieve the Matter endpoints and clusters in the first detection.
+ # with self._mgr.create_and_close_device(device_id) as device:
+ # # If the device is not Matter device
+ # if not device.has_capabilities(["matter_endpoints"]):
+ # matter_endpoints = []
+ # cluster_capabilities = []
+ # else:
+ # # devices has to be commissioned to chip tool first
+ # matter_endpoints = device.matter_endpoints.get_supported_endpoints()
+ # endpoint_clusters_mapping = device.matter_endpoints.get_supported_endpoints_and_clusters()
+ # cluster_capabilities = list(set(capabilities).union(*endpoint_clusters_mapping.values()))
+
+ # # (deprecate) Additional non-Matter capabilities.
+ # if device.has_capabilities([common.PWRPC_COMMON_CAPABILITY]):
+ # matter_endpoints.append(common.PWRPC_COMMON_CAPABILITY)
+ # cluster_capabilities.append(common.PWRPC_COMMON_CAPABILITY)
+
+ # Therefore, we only need to update the command handlers once.
+ self._update_handlers_cls_map(device_type, matter_endpoints)
+
+ # Store the device information in cache.
+ device_info = {
+ 'deviceId': device_id,
+ 'serialNumber': serial_number,
+ 'deviceType': device_type,
+ 'capabilities': cluster_capabilities,
+ }
+ self._connected_devices[device_id] = device_info
+
+ devices.append(self._connected_devices[device_id])
self._first_detection = False
@@ -167,3 +188,11 @@
"""Closes all open devices in GDM."""
with self._mgr_lock:
self._mgr.close_open_devices()
+
+
+
+def update_handlers_cls_map(
+ device_type: str, capabilities: List[str]) -> None:
+ return
+mgr = GdmManager(update_handlers_cls_map)
+mgr.detect_devices()
diff --git a/setup.py b/setup.py
index c813edf..5b92dc6 100644
--- a/setup.py
+++ b/setup.py
@@ -36,8 +36,7 @@
VERSION = get_version()
LICENSE = 'Copyright 2022 Google LLC'
-REQUIRED_MODULES = [
- 'gazoo-device >= 1.67.0', 'inflection', 'requests >= 2.25.0', 'wheel']
+REQUIRED_MODULES = ['inflection', 'requests >= 2.25.0', 'wheel']
TEST_REQUIRED_MODULES = {
'test': ['coverage', 'immutabledict', 'parameterized']}