2323#include "st_dev.h"
2424#include "caps_firmwareUpdate.h"
2525
26+ static bool caps_firmwareUpdate_get_updateAvailable_value (caps_firmwareUpdate_data_t * caps_data )
27+ {
28+ if (!caps_data ) {
29+ printf ("caps_data is NULL\n" );
30+ return false;
31+ }
32+ return (* caps_data ).updateAvailable_value ;
33+ }
34+
35+ static void caps_firmwareUpdate_set_updateAvailable_value (caps_firmwareUpdate_data_t * caps_data , bool updateAvailable )
36+ {
37+ if (!caps_data ) {
38+ printf ("caps_data is NULL\n" );
39+ return ;
40+ }
41+ if ((* caps_data ).updateAvailable_value ) {
42+ (* caps_data ).updateAvailable_value = false;
43+ }
44+ (* caps_data ).updateAvailable_value = updateAvailable ;
45+ }
46+
47+ static void caps_firmwareUpdate_attr_updateAvailable_send (caps_firmwareUpdate_data_t * caps_data )
48+ {
49+ int sequence_no = -1 ;
50+
51+ if (!caps_data || !caps_data -> handle ) {
52+ printf ("fail to get handle\n" );
53+ return ;
54+ }
55+ if (!(* caps_data ).updateAvailable_value ) {
56+ printf ("warning:updateAvailable value is false\n" );
57+ }
58+
59+ ST_CAP_SEND_ATTR_BOOLEAN (caps_data -> handle ,
60+ (char * )caps_helper_firmwareUpdate .attr_updateAvailable .name ,
61+ (* caps_data ).updateAvailable_value ,
62+ NULL ,
63+ NULL ,
64+ sequence_no );
65+
66+ if (sequence_no < 0 )
67+ printf ("fail to send state value\n" );
68+ else
69+ printf ("Sequence number return : %d\n" , sequence_no );
70+ }
71+
2672static int caps_firmwareUpdate_attr_lastUpdateStatus_str2idx (const char * value )
2773{
2874 int index ;
@@ -368,6 +414,8 @@ static void caps_firmwareUpdate_init_cb(IOT_CAP_HANDLE *handle, void *usr_data)
368414 caps_firmwareUpdate_attr_lastUpdateTime_send (caps_data );
369415 caps_firmwareUpdate_attr_availableVersion_send (caps_data );
370416 caps_firmwareUpdate_attr_lastUpdateStatusReason_send (caps_data );
417+ caps_firmwareUpdate_set_updateAvailable_value (caps_data , false);
418+ caps_firmwareUpdate_attr_updateAvailable_send (caps_data );
371419}
372420
373421caps_firmwareUpdate_data_t * caps_firmwareUpdate_initialize (IOT_CTX * ctx , const char * component , void * init_usr_cb , void * usr_data )
@@ -386,6 +434,9 @@ caps_firmwareUpdate_data_t *caps_firmwareUpdate_initialize(IOT_CTX *ctx, const c
386434 caps_data -> init_usr_cb = init_usr_cb ;
387435 caps_data -> usr_data = usr_data ;
388436
437+ caps_data -> get_updateAvailable_value = caps_firmwareUpdate_get_updateAvailable_value ;
438+ caps_data -> set_updateAvailable_value = caps_firmwareUpdate_set_updateAvailable_value ;
439+ caps_data -> attr_updateAvailable_send = caps_firmwareUpdate_attr_updateAvailable_send ;
389440 caps_data -> get_lastUpdateStatus_value = caps_firmwareUpdate_get_lastUpdateStatus_value ;
390441 caps_data -> set_lastUpdateStatus_value = caps_firmwareUpdate_set_lastUpdateStatus_value ;
391442 caps_data -> attr_lastUpdateStatus_str2idx = caps_firmwareUpdate_attr_lastUpdateStatus_str2idx ;
0 commit comments