Merge branch 'upstream/HEAD' into control

This commit is contained in:
Andreas Schiffler 2022-08-05 13:43:37 +02:00
commit 6032a5ad41
6 changed files with 222 additions and 145 deletions

View file

@ -127,17 +127,19 @@ void app::setup(uint32_t timeout) {
// mqtt
char mqttAddr[MQTT_ADDR_LEN];
uint16_t mqttPort;
char mqttAddr[MQTT_ADDR_LEN];
char mqttUser[MQTT_USER_LEN];
char mqttPwd[MQTT_PWD_LEN];
char mqttTopic[MQTT_TOPIC_LEN];
mEep->read(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN);
mEep->read(ADDR_MQTT_USER, mqttUser, MQTT_USER_LEN);
mEep->read(ADDR_MQTT_PWD, mqttPwd, MQTT_PWD_LEN);
mEep->read(ADDR_MQTT_TOPIC, mqttTopic, MQTT_TOPIC_LEN);
char mqttDevName[DEVNAME_LEN];
mEep->read(ADDR_MQTT_ADDR, mqttAddr, MQTT_ADDR_LEN);
mEep->read(ADDR_MQTT_USER, mqttUser, MQTT_USER_LEN);
mEep->read(ADDR_MQTT_PWD, mqttPwd, MQTT_PWD_LEN);
mEep->read(ADDR_MQTT_TOPIC, mqttTopic, MQTT_TOPIC_LEN);
mEep->read(ADDR_DEVNAME, mqttDevName, DEVNAME_LEN);
//mEep->read(ADDR_MQTT_INTERVAL, &mMqttInterval);
mEep->read(ADDR_MQTT_PORT, &mqttPort);
mEep->read(ADDR_MQTT_PORT, &mqttPort);
if(mqttAddr[0] > 0) {
mMqttActive = true;
@ -150,7 +152,7 @@ void app::setup(uint32_t timeout) {
if(0 == mqttPort)
mqttPort = 1883;
mMqtt.setup(mqttAddr, mqttTopic, mqttUser, mqttPwd, mqttPort);
mMqtt.setup(mqttAddr, mqttTopic, mqttUser, mqttPwd, mqttDevName, mqttPort);
mMqtt.mClient->setCallback(std::bind(&app::cbMqtt, this, std::placeholders::_1, std::placeholders::_2, std::placeholders::_3));
mMqttTicker = 0;
@ -158,6 +160,7 @@ void app::setup(uint32_t timeout) {
if(mqttAddr[0] > 0) {
char topic[30];
mMqtt.sendMsg("device", mqttDevName);
mMqtt.sendMsg("version", mVersion);
for(uint8_t i = 0; i < MAX_NUM_INVERTERS; i ++) {
iv = mSys->getInverterByPos(i);
@ -213,9 +216,9 @@ void app::loop(void) {
yield();
if(checkTicker(&mRxTicker, 5)) {
DPRINTLN(DBG_DEBUG, F("app_loops =") + String(app_loops));
//DPRINTLN(DBG_VERBOSE, F("app_loops =") + String(app_loops));
app_loops=0;
DPRINT(DBG_DEBUG, F("a"));
DPRINT(DBG_VERBOSE, F("a"));
bool rxRdy = mSys->Radio.switchRxCh();
@ -226,7 +229,8 @@ void app::loop(void) {
if(mSys->Radio.checkPaketCrc(p->packet, &len, p->rxCh)) {
// process buffer only on first occurrence
if(mSerialDebug) {
DPRINT(DBG_DEBUG, "Received " + String(len) + " bytes channel " + String(p->rxCh) + ": ");
DPRINT(DBG_INFO, "RX " + String(len) + "B Ch" + String(p->rxCh) + " | ");
mSys->Radio.dumpBuf(NULL, p->packet, len);
}
mFrameCnt++;
@ -316,6 +320,7 @@ void app::loop(void) {
Inverter<> *iv = mSys->getInverterByPos(id);
if(NULL != iv) {
if(iv->isAvailable(mTimestamp)) {
DPRINTLN(DBG_INFO, "Inverter: " + String(id));
for(uint8_t i = 0; i < iv->listLen; i++) {
if(0.0f != iv->getValue(i)) {
snprintf(topic, 30, "%s/ch%d/%s", iv->name, iv->assign[i].ch, iv->getFieldName(i));
@ -324,6 +329,7 @@ void app::loop(void) {
}
yield();
}
DPRINTLN(DBG_INFO, "");
}
}
}