8
8
#include < Arduino.h>
9
9
#include < sys/time.h>
10
10
11
+ #ifdef CONFIG_LWIP_TCPIP_CORE_LOCKING
12
+ #include " lwip/priv/tcpip_priv.h"
13
+ #endif
14
+
11
15
#ifdef MYCILA_LOGGER_SUPPORT
12
- #include < MycilaLogger.h>
16
+ #include < MycilaLogger.h>
13
17
extern Mycila::Logger logger;
14
- #define LOGD (tag, format, ...) logger.debug(tag, format, ##__VA_ARGS__)
15
- #define LOGI (tag, format, ...) logger.info(tag, format, ##__VA_ARGS__)
16
- #define LOGW (tag, format, ...) logger.warn(tag, format, ##__VA_ARGS__)
17
- #define LOGE (tag, format, ...) logger.error(tag, format, ##__VA_ARGS__)
18
+ #define LOGD (tag, format, ...) logger.debug(tag, format, ##__VA_ARGS__)
19
+ #define LOGI (tag, format, ...) logger.info(tag, format, ##__VA_ARGS__)
20
+ #define LOGW (tag, format, ...) logger.warn(tag, format, ##__VA_ARGS__)
21
+ #define LOGE (tag, format, ...) logger.error(tag, format, ##__VA_ARGS__)
18
22
#else
19
- #define LOGD (tag, format, ...) ESP_LOGD(tag, format, ##__VA_ARGS__)
20
- #define LOGI (tag, format, ...) ESP_LOGI(tag, format, ##__VA_ARGS__)
21
- #define LOGW (tag, format, ...) ESP_LOGW(tag, format, ##__VA_ARGS__)
22
- #define LOGE (tag, format, ...) ESP_LOGE(tag, format, ##__VA_ARGS__)
23
+ #define LOGD (tag, format, ...) ESP_LOGD(tag, format, ##__VA_ARGS__)
24
+ #define LOGI (tag, format, ...) ESP_LOGI(tag, format, ##__VA_ARGS__)
25
+ #define LOGW (tag, format, ...) ESP_LOGW(tag, format, ##__VA_ARGS__)
26
+ #define LOGE (tag, format, ...) ESP_LOGE(tag, format, ##__VA_ARGS__)
23
27
#endif
24
28
25
29
#define TAG " NTP"
@@ -63,7 +67,18 @@ bool Mycila::NTPClass::sync(const char* server, const uint8_t retryInterval) {
63
67
_server = server;
64
68
_ticker.detach ();
65
69
70
+ #ifdef CONFIG_LWIP_TCPIP_CORE_LOCKING
71
+ if (!sys_thread_tcpip (LWIP_CORE_LOCK_QUERY_HOLDER))
72
+ LOCK_TCPIP_CORE ();
73
+ #endif
74
+
66
75
configTime (0 , 0 , _server.c_str ());
76
+
77
+ #ifdef CONFIG_LWIP_TCPIP_CORE_LOCKING
78
+ if (sys_thread_tcpip (LWIP_CORE_LOCK_QUERY_HOLDER))
79
+ UNLOCK_TCPIP_CORE ();
80
+ #endif
81
+
67
82
if (!_spec.isEmpty ()) {
68
83
setenv (" TZ" , _spec.c_str (), 1 );
69
84
tzset ();
@@ -75,7 +90,8 @@ bool Mycila::NTPClass::sync(const char* server, const uint8_t retryInterval) {
75
90
if (!_synced) {
76
91
LOGI (TAG, " Syncing time with %s" , _server.c_str ());
77
92
_ticker.attach (
78
- retryInterval, +[](NTPClass* instance) {
93
+ retryInterval,
94
+ +[](NTPClass* instance) {
79
95
// Serial.println("NTP Tick");
80
96
if (!instance->_synced ) {
81
97
struct tm timeInfo;
0 commit comments