Skip to content

Commit 7f55001

Browse files
committed
fix esp32 module runtime
1 parent 8745cfd commit 7f55001

6 files changed

Lines changed: 34 additions & 8 deletions

File tree

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
.DS_Store
77
/dist/
88
/build/
9+
/examples/**/build/
910
/tmp/
1011
/bin/
1112
/TODO.md
13+
/.codex/

examples/HttpPumpDemo/HttpPumpDemo.ino

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include <ZeroKernel.h>
2+
#include <adapters/PowerSaveLoopAdapter.h>
23
#include <modules/net/ZeroHttpPump.h>
34

45
using zerokernel::Kernel;
@@ -11,6 +12,10 @@ bool g_connectPending = true;
1112
unsigned long g_requestId = 0;
1213
const Kernel::TopicKey kCompletionTopic = Kernel::makeTopicKey("http.done");
1314

15+
unsigned long boardMillis() {
16+
return millis();
17+
}
18+
1419
ZeroHttpPump::StepResult connectStep(const ZeroHttpPump::Request&, void*) {
1520
if (g_connectPending) {
1621
g_connectPending = false;
@@ -78,7 +83,7 @@ void setup() {
7883
Serial.begin(115200);
7984
delay(50);
8085

81-
ZeroKernel.begin();
86+
ZeroKernel.begin(boardMillis);
8287
ZeroKernel.subscribeTypedFast(kCompletionTopic, onCompletion);
8388

8489
ZeroHttpPump::Config config;
@@ -93,6 +98,6 @@ void setup() {
9398
}
9499

95100
void loop() {
96-
ZeroKernel.tick();
101+
zerokernel::adapters::powerSaveTick(ZeroKernel);
97102
g_httpPump.tick();
98103
}

examples/MqttPumpDemo/MqttPumpDemo.ino

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include <ZeroKernel.h>
2+
#include <adapters/PowerSaveLoopAdapter.h>
23
#include <modules/net/ZeroMqttPump.h>
34

45
using zerokernel::Kernel;
@@ -13,6 +14,10 @@ unsigned long g_publishValue = 0;
1314
const Kernel::TopicKey kBrokerStateTopic = Kernel::makeTopicKey("mqtt.state");
1415
const Kernel::TopicKey kPublishTopic = Kernel::makeTopicKey("mqtt.out");
1516

17+
unsigned long boardMillis() {
18+
return millis();
19+
}
20+
1621
bool linkProbe() {
1722
return g_brokerConnected;
1823
}
@@ -66,7 +71,7 @@ void setup() {
6671
Serial.begin(115200);
6772
delay(50);
6873

69-
ZeroKernel.begin();
74+
ZeroKernel.begin(boardMillis);
7075
ZeroKernel.subscribeTypedFast(kBrokerStateTopic, onStateEvent);
7176

7277
ZeroMqttPump::Config config;
@@ -83,6 +88,6 @@ void setup() {
8388
}
8489

8590
void loop() {
86-
ZeroKernel.tick();
91+
zerokernel::adapters::powerSaveTick(ZeroKernel);
8792
g_mqttPump.tick();
8893
}

examples/NetworkMaintainer/NetworkMaintainer.ino

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include <ZeroKernel.h>
2+
#include <adapters/PowerSaveLoopAdapter.h>
23
#include <modules/net/ZeroWiFiMaintainer.h>
34

45
#if defined(ARDUINO_ARCH_ESP8266)
@@ -20,6 +21,10 @@ const Kernel::TopicKey kWiFiStateTopic = Kernel::makeTopicKey("wifi.link");
2021

2122
ZeroWiFiMaintainer g_wifiMaintainer;
2223

24+
unsigned long boardMillis() {
25+
return millis();
26+
}
27+
2328
bool isWiFiConnected() {
2429
return WiFi.status() == WL_CONNECTED;
2530
}
@@ -68,7 +73,7 @@ void setup() {
6873
WiFi.setAutoReconnect(false);
6974
WiFi.persistent(false);
7075

71-
ZeroKernel.begin();
76+
ZeroKernel.begin(boardMillis);
7277
ZeroKernel.subscribeTypedFast(kWiFiStateTopic, onWiFiState);
7378

7479
ZeroWiFiMaintainer::Config config;
@@ -86,6 +91,6 @@ void setup() {
8691
}
8792

8893
void loop() {
89-
ZeroKernel.tick();
94+
zerokernel::adapters::powerSaveTick(ZeroKernel);
9095
g_wifiMaintainer.tick();
9196
}

examples/TransportMetricsDemo/TransportMetricsDemo.ino

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
#include <ZeroKernel.h>
2+
#include <adapters/PowerSaveLoopAdapter.h>
23
#include <modules/net/ZeroTransportMetrics.h>
34

45
using zerokernel::modules::net::ZeroTransportMetrics;
@@ -7,6 +8,10 @@ namespace {
78

89
ZeroTransportMetrics g_metrics;
910

11+
unsigned long boardMillis() {
12+
return millis();
13+
}
14+
1015
void updateMetricsTask() {
1116
static bool toggle = false;
1217
toggle = !toggle;
@@ -42,11 +47,11 @@ void setup() {
4247
Serial.begin(115200);
4348
delay(50);
4449

45-
ZeroKernel.begin();
50+
ZeroKernel.begin(boardMillis);
4651
ZeroKernel.addTask("MetricsTick", updateMetricsTask, 500, 0);
4752
ZeroKernel.addTask("MetricsReport", reportTask, 1000, 0);
4853
}
4954

5055
void loop() {
51-
ZeroKernel.tick();
56+
zerokernel::adapters::powerSaveTick(ZeroKernel);
5257
}

src/internal/KernelArchAsm.S

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,11 @@
33
.global zk_arch_idle_hint_asm
44
zk_arch_idle_hint_asm:
55
nop
6+
#if defined(__XTENSA_WINDOWED_ABI__)
7+
retw.n
8+
#else
69
ret.n
10+
#endif
711
#elif defined(__arm__) || defined(__thumb__)
812
.text
913
.global zk_arch_idle_hint_asm

0 commit comments

Comments
 (0)