1cc2a5f42SMilanka Ringwald /* 2cc2a5f42SMilanka Ringwald * Copyright (C) 2019 BlueKitchen GmbH 3cc2a5f42SMilanka Ringwald * 4cc2a5f42SMilanka Ringwald * Redistribution and use in source and binary forms, with or without 5cc2a5f42SMilanka Ringwald * modification, are permitted provided that the following conditions 6cc2a5f42SMilanka Ringwald * are met: 7cc2a5f42SMilanka Ringwald * 8cc2a5f42SMilanka Ringwald * 1. Redistributions of source code must retain the above copyright 9cc2a5f42SMilanka Ringwald * notice, this list of conditions and the following disclaimer. 10cc2a5f42SMilanka Ringwald * 2. Redistributions in binary form must reproduce the above copyright 11cc2a5f42SMilanka Ringwald * notice, this list of conditions and the following disclaimer in the 12cc2a5f42SMilanka Ringwald * documentation and/or other materials provided with the distribution. 13cc2a5f42SMilanka Ringwald * 3. Neither the name of the copyright holders nor the names of 14cc2a5f42SMilanka Ringwald * contributors may be used to endorse or promote products derived 15cc2a5f42SMilanka Ringwald * from this software without specific prior written permission. 16cc2a5f42SMilanka Ringwald * 4. Any redistribution, use, or modification is done solely for 17cc2a5f42SMilanka Ringwald * personal benefit and not for any commercial purpose or for 18cc2a5f42SMilanka Ringwald * monetary gain. 19cc2a5f42SMilanka Ringwald * 20cc2a5f42SMilanka Ringwald * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS 21cc2a5f42SMilanka Ringwald * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22cc2a5f42SMilanka Ringwald * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23*2fca4dadSMilanka Ringwald * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL BLUEKITCHEN 24*2fca4dadSMilanka Ringwald * GMBH OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25cc2a5f42SMilanka Ringwald * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26cc2a5f42SMilanka Ringwald * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 27cc2a5f42SMilanka Ringwald * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28cc2a5f42SMilanka Ringwald * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29cc2a5f42SMilanka Ringwald * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 30cc2a5f42SMilanka Ringwald * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31cc2a5f42SMilanka Ringwald * SUCH DAMAGE. 32cc2a5f42SMilanka Ringwald * 33cc2a5f42SMilanka Ringwald * Please inquire about commercial licensing options at 34cc2a5f42SMilanka Ringwald * [email protected] 35cc2a5f42SMilanka Ringwald * 36cc2a5f42SMilanka Ringwald */ 37cc2a5f42SMilanka Ringwald 38cc2a5f42SMilanka Ringwald #ifndef __MESH_CONFIGURATION_CLIENT_H 39cc2a5f42SMilanka Ringwald #define __MESH_CONFIGURATION_CLIENT_H 40cc2a5f42SMilanka Ringwald 41cc2a5f42SMilanka Ringwald #include <stdint.h> 42cc2a5f42SMilanka Ringwald 43cc2a5f42SMilanka Ringwald #include "mesh/mesh_access.h" 44cc2a5f42SMilanka Ringwald 45cc2a5f42SMilanka Ringwald #ifdef __cplusplus 46cc2a5f42SMilanka Ringwald extern "C" 47cc2a5f42SMilanka Ringwald { 48cc2a5f42SMilanka Ringwald #endif 49cc2a5f42SMilanka Ringwald 501126947fSMilanka Ringwald 511126947fSMilanka Ringwald typedef struct { 521126947fSMilanka Ringwald const uint8_t * models; 531126947fSMilanka Ringwald uint16_t size; 541126947fSMilanka Ringwald uint16_t offset; 551126947fSMilanka Ringwald 561126947fSMilanka Ringwald uint32_t id; 571126947fSMilanka Ringwald } mesh_model_id_iterator_t; 581126947fSMilanka Ringwald 591126947fSMilanka Ringwald typedef struct { 601126947fSMilanka Ringwald const uint8_t * elements; 611126947fSMilanka Ringwald uint16_t size; 621126947fSMilanka Ringwald uint16_t offset; 631126947fSMilanka Ringwald 641126947fSMilanka Ringwald uint16_t loc; 651126947fSMilanka Ringwald 661126947fSMilanka Ringwald mesh_model_id_iterator_t sig_model_iterator; 671126947fSMilanka Ringwald mesh_model_id_iterator_t vendor_model_iterator; 681126947fSMilanka Ringwald } mesh_composite_data_iterator_t; 691126947fSMilanka Ringwald 70f2ca42dfSMilanka Ringwald typedef struct { 71f2ca42dfSMilanka Ringwald uint16_t publish_address_unicast; 72f2ca42dfSMilanka Ringwald uint8_t publish_address_virtual[16]; 73f2ca42dfSMilanka Ringwald uint16_t appkey_index; 74f2ca42dfSMilanka Ringwald uint8_t credential_flag; 75f2ca42dfSMilanka Ringwald uint8_t publish_ttl; 76f2ca42dfSMilanka Ringwald uint8_t publish_period; 77f2ca42dfSMilanka Ringwald uint8_t publish_retransmit_count; 78f2ca42dfSMilanka Ringwald uint8_t publish_retransmit_interval_steps; 79f2ca42dfSMilanka Ringwald } mesh_publication_model_config_t; 801126947fSMilanka Ringwald 81f9202564SMilanka Ringwald const mesh_operation_t * mesh_configuration_client_get_operations(void); 82f9202564SMilanka Ringwald 831126947fSMilanka Ringwald /** 841126947fSMilanka Ringwald * @brief Initialize iterator for element descriptions list from Composition data in MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA event 851126947fSMilanka Ringwald * @param iterator 861126947fSMilanka Ringwald * @param elements 871126947fSMilanka Ringwald * @param size 881126947fSMilanka Ringwald */ 891126947fSMilanka Ringwald void mesh_composition_data_iterator_init(mesh_composite_data_iterator_t * iterator, const uint8_t * elements, uint16_t size); 901126947fSMilanka Ringwald 911126947fSMilanka Ringwald /** 921126947fSMilanka Ringwald * @brief Check if there is another element description in the list 931126947fSMilanka Ringwald * @param iterator 941126947fSMilanka Ringwald * @return has_next_element 951126947fSMilanka Ringwald */ 961126947fSMilanka Ringwald bool mesh_composition_data_iterator_has_next_element(mesh_composite_data_iterator_t * iterator); 971126947fSMilanka Ringwald 981126947fSMilanka Ringwald /** 991126947fSMilanka Ringwald * @brief Select the next element 1001126947fSMilanka Ringwald * @param iterator 1011126947fSMilanka Ringwald */ 1021126947fSMilanka Ringwald void mesh_composition_data_iterator_next_element(mesh_composite_data_iterator_t * iterator); 1031126947fSMilanka Ringwald 1041126947fSMilanka Ringwald /** 1051126947fSMilanka Ringwald * @brief Get the element location descriptor for the current element 1061126947fSMilanka Ringwald * @param iterator 1071126947fSMilanka Ringwald * @return loc 1081126947fSMilanka Ringwald */ 1091126947fSMilanka Ringwald uint16_t mesh_composition_data_iterator_element_loc(mesh_composite_data_iterator_t * iterator); 1101126947fSMilanka Ringwald 1111126947fSMilanka Ringwald /** 1121126947fSMilanka Ringwald * @brief Check if there is another SIG model in current element 1131126947fSMilanka Ringwald * @param iterator 1141126947fSMilanka Ringwald * @return has_next_sig_model 1151126947fSMilanka Ringwald */ 1161126947fSMilanka Ringwald bool mesh_composition_data_iterator_has_next_sig_model(mesh_composite_data_iterator_t * iterator); 1171126947fSMilanka Ringwald 1181126947fSMilanka Ringwald /** 1191126947fSMilanka Ringwald * @brief Select the next SIG model 1201126947fSMilanka Ringwald * @param iterator 1211126947fSMilanka Ringwald */ 122873d831bSMilanka Ringwald void mesh_composition_data_iterator_next_sig_model(mesh_composite_data_iterator_t * iterator); 1231126947fSMilanka Ringwald 1241126947fSMilanka Ringwald /** 1251126947fSMilanka Ringwald * @brief Get the SIG model ID for the current SIG model of the current element 1261126947fSMilanka Ringwald * @param iterator 1271126947fSMilanka Ringwald * @return loc 1281126947fSMilanka Ringwald */ 1291126947fSMilanka Ringwald uint16_t mesh_composition_data_iterator_sig_model_id(mesh_composite_data_iterator_t * iterator); 1301126947fSMilanka Ringwald 1311126947fSMilanka Ringwald 1321126947fSMilanka Ringwald /** 1331126947fSMilanka Ringwald * @brief Check if there is another vendor model in current element 1341126947fSMilanka Ringwald * @param iterator 1351126947fSMilanka Ringwald * @return has_next_vendor_model 1361126947fSMilanka Ringwald */ 1371126947fSMilanka Ringwald bool mesh_composition_data_iterator_has_next_vendor_model(mesh_composite_data_iterator_t * iterator); 1381126947fSMilanka Ringwald 1391126947fSMilanka Ringwald /** 1401126947fSMilanka Ringwald * @brief Select the next VVendor model 1411126947fSMilanka Ringwald * @param iterator 1421126947fSMilanka Ringwald */ 143873d831bSMilanka Ringwald void mesh_composition_data_iterator_next_vendor_model(mesh_composite_data_iterator_t * iterator); 1441126947fSMilanka Ringwald 1451126947fSMilanka Ringwald /** 1461126947fSMilanka Ringwald * @brief Get the Vendor model ID for the current vendor model of the current element 1471126947fSMilanka Ringwald * @param iterator 1481126947fSMilanka Ringwald * @return loc 1491126947fSMilanka Ringwald */ 1501126947fSMilanka Ringwald uint32_t mesh_composition_data_iterator_vendor_model_id(mesh_composite_data_iterator_t * iterator); 1511126947fSMilanka Ringwald 152cc2a5f42SMilanka Ringwald /** 153d61023b2SMilanka Ringwald * @brief Get field page from event MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 154d61023b2SMilanka Ringwald * @param event packet 155d61023b2SMilanka Ringwald * @return page 156d61023b2SMilanka Ringwald * @note: btstack_type 1 157d61023b2SMilanka Ringwald */ 158d61023b2SMilanka Ringwald uint8_t mesh_subevent_configuration_composition_data_get_page(const uint8_t * event); 159d61023b2SMilanka Ringwald 160d61023b2SMilanka Ringwald /** 161d61023b2SMilanka Ringwald * @brief Get field cid from event MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 162d61023b2SMilanka Ringwald * @param event packet 163d61023b2SMilanka Ringwald * @return cid 164d61023b2SMilanka Ringwald * @note: btstack_type 2 165d61023b2SMilanka Ringwald */ 166d61023b2SMilanka Ringwald uint16_t mesh_subevent_configuration_composition_data_get_cid(const uint8_t * event); 167d61023b2SMilanka Ringwald 168d61023b2SMilanka Ringwald /** 169d61023b2SMilanka Ringwald * @brief Get field pid from event MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 170d61023b2SMilanka Ringwald * @param event packet 171d61023b2SMilanka Ringwald * @return pid 172d61023b2SMilanka Ringwald * @note: btstack_type 2 173d61023b2SMilanka Ringwald */ 174d61023b2SMilanka Ringwald uint16_t mesh_subevent_configuration_composition_data_get_pid(const uint8_t * event); 175d61023b2SMilanka Ringwald 176d61023b2SMilanka Ringwald /** 177d61023b2SMilanka Ringwald * @brief Get field vid from event MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 178d61023b2SMilanka Ringwald * @param event packet 179d61023b2SMilanka Ringwald * @return vid 180d61023b2SMilanka Ringwald * @note: btstack_type 2 181d61023b2SMilanka Ringwald */ 182d61023b2SMilanka Ringwald uint16_t mesh_subevent_configuration_composition_data_get_vid(const uint8_t * event); 183d61023b2SMilanka Ringwald 184d61023b2SMilanka Ringwald /** 185d61023b2SMilanka Ringwald * @brief Get field crpl from event MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 186d61023b2SMilanka Ringwald * @param event packet 187d61023b2SMilanka Ringwald * @return crpl 188d61023b2SMilanka Ringwald * @note: btstack_type 2 189d61023b2SMilanka Ringwald */ 190d61023b2SMilanka Ringwald uint16_t mesh_subevent_configuration_composition_data_get_crpl(const uint8_t * event); 191d61023b2SMilanka Ringwald 192d61023b2SMilanka Ringwald /** 193d61023b2SMilanka Ringwald * @brief Get field features from event MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 194d61023b2SMilanka Ringwald * @param event packet 195d61023b2SMilanka Ringwald * @return features 196d61023b2SMilanka Ringwald * @note: btstack_type 2 197d61023b2SMilanka Ringwald */ 198d61023b2SMilanka Ringwald uint16_t mesh_subevent_configuration_composition_data_get_features(const uint8_t * event); 199d61023b2SMilanka Ringwald 200d61023b2SMilanka Ringwald /** 201d61023b2SMilanka Ringwald * @brief Get number elements from event MESH_SUBEVENT_CONFIGURATION_COMPOSITION_DATA 202d61023b2SMilanka Ringwald **/ 203d61023b2SMilanka Ringwald uint16_t mesh_subevent_configuration_composition_data_get_num_elements(const uint8_t * event, uint16_t size); 204d61023b2SMilanka Ringwald 205d61023b2SMilanka Ringwald 206d61023b2SMilanka Ringwald /** 207cc2a5f42SMilanka Ringwald * @brief Register packet handler 208cc2a5f42SMilanka Ringwald * @param configuration_client_model 209cc2a5f42SMilanka Ringwald * @param events_packet_handler 210cc2a5f42SMilanka Ringwald */ 211aaf0c1d1SMilanka Ringwald void mesh_configuration_client_register_packet_handler(mesh_model_t *configuration_client_model, btstack_packet_handler_t events_packet_handler); 212aaf0c1d1SMilanka Ringwald 213aaf0c1d1SMilanka Ringwald /** 2145448198cSMilanka Ringwald * @brief Get the current Secure Network Beacon state of a node. 215aaf0c1d1SMilanka Ringwald * @param mesh_model 216aaf0c1d1SMilanka Ringwald * @param dest 217aaf0c1d1SMilanka Ringwald * @param netkey_index 218aaf0c1d1SMilanka Ringwald * @param appkey_index 2195448198cSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 220aaf0c1d1SMilanka Ringwald */ 2213013af6aSMilanka Ringwald uint8_t mesh_configuration_client_send_beacon_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 222cc2a5f42SMilanka Ringwald 2235448198cSMilanka Ringwald /** 2245448198cSMilanka Ringwald * @brief Get the current Secure Network Beacon state of a node. 2255448198cSMilanka Ringwald * @param mesh_model 2265448198cSMilanka Ringwald * @param dest 2275448198cSMilanka Ringwald * @param netkey_index 2285448198cSMilanka Ringwald * @param appkey_index 2295448198cSMilanka Ringwald * @param Beacon 0x01 The node is broadcasting a Secure Network beacon, 0x00 broadcastinis off 2305448198cSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 2315448198cSMilanka Ringwald */ 2323013af6aSMilanka Ringwald uint8_t mesh_configuration_client_send_beacon_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint8_t beacon); 2333013af6aSMilanka Ringwald 2343013af6aSMilanka Ringwald /** 2353013af6aSMilanka Ringwald * @brief Read one page of the Composition Data. 2363013af6aSMilanka Ringwald * @param mesh_model 2373013af6aSMilanka Ringwald * @param dest 2383013af6aSMilanka Ringwald * @param netkey_index 2393013af6aSMilanka Ringwald * @param appkey_index 2403013af6aSMilanka Ringwald * @param page Page number of the Composition Data 2413013af6aSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 2423013af6aSMilanka Ringwald */ 2433013af6aSMilanka Ringwald uint8_t mesh_configuration_client_send_composition_data_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint8_t page); 244cc2a5f42SMilanka Ringwald 245344d6549SMilanka Ringwald /** 246344d6549SMilanka Ringwald * @brief Get the current Default TTL state of a node 247344d6549SMilanka Ringwald * @param mesh_model 248344d6549SMilanka Ringwald * @param dest 249344d6549SMilanka Ringwald * @param netkey_index 250344d6549SMilanka Ringwald * @param appkey_index 251344d6549SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 252344d6549SMilanka Ringwald */ 253344d6549SMilanka Ringwald uint8_t mesh_configuration_client_send_default_ttl_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 254344d6549SMilanka Ringwald 255344d6549SMilanka Ringwald /** 256344d6549SMilanka Ringwald * @brief Set Default TTL state of a node 257344d6549SMilanka Ringwald * @param mesh_model 258344d6549SMilanka Ringwald * @param dest 259344d6549SMilanka Ringwald * @param netkey_index 260344d6549SMilanka Ringwald * @param appkey_index 261344d6549SMilanka Ringwald * @param ttl allowed values: 0x00, 0x02–0x7F 262344d6549SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 263344d6549SMilanka Ringwald */ 264344d6549SMilanka Ringwald uint8_t mesh_configuration_client_send_default_ttl_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint8_t ttl); 265344d6549SMilanka Ringwald 266e38651d8SMilanka Ringwald /** 267e38651d8SMilanka Ringwald * @brief Get the current Default GATT proxy state of a node 268e38651d8SMilanka Ringwald * @param mesh_model 269e38651d8SMilanka Ringwald * @param dest 270e38651d8SMilanka Ringwald * @param netkey_index 271e38651d8SMilanka Ringwald * @param appkey_index 272e38651d8SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 273e38651d8SMilanka Ringwald */ 274f9202564SMilanka Ringwald uint8_t mesh_configuration_client_send_gatt_proxy_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 275e38651d8SMilanka Ringwald 276e38651d8SMilanka Ringwald /** 277e38651d8SMilanka Ringwald * @brief Set Default GATT proxy state of a node 278e38651d8SMilanka Ringwald * @param mesh_model 279e38651d8SMilanka Ringwald * @param dest 280e38651d8SMilanka Ringwald * @param netkey_index 281e38651d8SMilanka Ringwald * @param appkey_index 282e38651d8SMilanka Ringwald * @param gatt_proxy_state 0 - the proxy feature is supported and disabled, 1 - supported and enabled, 2 - not supported 283e38651d8SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 284e38651d8SMilanka Ringwald */ 285f9202564SMilanka Ringwald uint8_t mesh_configuration_client_send_gatt_proxy_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint8_t gatt_proxy_state); 286f9202564SMilanka Ringwald 287f9202564SMilanka Ringwald 288f9202564SMilanka Ringwald /** 289f9202564SMilanka Ringwald * @brief Get the current Relay and Relay Retransmit states of a node 290f9202564SMilanka Ringwald * @param mesh_model 291f9202564SMilanka Ringwald * @param dest 292f9202564SMilanka Ringwald * @param netkey_index 293f9202564SMilanka Ringwald * @param appkey_index 294f9202564SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 295f9202564SMilanka Ringwald */ 296f9202564SMilanka Ringwald uint8_t mesh_configuration_client_send_relay_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 297f9202564SMilanka Ringwald 298f9202564SMilanka Ringwald /** 299f9202564SMilanka Ringwald * @brief Set the current Relay and Relay Retransmit states of a node 300f9202564SMilanka Ringwald * @param mesh_model 301f9202564SMilanka Ringwald * @param dest 302f9202564SMilanka Ringwald * @param netkey_index 303f9202564SMilanka Ringwald * @param appkey_index 304f9202564SMilanka Ringwald * @param relay 305f9202564SMilanka Ringwald * @param relay_retransmit_count 306f9202564SMilanka Ringwald * @param relay_retransmit_interval_steps 307f9202564SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 308f9202564SMilanka Ringwald */ 309f9202564SMilanka Ringwald uint8_t mesh_configuration_client_send_relay_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint8_t relay, uint8_t relay_retransmit_count, uint8_t relay_retransmit_interval_steps); 310e38651d8SMilanka Ringwald 311f2ca42dfSMilanka Ringwald /** 312f2ca42dfSMilanka Ringwald * @brief Get the publish address and parameters of an outgoing message that originates from a model 313f2ca42dfSMilanka Ringwald * @param mesh_model 314f2ca42dfSMilanka Ringwald * @param dest element_address 315f2ca42dfSMilanka Ringwald * @param netkey_index 316f2ca42dfSMilanka Ringwald * @param appkey_index 317f2ca42dfSMilanka Ringwald * @param model_id 318f2ca42dfSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 319f2ca42dfSMilanka Ringwald */ 320f2ca42dfSMilanka Ringwald uint8_t mesh_configuration_client_send_model_publication_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint32_t model_id); 321f2ca42dfSMilanka Ringwald 322f2ca42dfSMilanka Ringwald /** 323f2ca42dfSMilanka Ringwald * @brief Set the Model Publication state of an outgoing message that originates from a model. 324f2ca42dfSMilanka Ringwald * @param mesh_model 325f2ca42dfSMilanka Ringwald * @param dest element_address 326f2ca42dfSMilanka Ringwald * @param netkey_index 327f2ca42dfSMilanka Ringwald * @param appkey_index 328f2ca42dfSMilanka Ringwald * @param model_id 329f2ca42dfSMilanka Ringwald * @param publication_config 330f2ca42dfSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 331f2ca42dfSMilanka Ringwald */ 332f2ca42dfSMilanka Ringwald uint8_t mesh_configuration_client_send_model_publication_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint32_t model_id, mesh_publication_model_config_t * publication_config); 333f2ca42dfSMilanka Ringwald 334f2ca42dfSMilanka Ringwald /** 335f2ca42dfSMilanka Ringwald * @brief Set the Model Publication state of an outgoing message that originates from a model. 336f2ca42dfSMilanka Ringwald * @param mesh_model 337f2ca42dfSMilanka Ringwald * @param dest element_address 338f2ca42dfSMilanka Ringwald * @param netkey_index 339f2ca42dfSMilanka Ringwald * @param appkey_index 340f2ca42dfSMilanka Ringwald * @param model_id 341f2ca42dfSMilanka Ringwald * @param publication_config 342f2ca42dfSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 343f2ca42dfSMilanka Ringwald */ 344f2ca42dfSMilanka Ringwald uint8_t mesh_configuration_client_send_model_publication_virtual_address_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint32_t model_id, mesh_publication_model_config_t * publication_config); 345f2ca42dfSMilanka Ringwald 34667abec42SMilanka Ringwald /** 34767abec42SMilanka Ringwald * @brief Add an address to a Subscription List of a model 34867abec42SMilanka Ringwald * @param mesh_model 34967abec42SMilanka Ringwald * @param dest element_address 35067abec42SMilanka Ringwald * @param netkey_index 35167abec42SMilanka Ringwald * @param appkey_index 35267abec42SMilanka Ringwald * @param address 35367abec42SMilanka Ringwald * @param model_id 35467abec42SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 35567abec42SMilanka Ringwald */ 35667abec42SMilanka Ringwald uint8_t mesh_configuration_client_send_model_subscription_add(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t address, uint32_t model_id); 35767abec42SMilanka Ringwald uint8_t mesh_configuration_client_send_model_subscription_virtual_address_add(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint8_t * address, uint32_t model_id); 35867abec42SMilanka Ringwald 35967abec42SMilanka Ringwald /** 36067abec42SMilanka Ringwald * @brief Delete an address from a Subscription List of a model 36167abec42SMilanka Ringwald * @param mesh_model 36267abec42SMilanka Ringwald * @param dest element_address 36367abec42SMilanka Ringwald * @param netkey_index 36467abec42SMilanka Ringwald * @param appkey_index 36567abec42SMilanka Ringwald * @param address 36667abec42SMilanka Ringwald * @param model_id 36767abec42SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 36867abec42SMilanka Ringwald */ 36967abec42SMilanka Ringwald uint8_t mesh_configuration_client_send_model_subscription_delete(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t address, uint32_t model_id); 37067abec42SMilanka Ringwald uint8_t mesh_configuration_client_send_model_subscription_virtual_address_delete(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint8_t * address, uint32_t model_id); 37167abec42SMilanka Ringwald 37267abec42SMilanka Ringwald /** 37367abec42SMilanka Ringwald * @brief Discard the Subscription List and add an address to the cleared Subscription List of a model 37467abec42SMilanka Ringwald * @param mesh_model 37567abec42SMilanka Ringwald * @param dest element_address 37667abec42SMilanka Ringwald * @param netkey_index 37767abec42SMilanka Ringwald * @param appkey_index 37867abec42SMilanka Ringwald * @param address 37967abec42SMilanka Ringwald * @param model_id 38067abec42SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 38167abec42SMilanka Ringwald */ 38267abec42SMilanka Ringwald uint8_t mesh_configuration_client_send_model_subscription_overwrite(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t address, uint32_t model_id); 38367abec42SMilanka Ringwald uint8_t mesh_configuration_client_send_model_subscription_virtual_address_overwrite(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint8_t * address, uint32_t model_id); 38467abec42SMilanka Ringwald 38567abec42SMilanka Ringwald /** 38667abec42SMilanka Ringwald * @brief Discard the Subscription List of a model 38767abec42SMilanka Ringwald * @param mesh_model 38867abec42SMilanka Ringwald * @param dest element_address 38967abec42SMilanka Ringwald * @param netkey_index 39067abec42SMilanka Ringwald * @param appkey_index 39167abec42SMilanka Ringwald * @param address 39267abec42SMilanka Ringwald * @param model_id 39367abec42SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 39467abec42SMilanka Ringwald */ 39567abec42SMilanka Ringwald uint8_t mesh_configuration_client_send_model_subscription_delete_all(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t address, uint32_t model_id); 39667abec42SMilanka Ringwald 397908a73e3SMilanka Ringwald /** 398908a73e3SMilanka Ringwald * @brief Get the list of subscription addresses of a SIG or vendor model within the element 399908a73e3SMilanka Ringwald * @param mesh_model 400908a73e3SMilanka Ringwald * @param dest element_address 401908a73e3SMilanka Ringwald * @param netkey_index 402908a73e3SMilanka Ringwald * @param appkey_index 403908a73e3SMilanka Ringwald * @param vendor_model_id 404908a73e3SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 405908a73e3SMilanka Ringwald */ 406908a73e3SMilanka Ringwald uint8_t mesh_configuration_client_send_model_subscription_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint32_t model_id); 407908a73e3SMilanka Ringwald 408908a73e3SMilanka Ringwald 409b629980dSMilanka Ringwald /** 410b629980dSMilanka Ringwald * @brief Add a NetKey to a NetKey List on a node. 411b629980dSMilanka Ringwald * @param mesh_model 412b629980dSMilanka Ringwald * @param dest element_address 413b629980dSMilanka Ringwald * @param netkey_index 414b629980dSMilanka Ringwald * @param appkey_index 415b629980dSMilanka Ringwald * @param index 416b629980dSMilanka Ringwald * @param netkey 417b629980dSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 418b629980dSMilanka Ringwald */ 419b629980dSMilanka Ringwald uint8_t mesh_configuration_client_send_netkey_add(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t index, uint8_t * netkey); 420b629980dSMilanka Ringwald 421b629980dSMilanka Ringwald /** 422b629980dSMilanka Ringwald * @brief Update NetKey in a NetKey List on a node. 423b629980dSMilanka Ringwald * @param mesh_model 424b629980dSMilanka Ringwald * @param dest element_address 425b629980dSMilanka Ringwald * @param netkey_index 426b629980dSMilanka Ringwald * @param appkey_index 427b629980dSMilanka Ringwald * @param index 428b629980dSMilanka Ringwald * @param netkey 429b629980dSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 430b629980dSMilanka Ringwald */ 431b629980dSMilanka Ringwald uint8_t mesh_configuration_client_send_netkey_update(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t index, uint8_t * netkey); 432b629980dSMilanka Ringwald 433b629980dSMilanka Ringwald /** 434b629980dSMilanka Ringwald * @brief Delete a NetKey from a NetKey List on a node. 435b629980dSMilanka Ringwald * @param mesh_model 436b629980dSMilanka Ringwald * @param dest element_address 437b629980dSMilanka Ringwald * @param netkey_index 438b629980dSMilanka Ringwald * @param appkey_index 439b629980dSMilanka Ringwald * @param index 440b629980dSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 441b629980dSMilanka Ringwald */ 442b629980dSMilanka Ringwald uint8_t mesh_configuration_client_send_netkey_delete(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t index); 443b629980dSMilanka Ringwald 444b629980dSMilanka Ringwald /** 445b629980dSMilanka Ringwald * @brief Get NetKey List on a node. 446b629980dSMilanka Ringwald * @param mesh_model 447b629980dSMilanka Ringwald * @param dest element_address 448b629980dSMilanka Ringwald * @param netkey_index 449b629980dSMilanka Ringwald * @param appkey_index 450b629980dSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 451b629980dSMilanka Ringwald */ 452b629980dSMilanka Ringwald uint8_t mesh_configuration_client_send_netkey_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 453b629980dSMilanka Ringwald 454b629980dSMilanka Ringwald /** 455b629980dSMilanka Ringwald * @brief Add a AppKey to a AppKey List on a node. 456b629980dSMilanka Ringwald * @param mesh_model 457b629980dSMilanka Ringwald * @param dest element_address 458b629980dSMilanka Ringwald * @param netkey_index 459b629980dSMilanka Ringwald * @param appkey_index 460b629980dSMilanka Ringwald * @param netk_index 461b629980dSMilanka Ringwald * @param appk_index 462b629980dSMilanka Ringwald * @param appkey 463b629980dSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 464b629980dSMilanka Ringwald */ 465b629980dSMilanka Ringwald uint8_t mesh_configuration_client_send_appkey_add(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t netk_index, uint16_t appk_index, uint8_t * appkey); 466b629980dSMilanka Ringwald 467b629980dSMilanka Ringwald /** 468b629980dSMilanka Ringwald * @brief Update AppKey in a AppKey List on a node. 469b629980dSMilanka Ringwald * @param mesh_model 470b629980dSMilanka Ringwald * @param dest element_address 471b629980dSMilanka Ringwald * @param netkey_index 472b629980dSMilanka Ringwald * @param appkey_index 473b629980dSMilanka Ringwald * @param netk_index 474b629980dSMilanka Ringwald * @param appk_index 475b629980dSMilanka Ringwald * @param appkey 476b629980dSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 477b629980dSMilanka Ringwald */ 478b629980dSMilanka Ringwald uint8_t mesh_configuration_client_send_appkey_update(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t netk_index, uint16_t appk_index, uint8_t * appkey); 479b629980dSMilanka Ringwald 480b629980dSMilanka Ringwald /** 481b629980dSMilanka Ringwald * @brief Delete a AppKey from a AppKey List on a node. 482b629980dSMilanka Ringwald * @param mesh_model 483b629980dSMilanka Ringwald * @param dest element_address 484b629980dSMilanka Ringwald * @param netkey_index 485df02a641SMilanka Ringwald * @param appkey_index 486b629980dSMilanka Ringwald * @param netk_index 487b629980dSMilanka Ringwald * @param appk_index 488b629980dSMilanka Ringwald * @param index 489b629980dSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 490b629980dSMilanka Ringwald */ 491b629980dSMilanka Ringwald uint8_t mesh_configuration_client_send_appkey_delete(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t netk_index, uint16_t appk_index); 492b629980dSMilanka Ringwald 493b629980dSMilanka Ringwald /** 494b629980dSMilanka Ringwald * @brief Get AppKey List on a node that is bound to the NetKey. 495b629980dSMilanka Ringwald * @param mesh_model 496b629980dSMilanka Ringwald * @param dest element_address 497b629980dSMilanka Ringwald * @param netkey_index 498df02a641SMilanka Ringwald * @param appkey_index 499b629980dSMilanka Ringwald * @param netk_index 500b629980dSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 501b629980dSMilanka Ringwald */ 502b629980dSMilanka Ringwald uint8_t mesh_configuration_client_send_appkey_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t netk_index); 503b629980dSMilanka Ringwald 50482cfc808SMilanka Ringwald /** 50582cfc808SMilanka Ringwald * @brief Get the current Node Identity state for a subnet. 50682cfc808SMilanka Ringwald * @param mesh_model 50782cfc808SMilanka Ringwald * @param dest element_address 50882cfc808SMilanka Ringwald * @param netkey_index 509df02a641SMilanka Ringwald * @param appkey_index 51082cfc808SMilanka Ringwald * @param netk_index 51182cfc808SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 51282cfc808SMilanka Ringwald */ 51382cfc808SMilanka Ringwald uint8_t mesh_configuration_client_send_node_identity_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t netk_index); 51482cfc808SMilanka Ringwald 51582cfc808SMilanka Ringwald /** 51682cfc808SMilanka Ringwald * @brief Set the current Node Identity state for a subnet. 51782cfc808SMilanka Ringwald * @param mesh_model 51882cfc808SMilanka Ringwald * @param dest element_address 51982cfc808SMilanka Ringwald * @param netkey_index 520df02a641SMilanka Ringwald * @param appkey_index 52182cfc808SMilanka Ringwald * @param netk_index 52282cfc808SMilanka Ringwald * @param node_identity_state 52382cfc808SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 52482cfc808SMilanka Ringwald */ 52582cfc808SMilanka Ringwald uint8_t mesh_configuration_client_send_node_identity_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t netk_index, mesh_node_identity_state_t node_identity_state); 5268d4cf36eSMilanka Ringwald 5278d4cf36eSMilanka Ringwald /** 5288d4cf36eSMilanka Ringwald * @brief Bind an AppKey to a model. 5298d4cf36eSMilanka Ringwald * @param mesh_model 5308d4cf36eSMilanka Ringwald * @param dest element_address 5318d4cf36eSMilanka Ringwald * @param netkey_index 532df02a641SMilanka Ringwald * @param appkey_index 5338d4cf36eSMilanka Ringwald * @param appk_index 5348d4cf36eSMilanka Ringwald * @param model_identifier 5358d4cf36eSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 5368d4cf36eSMilanka Ringwald */ 5378d4cf36eSMilanka Ringwald uint8_t mesh_configuration_client_send_model_app_bind_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t appk_index, uint32_t model_identifier); 5388d4cf36eSMilanka Ringwald 5398d4cf36eSMilanka Ringwald /** 5408d4cf36eSMilanka Ringwald * @brief Remove the binding between an AppKey and a model. 5418d4cf36eSMilanka Ringwald * @param mesh_model 5428d4cf36eSMilanka Ringwald * @param dest element_address 5438d4cf36eSMilanka Ringwald * @param netkey_index 544df02a641SMilanka Ringwald * @param appkey_index 5458d4cf36eSMilanka Ringwald * @param appk_index 5468d4cf36eSMilanka Ringwald * @param model_identifier 5478d4cf36eSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 5488d4cf36eSMilanka Ringwald */ 5498d4cf36eSMilanka Ringwald uint8_t mesh_configuration_client_send_model_app_unbind_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t appk_index, uint32_t model_identifier); 5508d4cf36eSMilanka Ringwald 551df02a641SMilanka Ringwald /** 552df02a641SMilanka Ringwald * @brief Report of all AppKeys bound to the Model. 553df02a641SMilanka Ringwald * @param mesh_model 554df02a641SMilanka Ringwald * @param dest element_address 555df02a641SMilanka Ringwald * @param netkey_index 556df02a641SMilanka Ringwald * @param appkey_index 557df02a641SMilanka Ringwald * @param model_identifier 558df02a641SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 559df02a641SMilanka Ringwald */ 560df02a641SMilanka Ringwald uint8_t mesh_configuration_client_send_model_app_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint32_t model_identifier); 561df02a641SMilanka Ringwald 56264c3d06bSMilanka Ringwald /** 5631da46a67SMilanka Ringwald * @brief Reset a node (other than a Provisioner) and remove it from the network. 56464c3d06bSMilanka Ringwald * @param mesh_model 56564c3d06bSMilanka Ringwald * @param dest element_address 56664c3d06bSMilanka Ringwald * @param netkey_index 56764c3d06bSMilanka Ringwald * @param appkey_index 56864c3d06bSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 56964c3d06bSMilanka Ringwald */ 57064c3d06bSMilanka Ringwald uint8_t mesh_configuration_client_send_node_reset(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 57164c3d06bSMilanka Ringwald 57264c3d06bSMilanka Ringwald /** 5731da46a67SMilanka Ringwald * @brief Get the current Friend state of a node. 57464c3d06bSMilanka Ringwald * @param mesh_model 57564c3d06bSMilanka Ringwald * @param dest element_address 57664c3d06bSMilanka Ringwald * @param netkey_index 57764c3d06bSMilanka Ringwald * @param appkey_index 57864c3d06bSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 57964c3d06bSMilanka Ringwald */ 58064c3d06bSMilanka Ringwald uint8_t mesh_configuration_client_send_friend_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 58164c3d06bSMilanka Ringwald 58264c3d06bSMilanka Ringwald /** 5831da46a67SMilanka Ringwald * @brief Set the current Friend state of a node. 58464c3d06bSMilanka Ringwald * @param mesh_model 58564c3d06bSMilanka Ringwald * @param dest element_address 58664c3d06bSMilanka Ringwald * @param netkey_index 58764c3d06bSMilanka Ringwald * @param appkey_index 58864c3d06bSMilanka Ringwald * @param friend_state 58964c3d06bSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 59064c3d06bSMilanka Ringwald */ 59164c3d06bSMilanka Ringwald uint8_t mesh_configuration_client_send_friend_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, mesh_friend_state_t friend_state); 592df02a641SMilanka Ringwald 5931da46a67SMilanka Ringwald /** 5941da46a67SMilanka Ringwald * @brief Get the current Key Refresh Phase state of the identified network key 5951da46a67SMilanka Ringwald * @param mesh_model 5961da46a67SMilanka Ringwald * @param dest element_address 5971da46a67SMilanka Ringwald * @param netkey_index 5981da46a67SMilanka Ringwald * @param appkey_index 5991da46a67SMilanka Ringwald * @param netk_index 6001da46a67SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 6011da46a67SMilanka Ringwald */ 6021da46a67SMilanka Ringwald uint8_t mesh_configuration_client_send_key_refresh_phase_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t netk_index); 6031da46a67SMilanka Ringwald 6041da46a67SMilanka Ringwald /** 6051da46a67SMilanka Ringwald * @brief Set the current Key Refresh Phase state of the identified network key 6061da46a67SMilanka Ringwald * @param mesh_model 6071da46a67SMilanka Ringwald * @param dest element_address 6081da46a67SMilanka Ringwald * @param netkey_index 6091da46a67SMilanka Ringwald * @param appkey_index 6101da46a67SMilanka Ringwald * @param netk_index 6111da46a67SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 6121da46a67SMilanka Ringwald */ 6131da46a67SMilanka Ringwald uint8_t mesh_configuration_client_send_key_refresh_phase_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t netk_index, uint8_t transition); 6141da46a67SMilanka Ringwald 6157d339f89SMilanka Ringwald /** 6167d339f89SMilanka Ringwald * @brief Get the current Heartbeat Publication state of an element. 6177d339f89SMilanka Ringwald * @param mesh_model 6187d339f89SMilanka Ringwald * @param dest element_address 6197d339f89SMilanka Ringwald * @param netkey_index 6207d339f89SMilanka Ringwald * @param appkey_index 6217d339f89SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 6227d339f89SMilanka Ringwald */ 6237d339f89SMilanka Ringwald uint8_t mesh_configuration_client_send_heartbeat_publication_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 6247d339f89SMilanka Ringwald 6257d339f89SMilanka Ringwald /** 6267d339f89SMilanka Ringwald * @brief Set the current Heartbeat Publication state of an element. 6277d339f89SMilanka Ringwald * @param mesh_model 6287d339f89SMilanka Ringwald * @param dest element_address 6297d339f89SMilanka Ringwald * @param netkey_index 6307d339f89SMilanka Ringwald * @param appkey_index 6317d339f89SMilanka Ringwald * @param publication_state 6327d339f89SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 6337d339f89SMilanka Ringwald */ 6347d339f89SMilanka Ringwald uint8_t mesh_configuration_client_send_heartbeat_publication_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, mesh_heartbeat_publication_state_t publication_state); 6357d339f89SMilanka Ringwald 6367d339f89SMilanka Ringwald /** 6377d339f89SMilanka Ringwald * @brief Get the current Heartbeat Subscription state of an element. 6387d339f89SMilanka Ringwald * @param mesh_model 6397d339f89SMilanka Ringwald * @param dest element_address 6407d339f89SMilanka Ringwald * @param netkey_index 6417d339f89SMilanka Ringwald * @param appkey_index 6427d339f89SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 6437d339f89SMilanka Ringwald */ 6447d339f89SMilanka Ringwald uint8_t mesh_configuration_client_send_heartbeat_subscription_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 6457d339f89SMilanka Ringwald 6467d339f89SMilanka Ringwald /** 6477d339f89SMilanka Ringwald * @brief Set the current Heartbeat Subscription state of an element. 6487d339f89SMilanka Ringwald * @param mesh_model 6497d339f89SMilanka Ringwald * @param dest element_address 6507d339f89SMilanka Ringwald * @param netkey_index 6517d339f89SMilanka Ringwald * @param appkey_index 6524f44739eSMilanka Ringwald * @param heartbeat_source 6534f44739eSMilanka Ringwald * @param heartbeat_destination 654d175073cSMilanka Ringwald * @param period_s 6557d339f89SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 6567d339f89SMilanka Ringwald */ 657d175073cSMilanka Ringwald uint8_t mesh_configuration_client_send_heartbeat_subscription_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint16_t heartbeat_source, uint16_t heartbeat_destination, uint16_t period_s); 6587d339f89SMilanka Ringwald 65970fcff1aSMilanka Ringwald /** 66070fcff1aSMilanka Ringwald * @brief Get the current value of PollTimeout timer of the Low Power node within a Friend node. 66170fcff1aSMilanka Ringwald * @param mesh_model 66270fcff1aSMilanka Ringwald * @param dest element_address 66370fcff1aSMilanka Ringwald * @param netkey_index 66470fcff1aSMilanka Ringwald * @param appkey_index 66570fcff1aSMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 66670fcff1aSMilanka Ringwald */ 66770fcff1aSMilanka Ringwald uint8_t mesh_configuration_client_send_low_power_node_poll_timeout_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 66870fcff1aSMilanka Ringwald 669786ea917SMilanka Ringwald /** 670786ea917SMilanka Ringwald * @brief Get the current Network Transmit state of a node. 671786ea917SMilanka Ringwald * @param mesh_model 672786ea917SMilanka Ringwald * @param dest element_address 673786ea917SMilanka Ringwald * @param netkey_index 674786ea917SMilanka Ringwald * @param appkey_index 675786ea917SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 676786ea917SMilanka Ringwald */ 677786ea917SMilanka Ringwald uint8_t mesh_configuration_client_send_network_transmit_get(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index); 678786ea917SMilanka Ringwald 679786ea917SMilanka Ringwald /** 680786ea917SMilanka Ringwald * @brief Set the current Network Transmit state of a node. 681786ea917SMilanka Ringwald * @param mesh_model 682786ea917SMilanka Ringwald * @param dest element_address 683786ea917SMilanka Ringwald * @param netkey_index 684786ea917SMilanka Ringwald * @param appkey_index 685786ea917SMilanka Ringwald * @param transmit_count 686786ea917SMilanka Ringwald * @param transmit_interval_steps_ms 687786ea917SMilanka Ringwald * @return status ERROR_CODE_SUCCESS if successful, otherwise BTSTACK_MEMORY_ALLOC_FAILED or ERROR_CODE_PARAMETER_OUT_OF_MANDATORY_RANGE 688786ea917SMilanka Ringwald */ 689786ea917SMilanka Ringwald uint8_t mesh_configuration_client_send_network_transmit_set(mesh_model_t * mesh_model, uint16_t dest, uint16_t netkey_index, uint16_t appkey_index, uint8_t transmit_count, uint16_t transmit_interval_steps_ms); 69070fcff1aSMilanka Ringwald 6917d339f89SMilanka Ringwald 692cc2a5f42SMilanka Ringwald #ifdef __cplusplus 693cc2a5f42SMilanka Ringwald } /* end of extern "C" */ 694cc2a5f42SMilanka Ringwald #endif 695cc2a5f42SMilanka Ringwald 696cc2a5f42SMilanka Ringwald #endif 697