@@ -42,10 +42,12 @@ class write_command : public WriteClient::Callback {
42
42
public:
43
43
/* * Constructor for command with an attribute path**/
44
44
write_command (uint64_t node_id, uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
45
- const char *attribute_val_str)
45
+ const char *attribute_val_str,
46
+ const chip::Optional<uint16_t > timed_write_timeout_ms = chip::NullOptional)
46
47
: m_node_id(node_id)
47
48
, m_attr_path(endpoint_id, cluster_id, attribute_id)
48
49
, m_chunked_callback(this )
50
+ , m_timed_write_timeout_ms(timed_write_timeout_ms)
49
51
, on_device_connected_cb(on_device_connected_fcn, this )
50
52
, on_device_connection_failure_cb(on_device_connection_failure_fcn, this )
51
53
{
@@ -87,6 +89,7 @@ class write_command : public WriteClient::Callback {
87
89
AttributePathParams m_attr_path;
88
90
ChunkedWriteCallback m_chunked_callback;
89
91
char m_attr_val_str[k_attr_val_str_buf_size];
92
+ chip::Optional<uint16_t > m_timed_write_timeout_ms;
90
93
91
94
static void on_device_connected_fcn (void *context, ExchangeManager &exchangeMgr,
92
95
const SessionHandle &sessionHandle);
@@ -104,12 +107,14 @@ class write_command : public WriteClient::Callback {
104
107
* @param[in] attribute_id AttributeId
105
108
* @param[in] attr_val_json_str Attribute value string with JSON format
106
109
* (https://docs.espressif.com/projects/esp-matter/en/latest/esp32/developing.html#write-attribute-commands)
110
+ * @param[in] timed_write_timeout_ms Timeout in millisecond for timed-write attribute
107
111
*
108
112
* @return ESP_OK on success.
109
113
* @return error in case of failure.
110
114
*/
111
115
esp_err_t send_write_attr_command (uint64_t node_id, uint16_t endpoint_id, uint32_t cluster_id, uint32_t attribute_id,
112
- const char *attr_val_json_str);
116
+ const char *attr_val_json_str,
117
+ chip::Optional<uint16_t > timed_write_timeout_ms = chip::NullOptional);
113
118
114
119
} // namespace controller
115
120
} // namespace esp_matter
0 commit comments