ieee802154: add multipan api

This commit is contained in:
xiaqilin 2022-12-14 17:51:28 +08:00
parent aa05964412
commit 98871be8ee
3 changed files with 87 additions and 2 deletions

View File

@ -1,5 +1,5 @@
/*
* SPDX-FileCopyrightText: 2021 Espressif Systems (Shanghai) CO LTD
* SPDX-FileCopyrightText: 2021-2022 Espressif Systems (Shanghai) CO LTD
*
* SPDX-License-Identifier: Apache-2.0
*/
@ -184,6 +184,81 @@ void esp_ieee802154_get_extended_address(uint8_t *ext_addr);
*/
void esp_ieee802154_set_extended_address(const uint8_t *ext_addr);
/**
* @brief Get the device PAN ID for specific interface.
*
* @param[in] index The interface index.
*
* @return The device PAN ID.
*
*/
uint16_t esp_ieee802154_get_multipan_panid(esp_ieee802154_multipan_index_t index);
/**
* @brief Set the device PAN ID for specific interface.
*
* @param[in] index The interface index.
* @param[in] panid The device PAN ID.
*
*/
void esp_ieee802154_set_multipan_panid(esp_ieee802154_multipan_index_t index, uint16_t panid);
/**
* @brief Get the device short address for specific interface.
*
* @param[in] index The interface index.
*
* @return The device short address.
*
*/
uint16_t esp_ieee802154_get_multipan_short_address(esp_ieee802154_multipan_index_t index);
/**
* @brief Set the device short address for specific interface.
*
* @param[in] index The interface index.
* @param[in] short_address The device short address.
*
*/
void esp_ieee802154_set_multipan_short_address(esp_ieee802154_multipan_index_t index, uint16_t short_address);
/**
* @brief Get the device extended address for specific interface.
*
* @param[in] index The interface index.
* @param[out] ext_addr The pointer to the device extended address.
*
*/
void esp_ieee802154_get_multipan_extended_address(esp_ieee802154_multipan_index_t index, uint8_t *ext_addr);
/**
* @brief Set the device extended address for specific interface.
*
* @param[in] index The interface index.
* @param[in] ext_addr The pointer to the device extended address.
*
*/
void esp_ieee802154_set_multipan_extended_address(esp_ieee802154_multipan_index_t index, const uint8_t *ext_addr);
/**
* @brief Get the device current multipan interface enable mask.
*
* @return Current multipan interface enable mask.
*
*/
uint8_t esp_ieee802154_get_multipan_enable(void);
/**
* @brief Enable specific interface for the device.
*
* As an example, call `esp_ieee802154_set_multipan_enable(BIT(ESP_IEEE802154_MULTIPAN_0) | BIT(ESP_IEEE802154_MULTIPAN_1));`
* to enable multipan interface 0 and 1.
*
* @param[in] mask The multipan interface bit mask.
*
*/
void esp_ieee802154_set_multipan_enable(uint8_t mask);
/**
* @brief Get the device coordinator.
*

View File

@ -58,6 +58,16 @@ typedef enum {
ESP_IEEE802154_AUTO_PENDING_ZIGBEE, /*!< Frame pending bit set to 0 only if src address is short address and matches in table, in the ack to Data Request */
} esp_ieee802154_pending_mode_t;
/**
* @brief The four groups of mac filter interface index.
*/
typedef enum {
ESP_IEEE802154_MULTIPAN_0 = 0,
ESP_IEEE802154_MULTIPAN_1 = 1,
ESP_IEEE802154_MULTIPAN_2 = 2,
ESP_IEEE802154_MULTIPAN_3 = 3,
} esp_ieee802154_multipan_index_t;
/**
* @brief The information of received 15.4 frame.
*

@ -1 +1 @@
Subproject commit 6ddc1b2d80d7db565f144f76e60f77a0f98a2cbd
Subproject commit c9fb54daa7c9d9c7a3322c332bcf2ff6a6930d94