Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 600f4c4

Browse filesBrowse files
authored
Update IDF to 1c3dd23
* Update mDNS and LEDC * update toolchain * Update IDF to 1c3dd23 * Advertise the board variant for Arduino OTA * Add generic variant definition for mDNS
1 parent 70d0d46 commit 600f4c4
Copy full SHA for 600f4c4

File tree

Expand file treeCollapse file tree

150 files changed

+7079
-3732
lines changed
Filter options

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Dismiss banner
Expand file treeCollapse file tree

150 files changed

+7079
-3732
lines changed

‎cores/esp32/esp32-hal-bt.c

Copy file name to clipboardExpand all lines: cores/esp32/esp32-hal-bt.c
+1-1Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
#if defined(CONFIG_BT_ENABLED) && defined(CONFIG_BLUEDROID_ENABLED)
1818

1919

20-
#include "bt.h"
20+
#include "esp_bt.h"
2121
#include "esp_bt_defs.h"
2222
#include "esp_bt_main.h"
2323

‎cores/esp32/esp32-hal-ledc.c

Copy file name to clipboardExpand all lines: cores/esp32/esp32-hal-ledc.c
+4-4Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ static void _ledcSetupTimer(uint8_t chan, uint32_t div_num, uint8_t bit_num, boo
6868
#endif
6969
}
7070
LEDC_MUTEX_LOCK();
71-
LEDC_TIMER(group, timer).conf.div_num = div_num;//18 bit (10.8) This register is used to configure parameter for divider in timer the least significant eight bits represent the decimal part.
72-
LEDC_TIMER(group, timer).conf.bit_num = bit_num;//5 bit This register controls the range of the counter in timer. the counter range is [0 2**bit_num] the max bit width for counter is 20.
71+
LEDC_TIMER(group, timer).conf.clock_divider = div_num;//18 bit (10.8) This register is used to configure parameter for divider in timer the least significant eight bits represent the decimal part.
72+
LEDC_TIMER(group, timer).conf.duty_resolution = bit_num;//5 bit This register controls the range of the counter in timer. the counter range is [0 2**bit_num] the max bit width for counter is 20.
7373
LEDC_TIMER(group, timer).conf.tick_sel = apb_clk;//apb clock
7474
if(group) {
7575
LEDC_TIMER(group, timer).conf.low_speed_update = 1;//This bit is only useful for low speed timer channels, reserved for high speed timers
@@ -111,8 +111,8 @@ static double _ledcTimerRead(uint8_t chan)
111111
bool apb_clk;
112112
uint8_t group=(chan/8), timer=((chan/2)%4);
113113
LEDC_MUTEX_LOCK();
114-
div_num = LEDC_TIMER(group, timer).conf.div_num;//18 bit (10.8) This register is used to configure parameter for divider in timer the least significant eight bits represent the decimal part.
115-
bit_num = LEDC_TIMER(group, timer).conf.bit_num;//5 bit This register controls the range of the counter in timer. the counter range is [0 2**bit_num] the max bit width for counter is 20.
114+
div_num = LEDC_TIMER(group, timer).conf.clock_divider;//18 bit (10.8) This register is used to configure parameter for divider in timer the least significant eight bits represent the decimal part.
115+
bit_num = LEDC_TIMER(group, timer).conf.duty_resolution;//5 bit This register controls the range of the counter in timer. the counter range is [0 2**bit_num] the max bit width for counter is 20.
116116
apb_clk = LEDC_TIMER(group, timer).conf.tick_sel;//apb clock
117117
LEDC_MUTEX_UNLOCK();
118118
uint64_t clk_freq = 1000000;

‎libraries/ESPmDNS/src/ESPmDNS.cpp

Copy file name to clipboardExpand all lines: libraries/ESPmDNS/src/ESPmDNS.cpp
+118-52Lines changed: 118 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -39,144 +39,210 @@ License (MIT license):
3939
#endif
4040

4141
#include "ESPmDNS.h"
42+
#include "WiFi.h"
4243
#include <functional>
4344
#include "esp_wifi.h"
4445

45-
MDNSResponder::MDNSResponder() : mdns(NULL), _if(TCPIP_ADAPTER_IF_STA) {}
46+
static void _on_sys_event(system_event_t *event){
47+
mdns_handle_system_event(NULL, event);
48+
}
49+
50+
MDNSResponder::MDNSResponder() :results(NULL) {}
4651
MDNSResponder::~MDNSResponder() {
4752
end();
4853
}
4954

50-
bool MDNSResponder::begin(const char* hostName, tcpip_adapter_if_t tcpip_if, uint32_t ttl){
51-
_if = tcpip_if;
52-
if(!mdns && mdns_init(_if, &mdns)){
55+
bool MDNSResponder::begin(const char* hostName){
56+
if(mdns_init()){
5357
log_e("Failed starting MDNS");
5458
return false;
5559
}
60+
WiFi.onEvent(_on_sys_event);
5661
_hostname = hostName;
57-
if(mdns_set_hostname(mdns, hostName)) {
62+
if(mdns_hostname_set(hostName)) {
5863
log_e("Failed setting MDNS hostname");
5964
return false;
6065
}
6166
return true;
6267
}
6368

6469
void MDNSResponder::end() {
65-
if(!mdns){
66-
return;
67-
}
68-
mdns_free(mdns);
69-
mdns = NULL;
70+
mdns_free();
7071
}
7172

7273
void MDNSResponder::setInstanceName(String name) {
7374
if (name.length() > 63) return;
74-
if(mdns_set_instance(mdns, name.c_str())){
75+
if(mdns_instance_name_set(name.c_str())){
7576
log_e("Failed setting MDNS instance");
7677
return;
7778
}
7879
}
7980

81+
8082
void MDNSResponder::enableArduino(uint16_t port, bool auth){
81-
const char * arduTxtData[4] = {
82-
"board=" ARDUINO_BOARD,
83-
"tcp_check=no",
84-
"ssh_upload=no",
85-
"auth_upload=no"
83+
mdns_txt_item_t arduTxtData[4] = {
84+
{(char*)"board" ,(char*)ARDUINO_VARIANT},
85+
{(char*)"tcp_check" ,(char*)"no"},
86+
{(char*)"ssh_upload" ,(char*)"no"},
87+
{(char*)"auth_upload" ,(char*)"no"}
8688
};
87-
if(auth){
88-
arduTxtData[3] = "auth_upload=yes";
89-
}
9089

91-
if(mdns_service_add(mdns, "_arduino", "_tcp", port)) {
90+
if(mdns_service_add(NULL, "_arduino", "_tcp", port, arduTxtData, 4)) {
9291
log_e("Failed adding Arduino service");
93-
} else if(mdns_service_txt_set(mdns, "_arduino", "_tcp", 4, arduTxtData)) {
94-
log_e("Failed setting Arduino service TXT");
92+
}
93+
94+
if(auth && mdns_service_txt_item_set("_arduino", "_tcp", "auth_upload", "yes")){
95+
log_e("Failed setting Arduino txt item");
9596
}
9697
}
9798

9899
void MDNSResponder::disableArduino(){
99-
if(mdns_service_remove(mdns, "_arduino", "_tcp")) {
100+
if(mdns_service_remove("_arduino", "_tcp")) {
100101
log_w("Failed removing Arduino service");
101102
}
102103
}
103104

104-
void MDNSResponder::enableWorkstation(){
105+
void MDNSResponder::enableWorkstation(wifi_interface_t interface){
105106
char winstance[21+_hostname.length()];
106107
uint8_t mac[6];
107-
esp_wifi_get_mac((wifi_interface_t)_if, mac);
108+
esp_wifi_get_mac(interface, mac);
108109
sprintf(winstance, "%s [%02x:%02x:%02x:%02x:%02x:%02x]", _hostname.c_str(), mac[0], mac[1], mac[2], mac[3], mac[4], mac[5]);
109110

110-
if(mdns_service_add(mdns, "_workstation", "_tcp", 9)) {
111+
if(mdns_service_add(NULL, "_workstation", "_tcp", 9, NULL, 0)) {
111112
log_e("Failed adding Workstation service");
112-
} else if(mdns_service_instance_set(mdns, "_workstation", "_tcp", winstance)) {
113+
} else if(mdns_service_instance_name_set("_workstation", "_tcp", winstance)) {
113114
log_e("Failed setting Workstation service instance name");
114115
}
115116
}
116117

117118
void MDNSResponder::disableWorkstation(){
118-
if(mdns_service_remove(mdns, "_workstation", "_tcp")) {
119+
if(mdns_service_remove("_workstation", "_tcp")) {
119120
log_w("Failed removing Workstation service");
120121
}
121122
}
122123

123124
void MDNSResponder::addService(char *name, char *proto, uint16_t port){
124-
if(mdns_service_add(mdns, name, proto, port)) {
125+
if(mdns_service_add(NULL, name, proto, port, NULL, 0)) {
125126
log_e("Failed adding service %s.%s.\n", name, proto);
126127
}
127128
}
128129

129130
bool MDNSResponder::addServiceTxt(char *name, char *proto, char *key, char *value){
130-
//ToDo: implement it in IDF. This will set the TXT to one record currently
131-
String txt = String(key) + "=" + String(value);
132-
const char * txt_chr[1] = {txt.c_str()};
133-
if(mdns_service_txt_set(mdns, name, proto, 1, txt_chr)) {
131+
if(mdns_service_txt_item_set(name, proto, key, value)) {
134132
log_e("Failed setting service TXT");
135133
return false;
136134
}
137135
return true;
138136
}
139137

140-
int MDNSResponder::queryService(char *service, char *proto) {
141-
mdns_result_free(mdns);
142-
if(proto){
143-
char srv[strlen(service)+2];
144-
char prt[strlen(proto)+2];
145-
sprintf(srv, "_%s", service);
146-
sprintf(prt, "_%s", proto);
147-
return mdns_query(mdns, srv, prt, 2000);
138+
IPAddress MDNSResponder::queryHost(char *host, uint32_t timeout){
139+
struct ip4_addr addr;
140+
addr.addr = 0;
141+
142+
esp_err_t err = mdns_query_a(host, timeout, &addr);
143+
if(err){
144+
if(err == ESP_ERR_NOT_FOUND){
145+
log_w("Host was not found!");
146+
return IPAddress();
147+
}
148+
log_e("Query Failed");
149+
return IPAddress();
148150
}
149-
return mdns_query(mdns, service, NULL, 2000);
151+
return IPAddress(addr.addr);
150152
}
151153

152-
IPAddress MDNSResponder::queryHost(char *host){
153-
mdns_result_free(mdns);
154-
if(!mdns_query(mdns, host, NULL, 2000)){
155-
return IPAddress();
154+
155+
int MDNSResponder::queryService(char *service, char *proto) {
156+
if(!service || !service[0] || !proto || !proto[0]){
157+
log_e("Bad Parameters");
158+
return 0;
159+
}
160+
161+
if(results){
162+
mdns_query_results_free(results);
163+
results = NULL;
156164
}
157-
return IP(0);
165+
166+
char srv[strlen(service)+2];
167+
char prt[strlen(proto)+2];
168+
sprintf(srv, "_%s", service);
169+
sprintf(prt, "_%s", proto);
170+
171+
esp_err_t err = mdns_query_ptr(srv, prt, 3000, 20, &results);
172+
if(err){
173+
log_e("Query Failed");
174+
return 0;
175+
}
176+
if(!results){
177+
log_w("No results found!");
178+
return 0;
179+
}
180+
181+
mdns_result_t * r = results;
182+
int i = 0;
183+
while(r){
184+
i++;
185+
r = r->next;
186+
}
187+
return i;
188+
}
189+
190+
mdns_result_t * MDNSResponder::_getResult(int idx){
191+
mdns_result_t * result = results;
192+
int i = 0;
193+
while(result){
194+
if(i == idx){
195+
break;
196+
}
197+
i++;
198+
result = result->next;
199+
}
200+
return result;
158201
}
159202

160203
String MDNSResponder::hostname(int idx) {
161-
const mdns_result_t * result = mdns_result_get(mdns, idx);
204+
mdns_result_t * result = _getResult(idx);
162205
if(!result){
163206
log_e("Result %d not found", idx);
164207
return String();
165208
}
166-
return String(result->host);
209+
return String(result->hostname);
167210
}
168211

169212
IPAddress MDNSResponder::IP(int idx) {
170-
const mdns_result_t * result = mdns_result_get(mdns, idx);
213+
mdns_result_t * result = _getResult(idx);
171214
if(!result){
172215
log_e("Result %d not found", idx);
173216
return IPAddress();
174217
}
175-
return IPAddress(result->addr.addr);
218+
mdns_ip_addr_t * addr = result->addr;
219+
while(addr){
220+
if(addr->addr.type == MDNS_IP_PROTOCOL_V4){
221+
return IPAddress(addr->addr.u_addr.ip4.addr);
222+
}
223+
addr = addr->next;
224+
}
225+
return IPAddress();
226+
}
227+
228+
IPv6Address MDNSResponder::IPv6(int idx) {
229+
mdns_result_t * result = _getResult(idx);
230+
if(!result){
231+
log_e("Result %d not found", idx);
232+
return IPv6Address();
233+
}
234+
mdns_ip_addr_t * addr = result->addr;
235+
while(addr){
236+
if(addr->addr.type == MDNS_IP_PROTOCOL_V6){
237+
return IPv6Address(addr->addr.u_addr.ip6.addr);
238+
}
239+
addr = addr->next;
240+
}
241+
return IPv6Address();
176242
}
177243

178244
uint16_t MDNSResponder::port(int idx) {
179-
const mdns_result_t * result = mdns_result_get(mdns, idx);
245+
mdns_result_t * result = _getResult(idx);
180246
if(!result){
181247
log_e("Result %d not found", idx);
182248
return 0;

‎libraries/ESPmDNS/src/ESPmDNS.h

Copy file name to clipboardExpand all lines: libraries/ESPmDNS/src/ESPmDNS.h
+13-11Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,19 @@ License (MIT license):
4242
#define ESP32MDNS_H
4343

4444
#include "Arduino.h"
45+
#include "IPv6Address.h"
4546
#include "mdns.h"
4647

4748
//this should be defined at build time
48-
#ifndef ARDUINO_BOARD
49-
#define ARDUINO_BOARD "esp32"
49+
#ifndef ARDUINO_VARIANT
50+
#define ARDUINO_VARIANT "esp32"
5051
#endif
5152

5253
class MDNSResponder {
5354
public:
5455
MDNSResponder();
5556
~MDNSResponder();
56-
bool begin(const char* hostName, tcpip_adapter_if_t tcpip_if=TCPIP_ADAPTER_IF_STA, uint32_t ttl=120);
57+
bool begin(const char* hostName);
5758
void end();
5859

5960
void setInstanceName(String name);
@@ -83,15 +84,15 @@ class MDNSResponder {
8384
void enableArduino(uint16_t port=3232, bool auth=false);
8485
void disableArduino();
8586

86-
void enableWorkstation();
87+
void enableWorkstation(wifi_interface_t interface=ESP_IF_WIFI_STA);
8788
void disableWorkstation();
8889

89-
IPAddress queryHost(char *host);
90-
IPAddress queryHost(const char *host){
91-
return queryHost((char *)host);
90+
IPAddress queryHost(char *host, uint32_t timeout=2000);
91+
IPAddress queryHost(const char *host, uint32_t timeout=2000){
92+
return queryHost((char *)host, timeout);
9293
}
93-
IPAddress queryHost(String host){
94-
return queryHost(host.c_str());
94+
IPAddress queryHost(String host, uint32_t timeout=2000){
95+
return queryHost(host.c_str(), timeout);
9596
}
9697

9798
int queryService(char *service, char *proto);
@@ -104,12 +105,13 @@ class MDNSResponder {
104105

105106
String hostname(int idx);
106107
IPAddress IP(int idx);
108+
IPv6Address IPv6(int idx);
107109
uint16_t port(int idx);
108110

109111
private:
110-
mdns_server_t * mdns;
111-
tcpip_adapter_if_t _if;
112112
String _hostname;
113+
mdns_result_t * results;
114+
mdns_result_t * _getResult(int idx);
113115
};
114116

115117
extern MDNSResponder MDNS;

‎libraries/WiFi/src/ETH.cpp

Copy file name to clipboardExpand all lines: libraries/WiFi/src/ETH.cpp
-1Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ extern void tcpipInit();
3030
static int _eth_phy_mdc_pin = -1;
3131
static int _eth_phy_mdio_pin = -1;
3232
static int _eth_phy_power_pin = -1;
33-
static eth_clock_mode_t _eth_clk_mode = ETH_CLOCK_GPIO0_IN;
3433
static eth_phy_power_enable_func _eth_phy_power_enable_orig = NULL;
3534

3635
static void _eth_phy_config_gpio(void)

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.