79 lines
2.0 KiB
C
79 lines
2.0 KiB
C
|
#ifndef H_MESH_NETWORK
|
||
|
#define H_MESH_NETWORK
|
||
|
|
||
|
#include <string.h>
|
||
|
#include "esp_wifi.h"
|
||
|
#include "esp_system.h"
|
||
|
#include "esp_event.h"
|
||
|
#include "esp_log.h"
|
||
|
#include "esp_mesh.h"
|
||
|
#include "esp_mesh_internal.h"
|
||
|
|
||
|
#ifndef CONFIG_MESH_MESSAGE_SIZE
|
||
|
#define CONFIG_MESH_MESSAGE_SIZE 1500
|
||
|
#endif
|
||
|
#ifndef CONFIG_MESH_TOPOLOGY
|
||
|
#define CONFIG_MESH_TOPOLOGY MESH_TOPO_TREE
|
||
|
#endif
|
||
|
#ifndef CONFIG_MESH_MAX_LAYER
|
||
|
#define CONFIG_MESH_MAX_LAYER 6
|
||
|
#endif
|
||
|
#ifndef CONFIG_MESH_ID
|
||
|
#define CONFIG_MESH_ID "00, 00, 00, 00, 00, 00"
|
||
|
#endif
|
||
|
#ifndef CONFIG_MESH_AP_AUTHMODE
|
||
|
#define CONFIG_MESH_AP_AUTHMODE WIFI_AUTH_WPA2_PSK
|
||
|
#endif
|
||
|
#ifndef CONFIG_MESH_AP_CONNECTIONS
|
||
|
#define CONFIG_MESH_AP_CONNECTIONS 6
|
||
|
#endif
|
||
|
#ifndef CONFIG_MESH_AP_PASSWD
|
||
|
#define CONFIG_MESH_AP_PASSWD "MAP_PASSWD"
|
||
|
#endif
|
||
|
#ifndef CONFIG_MESH_CHANNEL
|
||
|
#define CONFIG_MESH_CHANNEL 0
|
||
|
#endif
|
||
|
|
||
|
#ifndef CONFIG_MESH_ROUTER_SSID
|
||
|
#define CONFIG_MESH_ROUTER_SSID "ROUTER_SSID"
|
||
|
#endif
|
||
|
|
||
|
#ifndef CONFIG_MESH_ROUTER_PASSWD
|
||
|
#define CONFIG_MESH_ROUTER_PASSWD "ROUTER_PASSWD"
|
||
|
#endif
|
||
|
|
||
|
#ifndef CONFIG_MESH_ROUTE_TABLE_SIZE
|
||
|
#define CONFIG_MESH_ROUTE_TABLE_SIZE 50
|
||
|
#endif
|
||
|
|
||
|
|
||
|
struct mesh_packet
|
||
|
{
|
||
|
//todo type
|
||
|
//todo lenght
|
||
|
|
||
|
uint8_t au8Payload[1024];
|
||
|
};
|
||
|
|
||
|
typedef struct mesh_packet MESH_PACKET_t;
|
||
|
|
||
|
extern bool bIsMeshConnected;
|
||
|
extern int32_t i32MeshLayer;
|
||
|
extern mesh_addr_t mesh_parent_addr;
|
||
|
extern esp_netif_t* netif_sta;
|
||
|
|
||
|
esp_err_t errMeshNetworkInitialize();
|
||
|
esp_err_t errMeshNetworkInitializeWiFi();
|
||
|
esp_err_t errMeshNetworkInitializeRouter(mesh_cfg_t* cfg);
|
||
|
|
||
|
bool bCheckMACEquality(uint8_t* pu8aMAC, uint8_t* pu8bMAC);
|
||
|
esp_err_t errGetChildren(mesh_addr_t* pChildren, uint16_t* pu16ChildrenSize);
|
||
|
void vMeshEventHandler(void *arg, esp_event_base_t event_base, int32_t i32EventID, void* vpEventData);
|
||
|
void vIPEventHandler(void *arg, esp_event_base_t event_base, int32_t i32EventID, void *event_data);
|
||
|
esp_err_t errStartReceiveTask();
|
||
|
void vTaskReceiveMeshData(void *arg);
|
||
|
esp_err_t errSendMeshPacket(mesh_addr_t* pAddrDest, MESH_PACKET_t* pPacket);
|
||
|
|
||
|
#endif /* H_MESH_NETWORK */
|
||
|
|