mirror of
https://github.com/bluekitchen/btstack.git
synced 2025-04-16 17:42:51 +00:00
mesh: add helper funcitons for checking address types
This commit is contained in:
parent
667063f1a7
commit
e7b3961b0a
@ -156,6 +156,26 @@ int mesh_network_address_virtual(uint16_t addr){
|
||||
return (addr & 0xC000) == 0x8000; // 0b10xx xxxx xxxx xxxx
|
||||
}
|
||||
|
||||
int mesh_network_address_group(uint16_t addr){
|
||||
return (addr & 0xC000) == 0xC000; // 0b11xx xxxx xxxx xxxx
|
||||
}
|
||||
|
||||
int mesh_network_address_all_proxies(uint16_t addr){
|
||||
return addr == MESH_ADDRESS_ALL_PROXIES;
|
||||
}
|
||||
|
||||
int mesh_network_address_all_nodes(uint16_t addr){
|
||||
return addr == MESH_ADDRESS_ALL_NODES;
|
||||
}
|
||||
|
||||
int mesh_network_address_all_friends(uint16_t addr){
|
||||
return addr == MESH_ADDRESS_ALL_FRIENDS;
|
||||
}
|
||||
|
||||
int mesh_network_address_all_relays(uint16_t addr){
|
||||
return addr == MESH_ADDRESS_ALL_RELAYS;
|
||||
}
|
||||
|
||||
int mesh_network_addresses_valid(uint8_t ctl, uint16_t src, uint16_t dst){
|
||||
// printf("CTL: %u\n", ctl);
|
||||
// printf("SRC: %04x\n", src);
|
||||
|
@ -51,7 +51,11 @@ extern "C" {
|
||||
#define MESH_NETWORK_PAYLOAD_MAX 29
|
||||
#define MESH_ACCESS_PAYLOAD_MAX 384
|
||||
|
||||
#define MESH_ADDRESS_UNSASSIGNED 0
|
||||
#define MESH_ADDRESS_UNSASSIGNED 0x0000u
|
||||
#define MESH_ADDRESS_ALL_PROXIES 0xFFFCu
|
||||
#define MESH_ADDRESS_ALL_FRIENDS 0xFFFDu
|
||||
#define MESH_ADDRESS_ALL_RELAYS 0xFFFEu
|
||||
#define MESH_ADDRESS_ALL_NODES 0xFFFFu
|
||||
|
||||
typedef enum {
|
||||
MESH_NETWORK_PDU_RECEIVED,
|
||||
@ -197,6 +201,42 @@ int mesh_network_addresses_valid(uint8_t ctl, uint16_t src, uint16_t dst);
|
||||
*/
|
||||
int mesh_network_address_unicast(uint16_t addr);
|
||||
|
||||
/**
|
||||
* @brief Check if Unicast address
|
||||
* @param addr
|
||||
* @returns 1 if unicast
|
||||
*/
|
||||
int mesh_network_address_group(uint16_t addr);
|
||||
|
||||
/**
|
||||
* @brief Check if All Proxies address
|
||||
* @param addr
|
||||
* @returns 1 if all proxies
|
||||
*/
|
||||
int mesh_network_address_all_proxies(uint16_t addr);
|
||||
|
||||
/**
|
||||
* @brief Check if All Nodes address
|
||||
* @param addr
|
||||
* @returns 1 if all nodes
|
||||
*/
|
||||
int mesh_network_address_all_nodes(uint16_t addr);
|
||||
|
||||
/**
|
||||
* @brief Check if All Friends address
|
||||
* @param addr
|
||||
* @returns 1 if all friends
|
||||
*/
|
||||
int mesh_network_address_all_friends(uint16_t addr);
|
||||
|
||||
/**
|
||||
* @brief Check if All Relays address
|
||||
* @param addr
|
||||
* @returns 1 if all relays
|
||||
*/
|
||||
int mesh_network_address_all_relays(uint16_t addr);
|
||||
|
||||
|
||||
/**
|
||||
* @brief Check if Virtual address
|
||||
* @param addr
|
||||
|
Loading…
x
Reference in New Issue
Block a user