mirror of
https://github.com/lumapu/ahoy.git
synced 2025-05-25 06:46:10 +02:00
0.7.51
* fix CMT configureable pins #1150 * fix default CMT pins for opendtufusion * beautified `system` * changed main loops, fix resets #1125, #1135
This commit is contained in:
parent
b06f8e98a4
commit
9521cf756a
9 changed files with 46 additions and 84 deletions
|
@ -1,5 +1,11 @@
|
||||||
# Development Changes
|
# Development Changes
|
||||||
|
|
||||||
|
## 0.7.51 - 2023-09-16
|
||||||
|
* fix CMT configureable pins #1150
|
||||||
|
* fix default CMT pins for opendtufusion
|
||||||
|
* beautified `system`
|
||||||
|
* changed main loops, fix resets #1125, #1135
|
||||||
|
|
||||||
## 0.7.50 - 2023-09-12
|
## 0.7.50 - 2023-09-12
|
||||||
* moved MqTT info to `system`
|
* moved MqTT info to `system`
|
||||||
* added CMT info for ESP32 devices
|
* added CMT info for ESP32 devices
|
||||||
|
|
73
src/app.cpp
73
src/app.cpp
|
@ -11,10 +11,7 @@
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
app::app()
|
app::app() : ah::Scheduler {} {}
|
||||||
: ah::Scheduler {},
|
|
||||||
mInnerLoopCb {nullptr} {
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -55,14 +52,6 @@ void app::setup() {
|
||||||
DSERIAL.flush();
|
DSERIAL.flush();
|
||||||
#endif // ETHERNET
|
#endif // ETHERNET
|
||||||
|
|
||||||
#if !defined(ETHERNET)
|
|
||||||
#if defined(AP_ONLY)
|
|
||||||
mInnerLoopCb = std::bind(&app::loopStandard, this);
|
|
||||||
#else
|
|
||||||
mInnerLoopCb = std::bind(&app::loopWifi, this);
|
|
||||||
#endif
|
|
||||||
#endif /* !defined(ETHERNET) */
|
|
||||||
|
|
||||||
#if !defined(ETHERNET)
|
#if !defined(ETHERNET)
|
||||||
mWifi.setup(mConfig, &mTimestamp, std::bind(&app::onNetwork, this, std::placeholders::_1));
|
mWifi.setup(mConfig, &mTimestamp, std::bind(&app::onNetwork, this, std::placeholders::_1));
|
||||||
#if !defined(AP_ONLY)
|
#if !defined(AP_ONLY)
|
||||||
|
@ -128,14 +117,6 @@ void app::setup() {
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void app::loop(void) {
|
void app::loop(void) {
|
||||||
if (mInnerLoopCb)
|
|
||||||
mInnerLoopCb();
|
|
||||||
#if !defined(ETHERNET)
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
void app::loopStandard(void) {
|
|
||||||
ah::Scheduler::loop();
|
ah::Scheduler::loop();
|
||||||
|
|
||||||
if (mNrfRadio.loop() && mConfig->nrf.enabled) {
|
if (mNrfRadio.loop() && mConfig->nrf.enabled) {
|
||||||
|
@ -198,47 +179,29 @@ void app::loopStandard(void) {
|
||||||
mHmsPayload.loop();
|
mHmsPayload.loop();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (mMqttEnabled)
|
if (mMqttEnabled && mNetworkConnected)
|
||||||
mMqtt.loop();
|
mMqtt.loop();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(ETHERNET)
|
|
||||||
//-----------------------------------------------------------------------------
|
|
||||||
void app::loopWifi(void) {
|
|
||||||
ah::Scheduler::loop();
|
|
||||||
yield();
|
|
||||||
}
|
|
||||||
#endif /* !defined(ETHERNET) */
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void app::onNetwork(bool gotIp) {
|
void app::onNetwork(bool gotIp) {
|
||||||
DPRINTLN(DBG_DEBUG, F("onNetwork"));
|
DPRINTLN(DBG_DEBUG, F("onNetwork"));
|
||||||
ah::Scheduler::resetTicker();
|
mNetworkConnected = gotIp;
|
||||||
regularTickers(); // reinstall regular tickers
|
every(std::bind(&app::tickSend, this), mConfig->nrf.sendInterval, "tSend");
|
||||||
if (gotIp) {
|
#if defined(ESP32)
|
||||||
every(std::bind(&app::tickSend, this), mConfig->nrf.sendInterval, "tSend");
|
if(mConfig->cmt.enabled)
|
||||||
#if defined(ESP32)
|
everySec(std::bind(&CmtRadioType::tickSecond, &mCmtRadio), "tsCmt");
|
||||||
if(mConfig->cmt.enabled)
|
#endif
|
||||||
everySec(std::bind(&CmtRadioType::tickSecond, &mCmtRadio), "tsCmt");
|
mMqttReconnect = true;
|
||||||
#endif
|
mSunrise = 0; // needs to be set to 0, to reinstall sunrise and ivComm tickers!
|
||||||
mMqttReconnect = true;
|
//once(std::bind(&app::tickNtpUpdate, this), 2, "ntp2");
|
||||||
mSunrise = 0; // needs to be set to 0, to reinstall sunrise and ivComm tickers!
|
tickNtpUpdate();
|
||||||
once(std::bind(&app::tickNtpUpdate, this), 2, "ntp2");
|
#if !defined(ETHERNET)
|
||||||
#if !defined(ETHERNET)
|
if (WIFI_AP == WiFi.getMode()) {
|
||||||
if (WIFI_AP == WiFi.getMode()) {
|
mMqttEnabled = false;
|
||||||
mMqttEnabled = false;
|
|
||||||
}
|
|
||||||
everySec(std::bind(&ahoywifi::tickWifiLoop, &mWifi), "wifiL");
|
|
||||||
#endif /* !defined(ETHERNET) */
|
|
||||||
mInnerLoopCb = [this]() { this->loopStandard(); };
|
|
||||||
} else {
|
|
||||||
#if defined(ETHERNET)
|
|
||||||
mInnerLoopCb = nullptr;
|
|
||||||
#else /* defined(ETHERNET) */
|
|
||||||
mInnerLoopCb = [this]() { this->loopWifi(); };
|
|
||||||
everySec(std::bind(&ahoywifi::tickWifiLoop, &mWifi), "wifiL");
|
|
||||||
#endif /* defined(ETHERNET) */
|
|
||||||
}
|
}
|
||||||
|
everySec(std::bind(&ahoywifi::tickWifiLoop, &mWifi), "wifiL");
|
||||||
|
#endif /* !defined(ETHERNET) */
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -560,6 +523,8 @@ void app::resetSystem(void) {
|
||||||
mSavePending = false;
|
mSavePending = false;
|
||||||
mSaveReboot = false;
|
mSaveReboot = false;
|
||||||
|
|
||||||
|
mNetworkConnected = false;
|
||||||
|
|
||||||
memset(&mStat, 0, sizeof(statistics_t));
|
memset(&mStat, 0, sizeof(statistics_t));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,9 +66,6 @@ class app : public IApp, public ah::Scheduler {
|
||||||
void setup(void);
|
void setup(void);
|
||||||
void loop(void);
|
void loop(void);
|
||||||
void loopStandard(void);
|
void loopStandard(void);
|
||||||
#if !defined(ETHERNET)
|
|
||||||
void loopWifi(void);
|
|
||||||
#endif /* !defined(ETHERNET) */
|
|
||||||
void onNetwork(bool gotIp);
|
void onNetwork(bool gotIp);
|
||||||
void regularTickers(void);
|
void regularTickers(void);
|
||||||
|
|
||||||
|
@ -272,8 +269,6 @@ class app : public IApp, public ah::Scheduler {
|
||||||
#define CHECK_AVAIL true
|
#define CHECK_AVAIL true
|
||||||
#define SKIP_YIELD_DAY true
|
#define SKIP_YIELD_DAY true
|
||||||
|
|
||||||
typedef std::function<void()> innerLoopCb;
|
|
||||||
|
|
||||||
void resetSystem(void);
|
void resetSystem(void);
|
||||||
void zeroIvValues(bool checkAvail = false, bool skipYieldDay = true);
|
void zeroIvValues(bool checkAvail = false, bool skipYieldDay = true);
|
||||||
|
|
||||||
|
@ -325,8 +320,6 @@ class app : public IApp, public ah::Scheduler {
|
||||||
void tickZeroValues(void);
|
void tickZeroValues(void);
|
||||||
void tickMidnight(void);
|
void tickMidnight(void);
|
||||||
|
|
||||||
innerLoopCb mInnerLoopCb;
|
|
||||||
|
|
||||||
HmSystemType mSys;
|
HmSystemType mSys;
|
||||||
HmRadio<> mNrfRadio;
|
HmRadio<> mNrfRadio;
|
||||||
|
|
||||||
|
@ -360,6 +353,8 @@ class app : public IApp, public ah::Scheduler {
|
||||||
uint8_t mSendLastIvId;
|
uint8_t mSendLastIvId;
|
||||||
bool mSendFirst;
|
bool mSendFirst;
|
||||||
|
|
||||||
|
bool mNetworkConnected;
|
||||||
|
|
||||||
statistics_t mStat;
|
statistics_t mStat;
|
||||||
|
|
||||||
// mqtt
|
// mqtt
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
#define VERSION_MAJOR 0
|
#define VERSION_MAJOR 0
|
||||||
#define VERSION_MINOR 7
|
#define VERSION_MINOR 7
|
||||||
#define VERSION_PATCH 50
|
#define VERSION_PATCH 51
|
||||||
|
|
||||||
//-------------------------------------
|
//-------------------------------------
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -137,10 +137,12 @@ build_flags = ${env.build_flags}
|
||||||
-DDEF_CMT_CSB=4
|
-DDEF_CMT_CSB=4
|
||||||
-DDEF_CMT_FCSB=21
|
-DDEF_CMT_FCSB=21
|
||||||
-DDEF_CMT_IRQ=8
|
-DDEF_CMT_IRQ=8
|
||||||
|
-DDEF_CMT_SDIO=5
|
||||||
|
-DDEF_CMT_SCLK=6
|
||||||
-DDEF_LED0=18
|
-DDEF_LED0=18
|
||||||
-DDEF_LED1=17
|
-DDEF_LED1=17
|
||||||
-DLED_ACTIVE_HIGH
|
-DLED_ACTIVE_HIGH
|
||||||
-DARDUINO_USB_MODE=1
|
-DARDUINO_USB_MODE=1
|
||||||
;-DARDUINO_USB_CDC_ON_BOOT=1
|
-DARDUINO_USB_CDC_ON_BOOT=1
|
||||||
monitor_filters =
|
monitor_filters =
|
||||||
esp32_exception_decoder, colorize
|
esp32_exception_decoder, colorize
|
||||||
|
|
|
@ -115,7 +115,7 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function parseIv(obj) {
|
function parseIv(obj, ts) {
|
||||||
var p = div(["none"]);
|
var p = div(["none"]);
|
||||||
for(var i of obj) {
|
for(var i of obj) {
|
||||||
var icon = iconSuccess;
|
var icon = iconSuccess;
|
||||||
|
@ -125,7 +125,7 @@
|
||||||
icon = iconWarn;
|
icon = iconWarn;
|
||||||
cl = "icon-warn";
|
cl = "icon-warn";
|
||||||
avail = "disabled";
|
avail = "disabled";
|
||||||
} else if(false == i["is_avail"]) {
|
} else if((false == i["is_avail"]) || (0 == ts)) {
|
||||||
icon = iconInfo;
|
icon = iconInfo;
|
||||||
cl = "icon-info";
|
cl = "icon-info";
|
||||||
avail = "not yet available";
|
avail = "not yet available";
|
||||||
|
@ -192,7 +192,7 @@
|
||||||
parseNav(obj["generic"]);
|
parseNav(obj["generic"]);
|
||||||
parseGeneric(obj["generic"]);
|
parseGeneric(obj["generic"]);
|
||||||
parseSys(obj);
|
parseSys(obj);
|
||||||
parseIv(obj["inverter"]);
|
parseIv(obj["inverter"], obj.ts_now);
|
||||||
parseWarn(obj["warnings"]);
|
parseWarn(obj["warnings"]);
|
||||||
if(exeOnce) {
|
if(exeOnce) {
|
||||||
window.setInterval("tick()", 1000);
|
window.setInterval("tick()", 1000);
|
||||||
|
|
|
@ -817,7 +817,7 @@
|
||||||
ml("div", {class: "row mb-3"}, [
|
ml("div", {class: "row mb-3"}, [
|
||||||
ml("div", {class: "col-12 col-sm-3 my-2"}, p[0].toUpperCase()),
|
ml("div", {class: "col-12 col-sm-3 my-2"}, p[0].toUpperCase()),
|
||||||
ml("div", {class: "col-12 col-sm-9"},
|
ml("div", {class: "col-12 col-sm-9"},
|
||||||
sel(p[1], ("ESP32-S3" == system["chip_model"]) ? esp32s3pins : esp32pins, obj[p[0]])
|
sel(p[1], (("ESP32-S3" == system["chip_model"]) ? esp32s3pins : esp32pins), obj[p[0]])
|
||||||
)
|
)
|
||||||
])
|
])
|
||||||
);
|
);
|
||||||
|
|
|
@ -20,30 +20,24 @@
|
||||||
parseRssi(obj);
|
parseRssi(obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
function genTabRow(key, value) {
|
|
||||||
var r = div(["row", "p-1"]);
|
|
||||||
r.appendChild(div(["col"], key));
|
|
||||||
r.appendChild(div(["col"], value));
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
function parseSysInfo(obj) {
|
function parseSysInfo(obj) {
|
||||||
const data = ["sdk", "cpu_freq", "chip_revision",
|
const data = ["sdk", "cpu_freq", "chip_revision",
|
||||||
"chip_model", "chip_cores", "esp_type", "mac", "wifi_rssi", "ts_uptime",
|
"chip_model", "chip_cores", "esp_type", "mac", "wifi_rssi", "ts_uptime",
|
||||||
"flash_size", "sketch_used", "heap_total", "heap_free", "heap_frag",
|
"flash_size", "sketch_used", "heap_total", "heap_free", "heap_frag",
|
||||||
"max_free_blk", "version", "core_version", "reboot_reason"];
|
"max_free_blk", "version", "core_version", "reboot_reason"];
|
||||||
|
|
||||||
var main = document.getElementById("info");
|
lines = [];
|
||||||
var h = div(["head", "p-2"]);
|
|
||||||
var r = div(["row"]);
|
|
||||||
r.appendChild(div(["col", "a-c"], "System Information"));
|
|
||||||
h.appendChild(r);
|
|
||||||
main.appendChild(h);
|
|
||||||
|
|
||||||
for (const [key, value] of Object.entries(obj)) {
|
for (const [key, value] of Object.entries(obj)) {
|
||||||
if(!data.includes(key) || (typeof value == 'undefined')) continue;
|
if(!data.includes(key) || (typeof value == 'undefined')) continue;
|
||||||
main.appendChild(genTabRow(key, value));
|
lines.push(tr(key.replace('_', ' '), value));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
document.getElementById("info").append(
|
||||||
|
headline("System Information"),
|
||||||
|
ml("table", {class: "table"},
|
||||||
|
ml("tbody", {}, lines)
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function badge(success, text, second="error") {
|
function badge(success, text, second="error") {
|
||||||
|
@ -58,7 +52,7 @@
|
||||||
if(typeof val2 == "number")
|
if(typeof val2 == "number")
|
||||||
val2 = String(val2);
|
val2 = String(val2);
|
||||||
return ml("tr", {}, [
|
return ml("tr", {}, [
|
||||||
ml("th", {}, val1),
|
ml("th", {style: "width: 50%"}, val1),
|
||||||
ml("td", {}, val2)
|
ml("td", {}, val2)
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -543,7 +543,7 @@ class Web {
|
||||||
|
|
||||||
// pinout
|
// pinout
|
||||||
uint8_t pin;
|
uint8_t pin;
|
||||||
for (uint8_t i = 0; i < 12; i++) {
|
for (uint8_t i = 0; i < 14; i++) {
|
||||||
pin = request->arg(String(pinArgNames[i])).toInt();
|
pin = request->arg(String(pinArgNames[i])).toInt();
|
||||||
switch(i) {
|
switch(i) {
|
||||||
case 0: mConfig->nrf.pinCs = ((pin != 0xff) ? pin : DEF_NRF_CS_PIN); break;
|
case 0: mConfig->nrf.pinCs = ((pin != 0xff) ? pin : DEF_NRF_CS_PIN); break;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue