@@ -40,11 +40,13 @@ class write_command : public WriteClient::Callback {
40
40
public:
41
41
/* * Constructor for command with an attribute path**/
42
42
write_command (uint64_t node_id, uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
43
- const char *attribute_val_str)
43
+ const char *attribute_val_str,
44
+ const chip::Optional<uint16_t > timed_write_timeout_ms = chip::NullOptional)
44
45
: m_node_id(node_id)
45
46
, m_attr_path(endpoint_id, cluster_id, attribute_id)
46
47
, m_chunked_callback(this )
47
48
, m_attr_val(attribute_val_str, custom_encodable_type::interaction_type::k_write_attr)
49
+ , m_timed_write_timeout_ms(timed_write_timeout_ms)
48
50
, on_device_connected_cb(on_device_connected_fcn, this )
49
51
, on_device_connection_failure_cb(on_device_connection_failure_fcn, this ) {}
50
52
@@ -77,6 +79,7 @@ class write_command : public WriteClient::Callback {
77
79
AttributePathParams m_attr_path;
78
80
ChunkedWriteCallback m_chunked_callback;
79
81
custom_encodable_type m_attr_val;
82
+ chip::Optional<uint16_t > m_timed_write_timeout_ms;
80
83
81
84
static void on_device_connected_fcn (void *context, ExchangeManager &exchangeMgr,
82
85
const SessionHandle &sessionHandle);
@@ -94,12 +97,14 @@ class write_command : public WriteClient::Callback {
94
97
* @param[in] attribute_id AttributeId
95
98
* @param[in] attr_val_json_str Attribute value string with JSON format
96
99
* (https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html#write-attribute-commands)
100
+ * @param[in] timed_write_timeout_ms Timeout in millisecond for timed-write attribute
97
101
*
98
102
* @return ESP_OK on success.
99
103
* @return error in case of failure.
100
104
*/
101
105
esp_err_t send_write_attr_command (uint64_t node_id, uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
102
- const char *attr_val_json_str);
106
+ const char *attr_val_json_str,
107
+ chip::Optional<uint16_t > timed_write_timeout_ms = chip::NullOptional);
103
108
104
109
} // namespace controller
105
110
} // namespace esp_matter
0 commit comments