chore: import local project into Gitea
This commit is contained in:
123
include/network_manager.h
Normal file
123
include/network_manager.h
Normal file
@@ -0,0 +1,123 @@
|
||||
/**
|
||||
* Network Manager Header
|
||||
* Handles dual interface management for ESP32-P4-NANO:
|
||||
* - ESP32-P4: Ethernet interface (LAN8720 RMII PHY)
|
||||
* - ESP32-C6: Wi-Fi Access Point
|
||||
*
|
||||
* Enhanced with comprehensive debugging and error handling
|
||||
*/
|
||||
|
||||
#ifndef NETWORK_MANAGER_H
|
||||
#define NETWORK_MANAGER_H
|
||||
|
||||
#include <esp_err.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include "esp_netif.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
// Network interface types
|
||||
typedef enum {
|
||||
NETIF_TYPE_ETHERNET,
|
||||
NETIF_TYPE_WIFI_AP
|
||||
} network_interface_type_t;
|
||||
|
||||
// Network statistics structure
|
||||
typedef struct {
|
||||
bool link_up;
|
||||
uint32_t rx_packets;
|
||||
uint32_t tx_packets;
|
||||
uint32_t rx_bytes;
|
||||
uint32_t tx_bytes;
|
||||
uint32_t rx_errors;
|
||||
uint32_t tx_errors;
|
||||
} network_stats_t;
|
||||
|
||||
// GPIO Configuration for ESP32-P4-NANO with IP101GRI PHY
|
||||
#define ETH_MDC_GPIO 31
|
||||
#define ETH_MDIO_GPIO 52
|
||||
#define ETH_PHY_RST_GPIO 51
|
||||
#define ETH_PHY_ADDR 0
|
||||
#define ETH_REF_CLK_GPIO 50
|
||||
#define ETH_TX_EN_GPIO 49
|
||||
#define ETH_TXD0_GPIO 34
|
||||
#define ETH_TXD1_GPIO 35
|
||||
#define ETH_RXD0_GPIO 30
|
||||
#define ETH_RXD1_GPIO 29
|
||||
#define ETH_CRS_DV_GPIO 28
|
||||
|
||||
// Function declarations
|
||||
|
||||
/**
|
||||
* Enable/disable debug output
|
||||
*/
|
||||
esp_err_t network_manager_set_debug(bool enable);
|
||||
|
||||
/**
|
||||
* Enable/disable matrix debug output
|
||||
*/
|
||||
esp_err_t network_manager_set_matrix_debug(bool enable);
|
||||
|
||||
/**
|
||||
* Initialize Ethernet interface (LAN8720 RMII PHY)
|
||||
*/
|
||||
esp_err_t network_manager_init_ethernet(void);
|
||||
|
||||
/**
|
||||
* Initialize Wi-Fi Access Point using ESP-Hosted-FG
|
||||
*/
|
||||
esp_err_t network_manager_init_wifi_ap(void);
|
||||
|
||||
/**
|
||||
* Monitor Ethernet interface status with enhanced debugging
|
||||
*/
|
||||
void network_manager_monitor_ethernet(void);
|
||||
|
||||
/**
|
||||
* Monitor Wi-Fi AP status with enhanced debugging
|
||||
*/
|
||||
void network_manager_monitor_wifi(void);
|
||||
|
||||
/**
|
||||
* Update network statistics with debugging
|
||||
*/
|
||||
void network_manager_update_stats(void);
|
||||
|
||||
/**
|
||||
* Get network statistics for specified interface
|
||||
*/
|
||||
esp_err_t network_manager_get_stats(network_interface_type_t type, network_stats_t *stats);
|
||||
|
||||
/**
|
||||
* Get Ethernet interface handle
|
||||
*/
|
||||
esp_netif_t* network_manager_get_ethernet_netif(void);
|
||||
|
||||
/**
|
||||
* Get Wi-Fi AP interface handle
|
||||
*/
|
||||
esp_netif_t* network_manager_get_wifi_ap_netif(void);
|
||||
|
||||
/**
|
||||
* Check if Ethernet link is up
|
||||
*/
|
||||
bool network_manager_ethernet_link_up(void);
|
||||
|
||||
/**
|
||||
* Get Ethernet MAC address
|
||||
*/
|
||||
esp_err_t network_manager_get_ethernet_mac(uint8_t *mac);
|
||||
|
||||
/**
|
||||
* Get Wi-Fi AP MAC address
|
||||
*/
|
||||
esp_err_t network_manager_get_wifi_mac(uint8_t *mac);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // NETWORK_MANAGER_H
|
||||
Reference in New Issue
Block a user