mirror of
https://github.com/esphome/esphome.git
synced 2024-11-25 12:15:33 +01:00
Add macros header with more usable Arduino version defines (#2145)
This commit is contained in:
parent
b0fa317302
commit
8cc3cbb22e
@ -1,9 +1,10 @@
|
||||
#include "esp8266_pwm.h"
|
||||
#include "esphome/core/macros.h"
|
||||
#include "esphome/core/log.h"
|
||||
#include "esphome/core/helpers.h"
|
||||
|
||||
#ifdef ARDUINO_ESP8266_RELEASE_2_3_0
|
||||
#error ESP8266 PWM requires at least arduino_core_version 2.4.0
|
||||
#if defined(ARDUINO_ARCH_ESP8266) && ARDUINO_VERSION_CODE < VERSION_CODE(2, 4, 0)
|
||||
#error ESP8266 PWM requires at least arduino_version 2.4.0
|
||||
#endif
|
||||
|
||||
#include <core_esp8266_waveform.h>
|
||||
|
@ -1,13 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "esphome/core/macros.h"
|
||||
#include "esphome/core/component.h"
|
||||
#include "esphome/core/helpers.h"
|
||||
#include "esphome/core/color.h"
|
||||
#include "esphome/components/light/light_output.h"
|
||||
#include "esphome/components/light/addressable_light.h"
|
||||
|
||||
#ifdef ARDUINO_ESP8266_RELEASE_2_3_0
|
||||
#error The NeoPixelBus library requires at least arduino_core_version 2.4.x
|
||||
#if defined(ARDUINO_ARCH_ESP8266) && ARDUINO_VERSION_CODE < VERSION_CODE(2, 4, 0)
|
||||
#error The NeoPixelBus library requires at least arduino_version 2.4.x
|
||||
#endif
|
||||
|
||||
#include "NeoPixelBus.h"
|
||||
|
@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "esphome/core/macros.h"
|
||||
#include "esphome/core/component.h"
|
||||
#include "esphome/core/defines.h"
|
||||
#include "esphome/core/automation.h"
|
||||
@ -17,7 +18,7 @@
|
||||
#include <ESP8266WiFiType.h>
|
||||
#include <ESP8266WiFi.h>
|
||||
|
||||
#ifdef ARDUINO_ESP8266_RELEASE_2_3_0
|
||||
#if defined(ARDUINO_ARCH_ESP8266) && ARDUINO_VERSION_CODE < VERSION_CODE(2, 4, 0)
|
||||
extern "C" {
|
||||
#include <user_interface.h>
|
||||
};
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "wifi_component.h"
|
||||
#include "esphome/core/macros.h"
|
||||
|
||||
#ifdef ARDUINO_ARCH_ESP8266
|
||||
|
||||
@ -10,10 +11,6 @@
|
||||
#include <wpa2_enterprise.h>
|
||||
#endif
|
||||
|
||||
#ifdef WIFI_IS_OFF_AT_BOOT // Identifies ESP8266 Arduino 3.0.0
|
||||
#define ARDUINO_ESP8266_RELEASE_3
|
||||
#endif
|
||||
|
||||
extern "C" {
|
||||
#include "lwip/err.h"
|
||||
#include "lwip/dns.h"
|
||||
@ -22,7 +19,7 @@ extern "C" {
|
||||
#if LWIP_IPV6
|
||||
#include "lwip/netif.h" // struct netif
|
||||
#endif
|
||||
#ifdef ARDUINO_ESP8266_RELEASE_3
|
||||
#if ARDUINO_VERSION_CODE >= VERSION_CODE(3, 0, 0)
|
||||
#include "LwipDhcpServer.h"
|
||||
#define wifi_softap_set_dhcps_lease(lease) dhcpSoftAP.set_dhcps_lease(lease)
|
||||
#define wifi_softap_set_dhcps_lease_time(time) dhcpSoftAP.set_dhcps_lease_time(time)
|
||||
@ -229,7 +226,7 @@ bool WiFiComponent::wifi_sta_connect_(const WiFiAP &ap) {
|
||||
conf.bssid_set = 0;
|
||||
}
|
||||
|
||||
#ifndef ARDUINO_ESP8266_RELEASE_2_3_0
|
||||
#if ARDUINO_VERSION_CODE >= VERSION_CODE(2, 4, 0)
|
||||
if (ap.get_password().empty()) {
|
||||
conf.threshold.authmode = AUTH_OPEN;
|
||||
} else {
|
||||
@ -495,7 +492,7 @@ void WiFiComponent::wifi_event_callback(System_Event_t *event) {
|
||||
ESP_LOGVV(TAG, "Event: AP receive Probe Request MAC=%s RSSI=%d", format_mac_addr(it.mac).c_str(), it.rssi);
|
||||
break;
|
||||
}
|
||||
#ifndef ARDUINO_ESP8266_RELEASE_2_3_0
|
||||
#if ARDUINO_VERSION_CODE >= VERSION_CODE(2, 4, 0)
|
||||
case EVENT_OPMODE_CHANGED: {
|
||||
auto it = event->event_info.opmode_changed;
|
||||
ESP_LOGV(TAG, "Event: Changed Mode old=%s new=%s", get_op_mode_str(it.old_opmode),
|
||||
@ -580,7 +577,7 @@ bool WiFiComponent::wifi_scan_start_() {
|
||||
config.bssid = nullptr;
|
||||
config.channel = 0;
|
||||
config.show_hidden = 1;
|
||||
#ifndef ARDUINO_ESP8266_RELEASE_2_3_0
|
||||
#if ARDUINO_VERSION_CODE >= VERSION_CODE(2, 4, 0)
|
||||
config.scan_type = WIFI_SCAN_TYPE_ACTIVE;
|
||||
if (FIRST_SCAN) {
|
||||
config.scan_time.active.min = 100;
|
||||
@ -659,7 +656,7 @@ bool WiFiComponent::wifi_ap_ip_config_(optional<ManualIP> manual_ip) {
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef ARDUINO_ESP8266_RELEASE_3
|
||||
#if ARDUINO_VERSION_CODE >= VERSION_CODE(3, 0, 0)
|
||||
dhcpSoftAP.begin(&info);
|
||||
#endif
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
#include "esphome/core/esphal.h"
|
||||
#include "esphome/core/macros.h"
|
||||
#include "esphome/core/helpers.h"
|
||||
#include "esphome/core/defines.h"
|
||||
#include "esphome/core/log.h"
|
||||
@ -298,7 +299,7 @@ void force_link_symbols() {
|
||||
|
||||
} // namespace esphome
|
||||
|
||||
#ifdef ARDUINO_ESP8266_RELEASE_2_3_0
|
||||
#if defined(ARDUINO_ARCH_ESP8266) && ARDUINO_VERSION_CODE < VERSION_CODE(2, 4, 0)
|
||||
// Fix 2.3.0 std missing memchr
|
||||
extern "C" {
|
||||
void *memchr(const void *s, int c, size_t n) {
|
||||
|
56
esphome/core/macros.h
Normal file
56
esphome/core/macros.h
Normal file
@ -0,0 +1,56 @@
|
||||
#pragma once
|
||||
|
||||
#define VERSION_CODE(major, minor, patch) ((major) << 16 | (minor) << 8 | (patch))
|
||||
|
||||
#if defined(ARDUINO_ARCH_ESP8266)
|
||||
|
||||
#include <core_version.h>
|
||||
#if defined(ARDUINO_ESP8266_MAJOR) && defined(ARDUINO_ESP8266_MINOR) && defined(ARDUINO_ESP8266_REVISION) // v3.0.1+
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(ARDUINO_ESP8266_MAJOR, ARDUINO_ESP8266_MINOR, ARDUINO_ESP8266_REVISION)
|
||||
#elif ARDUINO_ESP8266_GIT_VER == 0xefb0341a // version defines were screwed up in v3.0.0
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(3, 0, 0)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_4)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 4)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_3)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 3)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_2)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 2)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_1)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 1)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_7_0)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 7, 0)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_6_3)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 6, 3)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_6_2)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 6, 2)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_6_1)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 6, 1)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_5_2)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 5, 2)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_5_1)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 5, 1)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_5_0)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 5, 0)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_4_2)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 4, 2)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_4_1)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 4, 1)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_4_0)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 4, 0)
|
||||
#elif defined(ARDUINO_ESP8266_RELEASE_2_3_0)
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(2, 3, 0)
|
||||
#else
|
||||
#warning "Could not determine Arduino framework version, update esphome/core/macros.h!"
|
||||
#endif
|
||||
|
||||
#elif defined(ARDUINO_ARCH_ESP32)
|
||||
|
||||
#if defined(IDF_VER) // identifies v2, needed since v1 doesn't have the esp_arduino_version.h header
|
||||
#include <esp_arduino_version.h>
|
||||
#define ARDUINO_VERSION_CODE \
|
||||
VERSION_CODE(ESP_ARDUINO_VERSION_MAJOR, ESP_ARDUINO_VERSION_MINOR, ESP_ARDUINO_VERSION_PATH)
|
||||
#else
|
||||
#define ARDUINO_VERSION_CODE VERSION_CODE(1, 0, 0) // there are no defines identifying minor/patch version
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user