Files
OpenDTU/include/W5500.h

30 lines
789 B
C
Raw Normal View History

2024-09-26 19:22:30 +02:00
// SPDX-License-Identifier: GPL-2.0-or-later
2023-07-21 16:57:00 +02:00
#pragma once
#include <Arduino.h>
#include <driver/spi_master.h>
#include <esp_eth.h> // required for esp_eth_handle_t
2024-09-26 19:22:30 +02:00
#include <esp_netif.h>
2023-07-21 16:57:00 +02:00
#include <memory>
2023-07-21 16:57:00 +02:00
class W5500 {
private:
explicit W5500(spi_device_handle_t spi, gpio_num_t pin_int);
2023-07-21 16:57:00 +02:00
public:
W5500(const W5500&) = delete;
2024-09-26 19:22:30 +02:00
W5500& operator=(const W5500&) = delete;
2023-07-21 16:57:00 +02:00
~W5500();
static std::unique_ptr<W5500> setup(gpio_num_t pin_mosi, gpio_num_t pin_miso, gpio_num_t pin_sclk, gpio_num_t pin_cs, gpio_num_t pin_int, gpio_num_t pin_rst);
2023-07-21 16:57:00 +02:00
String macAddress();
private:
static bool connection_check_spi(spi_device_handle_t spi);
static bool connection_check_interrupt(gpio_num_t pin_int);
2023-07-21 16:57:00 +02:00
esp_eth_handle_t eth_handle;
2024-09-26 19:22:30 +02:00
esp_netif_t* eth_netif;
2023-07-21 16:57:00 +02:00
};