From ef497b1732a3f7e4852beb4dc5316c4426529822 Mon Sep 17 00:00:00 2001 From: Suhas Shankar Date: Wed, 30 Oct 2024 19:47:11 +0000 Subject: [PATCH] uic: zpc: UIC-3406: Fixes Notification CC CTT testing issues (cherry picked from commit 457ec469fce4472bbca29dc1513b3f8e51c352c2) Forwarded: /~https://github.com/SiliconLabsSoftware/z-wave-protocol-controller/pull/11 Signed-off-by: Philippe Coval --- .../src/zwave_command_class_notification.cpp | 18 ++++++++++++------ .../zwave_command_class_notification_test.c | 2 +- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/applications/zpc/components/zwave_command_classes/src/zwave_command_class_notification.cpp b/applications/zpc/components/zwave_command_classes/src/zwave_command_class_notification.cpp index 148e7399a..57aebad4e 100644 --- a/applications/zpc/components/zwave_command_classes/src/zwave_command_class_notification.cpp +++ b/applications/zpc/components/zwave_command_classes/src/zwave_command_class_notification.cpp @@ -60,7 +60,7 @@ static constexpr uint8_t PUSH_REPORT_STATUS_ENABLED = 0xFF; static constexpr uint8_t PULL_REPORT_STATUS_NOT_EMPTY = 0x00; static constexpr uint8_t PULL_REPORT_STATUS_EMPTY = 0xFE; -static constexpr uint32_t PULL_NODE_PROBE_INTERVAL = 10800; //in sec (3h * 60m * 60s) +static constexpr uint32_t PULL_NODE_PROBE_INTERVAL = 10800000; //in msec (3h * 60m * 60s * 1000ms) enum class mode_discovery_state_t : uint8_t { PUSH_MODE_DETECTED = 0x00, @@ -214,9 +214,15 @@ void zwave_command_class_notification_pull_push_discovery( zwave_command_class_agi_test_perform_discovery(groupings_node); return; } - attribute_resolver_set_resolution_listener( - groupings_node, - zwave_command_class_agi_test_perform_discovery); + if (groupings_node.is_valid()) { + attribute_resolver_set_resolution_listener( + groupings_node, + zwave_command_class_agi_test_perform_discovery); + } + else + { + sl_log_warning(LOG_TAG, "supported grouping not yet available"); + } discovery_state = mode_discovery_state_t::AGI_TEST_PENDING; return; @@ -418,7 +424,7 @@ static sl_status_t zwave_command_class_notification_report_cmd_handler( sending_node_unid, connection_info->remote.endpoint_id); auto mode_node = ep_node.child_by_type(ATTRIBUTE(MODE)); - uint8_t mode; + uint8_t mode = PUSH_MODE; if (discovery_state == mode_discovery_state_t::NOTIFICATION_TEST_PENDING) { @@ -993,7 +999,7 @@ static sl_status_t zwave_command_class_notification_control_handler( void zwave_command_class_notification_on_version_attribute_update( attribute_store_node_t updated_node, attribute_store_change_t change) { - if (change == ATTRIBUTE_DELETED) { + if (change == ATTRIBUTE_DELETED || change == ATTRIBUTE_CREATED) { return; } diff --git a/applications/zpc/components/zwave_command_classes/test/zwave_command_class_notification_test.c b/applications/zpc/components/zwave_command_classes/test/zwave_command_class_notification_test.c index 2fd891af1..12ae2de81 100644 --- a/applications/zpc/components/zwave_command_classes/test/zwave_command_class_notification_test.c +++ b/applications/zpc/components/zwave_command_classes/test/zwave_command_class_notification_test.c @@ -2021,7 +2021,7 @@ void test_zwave_command_class_notification_trigger_probe() attribute_store_set_node_attribute_value_ExpectAndReturn(end_device3_probe_node, REPORTED_ATTRIBUTE, 0, 0, SL_STATUS_OK); //zwave_command_class_notification_trigger_probe(); - contiki_test_helper_run(10800); + contiki_test_helper_run(10800000); } void test_zwave_command_class_notification_pull_mode_empty_queue_report()