1*f4854a5eSMatthias Ringwald /* 2*f4854a5eSMatthias Ringwald * Copyright (C) 2018 BlueKitchen GmbH 3*f4854a5eSMatthias Ringwald * 4*f4854a5eSMatthias Ringwald * Redistribution and use in source and binary forms, with or without 5*f4854a5eSMatthias Ringwald * modification, are permitted provided that the following conditions 6*f4854a5eSMatthias Ringwald * are met: 7*f4854a5eSMatthias Ringwald * 8*f4854a5eSMatthias Ringwald * 1. Redistributions of source code must retain the above copyright 9*f4854a5eSMatthias Ringwald * notice, this list of conditions and the following disclaimer. 10*f4854a5eSMatthias Ringwald * 2. Redistributions in binary form must reproduce the above copyright 11*f4854a5eSMatthias Ringwald * notice, this list of conditions and the following disclaimer in the 12*f4854a5eSMatthias Ringwald * documentation and/or other materials provided with the distribution. 13*f4854a5eSMatthias Ringwald * 3. Neither the name of the copyright holders nor the names of 14*f4854a5eSMatthias Ringwald * contributors may be used to endorse or promote products derived 15*f4854a5eSMatthias Ringwald * from this software without specific prior written permission. 16*f4854a5eSMatthias Ringwald * 4. Any redistribution, use, or modification is done solely for 17*f4854a5eSMatthias Ringwald * personal benefit and not for any commercial purpose or for 18*f4854a5eSMatthias Ringwald * monetary gain. 19*f4854a5eSMatthias Ringwald * 20*f4854a5eSMatthias Ringwald * THIS SOFTWARE IS PROVIDED BY BLUEKITCHEN GMBH AND CONTRIBUTORS 21*f4854a5eSMatthias Ringwald * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 22*f4854a5eSMatthias Ringwald * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 23*f4854a5eSMatthias Ringwald * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MATTHIAS 24*f4854a5eSMatthias Ringwald * RINGWALD OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 25*f4854a5eSMatthias Ringwald * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 26*f4854a5eSMatthias Ringwald * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS 27*f4854a5eSMatthias Ringwald * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED 28*f4854a5eSMatthias Ringwald * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 29*f4854a5eSMatthias Ringwald * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF 30*f4854a5eSMatthias Ringwald * THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31*f4854a5eSMatthias Ringwald * SUCH DAMAGE. 32*f4854a5eSMatthias Ringwald * 33*f4854a5eSMatthias Ringwald * Please inquire about commercial licensing options at 34*f4854a5eSMatthias Ringwald * [email protected] 35*f4854a5eSMatthias Ringwald * 36*f4854a5eSMatthias Ringwald */ 37*f4854a5eSMatthias Ringwald 38*f4854a5eSMatthias Ringwald #ifndef __MESH_FOUNDATION_H 39*f4854a5eSMatthias Ringwald #define __MESH_FOUNDATION_H 40*f4854a5eSMatthias Ringwald 41*f4854a5eSMatthias Ringwald #include <stdint.h> 42*f4854a5eSMatthias Ringwald 43*f4854a5eSMatthias Ringwald #include "mesh/mesh_network.h" 44*f4854a5eSMatthias Ringwald 45*f4854a5eSMatthias Ringwald #ifdef __cplusplus 46*f4854a5eSMatthias Ringwald extern "C" 47*f4854a5eSMatthias Ringwald { 48*f4854a5eSMatthias Ringwald #endif 49*f4854a5eSMatthias Ringwald 50*f4854a5eSMatthias Ringwald #define MESH_TTL_MAX 0x7f 51*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATE_NOT_SUPPORTED 2 52*f4854a5eSMatthias Ringwald 53*f4854a5eSMatthias Ringwald // Mesh Model Identifiers 54*f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_CONFIGURATION_SERVER 0x0000u 55*f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_CONFIGURATION_CLIENT 0x0001u 56*f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_HEALTH_SERVER 0x0002u 57*f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_HEALTH_CLIENT 0x0003u 58*f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_GENERIC_ON_OFF_SERVER 0x1000u 59*f4854a5eSMatthias Ringwald #define MESH_SIG_MODEL_ID_GENERIC_ON_OFF_CLIENT 0x1001u 60*f4854a5eSMatthias Ringwald 61*f4854a5eSMatthias Ringwald // Foundation Model Operations 62*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_ADD 0x00 63*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_UPDATE 0x01 64*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_COMPOSITION_DATA_STATUS 0x02 65*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_SET 0x03 66*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_CURRENT_STATUS 0x04 67*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_STATUS 0x05 68*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_PUBLICATION_STATUS 0x06 69*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_DELETE 0x8000 70*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_GET 0x8001 71*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_LIST 0x8002 72*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_APPKEY_STATUS 0x8003 73*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_ATTENTION_GET 0x8004 74*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_ATTENTION_SET 0x8005 75*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_ATTENTION_SET_UNACKNOWLEDGED 0x8006 76*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_ATTENTION_STATUS 0x8007 77*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_COMPOSITION_DATA_GET 0x8008 78*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_BEACON_GET 0x8009 79*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_BEACON_SET 0x800a 80*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_BEACON_STATUS 0x800b 81*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_DEFAULT_TTL_GET 0x800c 82*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_DEFAULT_TTL_SET 0x800d 83*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_DEFAULT_TTL_STATUS 0x800e 84*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_FRIEND_GET 0x800f 85*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_FRIEND_SET 0x8010 86*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_FRIEND_STATUS 0x8011 87*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_GATT_PROXY_GET 0x8012 88*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_GATT_PROXY_SET 0x8013 89*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_GATT_PROXY_STATUS 0x8014 90*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_KEY_REFRESH_PHASE_GET 0x8015 91*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_KEY_REFRESH_PHASE_SET 0x8016 92*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_KEY_REFRESH_PHASE_STATUS 0x8017 93*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_GET 0x8018 94*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_STATUS 0x8019 95*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_PUBLICATION_VIRTUAL_ADDRESS_SET 0x801a 96*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_ADD 0x801b 97*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_DELETE 0x801c 98*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_DELETE_ALL 0x801d 99*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_OVERWRITE 0x801e 100*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_STATUS 0x801f 101*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_ADD 0x8020 102*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_DELETE 0x8021 103*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_OVERWRITE 0x8022 104*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETWORK_TRANSMIT_GET 0x8023 105*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETWORK_TRANSMIT_SET 0x8024 106*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETWORK_TRANSMIT_STATUS 0x8025 107*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_RELAY_GET 0x8026 108*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_RELAY_SET 0x8027 109*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_RELAY_STATUS 0x8028 110*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_SUBSCRIPTION_GET 0x8029 111*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_SUBSCRIPTION_LIST 0x802a 112*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_SUBSCRIPTION_GET 0x802b 113*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_SUBSCRIPTION_LIST 0x802c 114*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_LOW_POWER_NODE_POLL_TIMEOUT_GET 0x802d 115*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_LOW_POWER_NODE_POLL_TIMEOUT_STATUS 0x802e 116*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_CLEAR 0x802f 117*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_CLEAR_UNACKNOWLEDGED 0x8030 118*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_GET 0x8031 119*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_TEST 0x8032 120*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_FAULT_TEST_UNACKNOWLEDGED 0x8033 121*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_GET 0x8034 122*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_SET 0x8035 123*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_SET_UNACKNOWLEDGED 0x8036 124*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEALTH_PERIOD_STATUS 0x8037 125*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_PUBLICATION_GET 0x8038 126*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_PUBLICATION_SET 0x8039 127*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_SUBSCRIPTION_GET 0x803a 128*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_SUBSCRIPTION_SET 0x803b 129*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_HEARTBEAT_SUBSCRIPTION_STATUS 0x803c 130*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_APP_BIND 0x803d 131*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_APP_STATUS 0x803e 132*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_MODEL_APP_UNBIND 0x803f 133*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_ADD 0x8040 134*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_DELETE 0x8041 135*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_GET 0x8042 136*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_LIST 0x8043 137*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_STATUS 0x8044 138*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NETKEY_UPDATE 0x8045 139*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_IDENTITY_GET 0x8046 140*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_IDENTITY_SET 0x8047 141*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_IDENTITY_STATUS 0x8048 142*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_RESET 0x8049 143*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_NODE_RESET_STATUS 0x804a 144*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_APP_GET 0x804b 145*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_SIG_MODEL_APP_LIST 0x804c 146*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_APP_GET 0x804d 147*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_OPERATION_VENDOR_MODEL_APP_LIST 0x804e 148*f4854a5eSMatthias Ringwald 149*f4854a5eSMatthias Ringwald // Foundation Models Status Codes 150*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_SUCCESS 0x00 151*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_ADDRESS 0x01 152*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_MODEL 0x02 153*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_APPKEY_INDEX 0x03 154*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_NETKEY_INDEX 0x04 155*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INSUFFICIENT_RESOURCES 0x05 156*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_KEY_INDEX_ALREADY_STORED 0x06 157*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_PUBLISH_PARAMETER 0x07 158*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_NOT_A_SUBSCRIPTION_MODEL 0x08 159*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_STORAGE_FAILURE 0x09 160*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_FEATURE_NOT_SUPPORTED 0x0a 161*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_UPDATE 0x0b 162*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_REMOVE 0x0c 163*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_BIND 0x0d 164*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_TEMPORARILY_UNABLE_TO_CHANGE_STATE 0x0e 165*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_CANNOT_SET 0x0f 166*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_UNSPECIFIED_ERROR 0x10 167*f4854a5eSMatthias Ringwald #define MESH_FOUNDATION_STATUS_INVALID_BINDING 0x11 168*f4854a5eSMatthias Ringwald 169*f4854a5eSMatthias Ringwald /** 170*f4854a5eSMatthias Ringwald * 171*f4854a5eSMatthias Ringwald * @param value on/off 172*f4854a5eSMatthias Ringwald */ 173*f4854a5eSMatthias Ringwald void mesh_foundation_gatt_proxy_set(uint8_t value); 174*f4854a5eSMatthias Ringwald 175*f4854a5eSMatthias Ringwald /** 176*f4854a5eSMatthias Ringwald * 177*f4854a5eSMatthias Ringwald * @return 178*f4854a5eSMatthias Ringwald */ 179*f4854a5eSMatthias Ringwald uint8_t mesh_foundation_gatt_proxy_get(void); 180*f4854a5eSMatthias Ringwald 181*f4854a5eSMatthias Ringwald /** 182*f4854a5eSMatthias Ringwald * 183*f4854a5eSMatthias Ringwald * @param value on/off 184*f4854a5eSMatthias Ringwald */ 185*f4854a5eSMatthias Ringwald void mesh_foundation_beacon_set(uint8_t value); 186*f4854a5eSMatthias Ringwald 187*f4854a5eSMatthias Ringwald /** 188*f4854a5eSMatthias Ringwald * 189*f4854a5eSMatthias Ringwald * @return 190*f4854a5eSMatthias Ringwald */ 191*f4854a5eSMatthias Ringwald uint8_t mesh_foundation_beacon_get(void); 192*f4854a5eSMatthias Ringwald 193*f4854a5eSMatthias Ringwald /** 194*f4854a5eSMatthias Ringwald * 195*f4854a5eSMatthias Ringwald * @param ttl 196*f4854a5eSMatthias Ringwald */ 197*f4854a5eSMatthias Ringwald void mesh_foundation_default_ttl_set(uint8_t ttl); 198*f4854a5eSMatthias Ringwald 199*f4854a5eSMatthias Ringwald /** 200*f4854a5eSMatthias Ringwald * 201*f4854a5eSMatthias Ringwald * @return 202*f4854a5eSMatthias Ringwald */ 203*f4854a5eSMatthias Ringwald uint8_t mesh_foundation_default_ttl_get(void); 204*f4854a5eSMatthias Ringwald 205*f4854a5eSMatthias Ringwald /** 206*f4854a5eSMatthias Ringwald * 207*f4854a5eSMatthias Ringwald * @param value on/off 208*f4854a5eSMatthias Ringwald */ 209*f4854a5eSMatthias Ringwald void mesh_foundation_friend_set(uint8_t value); 210*f4854a5eSMatthias Ringwald 211*f4854a5eSMatthias Ringwald /** 212*f4854a5eSMatthias Ringwald * 213*f4854a5eSMatthias Ringwald * @return 214*f4854a5eSMatthias Ringwald */ 215*f4854a5eSMatthias Ringwald uint8_t mesh_foundation_friend_get(void); 216*f4854a5eSMatthias Ringwald 217*f4854a5eSMatthias Ringwald /** 218*f4854a5eSMatthias Ringwald * 219*f4854a5eSMatthias Ringwald * @param value on/off 220*f4854a5eSMatthias Ringwald */ 221*f4854a5eSMatthias Ringwald void mesh_foundation_low_power_set(uint8_t value); 222*f4854a5eSMatthias Ringwald 223*f4854a5eSMatthias Ringwald /** 224*f4854a5eSMatthias Ringwald * 225*f4854a5eSMatthias Ringwald * @return 226*f4854a5eSMatthias Ringwald */ 227*f4854a5eSMatthias Ringwald uint8_t mesh_foundation_low_power_get(void); 228*f4854a5eSMatthias Ringwald 229*f4854a5eSMatthias Ringwald /** 230*f4854a5eSMatthias Ringwald * 231*f4854a5eSMatthias Ringwald * @param network_transmit 232*f4854a5eSMatthias Ringwald */ 233*f4854a5eSMatthias Ringwald void mesh_foundation_network_transmit_set(uint8_t network_transmit); 234*f4854a5eSMatthias Ringwald 235*f4854a5eSMatthias Ringwald /** 236*f4854a5eSMatthias Ringwald * 237*f4854a5eSMatthias Ringwald * @return 238*f4854a5eSMatthias Ringwald */ 239*f4854a5eSMatthias Ringwald uint8_t mesh_foundation_network_transmit_get(void); 240*f4854a5eSMatthias Ringwald /** 241*f4854a5eSMatthias Ringwald * 242*f4854a5eSMatthias Ringwald * @param relay 243*f4854a5eSMatthias Ringwald */ 244*f4854a5eSMatthias Ringwald void mesh_foundation_relay_set(uint8_t relay); 245*f4854a5eSMatthias Ringwald 246*f4854a5eSMatthias Ringwald /** 247*f4854a5eSMatthias Ringwald * 248*f4854a5eSMatthias Ringwald * @return 249*f4854a5eSMatthias Ringwald */ 250*f4854a5eSMatthias Ringwald uint8_t mesh_foundation_relay_get(void); 251*f4854a5eSMatthias Ringwald 252*f4854a5eSMatthias Ringwald /** 253*f4854a5eSMatthias Ringwald * 254*f4854a5eSMatthias Ringwald * @param relay_retransmit 255*f4854a5eSMatthias Ringwald */ 256*f4854a5eSMatthias Ringwald void mesh_foundation_relay_retransmit_set(uint8_t relay_retransmit); 257*f4854a5eSMatthias Ringwald 258*f4854a5eSMatthias Ringwald /** 259*f4854a5eSMatthias Ringwald * 260*f4854a5eSMatthias Ringwald * @return 261*f4854a5eSMatthias Ringwald */ 262*f4854a5eSMatthias Ringwald uint8_t mesh_foundation_relay_retransmit_get(void); 263*f4854a5eSMatthias Ringwald 264*f4854a5eSMatthias Ringwald /** 265*f4854a5eSMatthias Ringwald * @brief Get Features map (Relay, Proxy, Friend, Low Power) 266*f4854a5eSMatthias Ringwald */ 267*f4854a5eSMatthias Ringwald uint16_t mesh_foundation_get_features(void); 268*f4854a5eSMatthias Ringwald 269*f4854a5eSMatthias Ringwald #ifdef __cplusplus 270*f4854a5eSMatthias Ringwald } /* end of extern "C" */ 271*f4854a5eSMatthias Ringwald #endif 272*f4854a5eSMatthias Ringwald 273*f4854a5eSMatthias Ringwald #endif 274