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