INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Variablenprobleme bei ConfigManager und ESP32
05.11.2020, 18:49
Beitrag #1
Variablenprobleme bei ConfigManager und ESP32
Hallo zusammen,

ich wollte meinen BLE-Scanner um eine Eingabemöglichkeit erweitern.
Dabei bin ich auf die ConfigManager - Libary gekommen.

Wenn ich etwas neu teste, nehme ich mir die Beispiele und schaue, ob alles läuft. Doch da bin ich nun bei dem Projekt nicht weiter gekommen.

Aber zuerst einmal der Link zum ConfigManager - Projekt:

ConfigManager

Ich habe das Beispiel "save_config_demo" genommen, da es mir genug Möglichkeiten für die Parametrierung bietet.
So habe ich die Dateien im data - Ordner auf den ESP32 geladen und das Sketch ebenfalls. Alles läuft gut. Doch nun wollte ich die Variablen aus dem struct in dem Sketch verfügbar machen. Das geht laut der Seite mittels:

Code:
To access your config data through device code

char* name = config.name;
int version = meta.version;

Also tat ich mal folgendes:

Code:
char* mac = config.device_name;
float delaytime = config.inching_delay;
int led = config.led;

Soweit so gut. Wenn ich jetzt das ganze per Serial.print ausgeben möchte, funktioniert das nur bei dem char - String.
Die gespeicherten Werte der beiden anderen Variablen werden mit 0 dargestellt.

Wahrscheinlich sitzt der Fehler wieder vor dem PC.

Hier noch der ganze Sketch:

Code:
#include "ConfigManager.h"

const char *settingsHTML = (char *)"/settings.html";
const char *stylesCSS = (char *)"/styles.css";
const char *mainJS = (char *)"/main.js";

struct Config {
  char device_name[32];
  float inching_delay;
  int8_t led;
  bool enabled;
} config;

struct Metadata {
  int8_t version;
} meta;

ConfigManager configManager;




//Übergabe der Variablen aus dem Config - Manager/////////////////
char* mac = config.device_name;
float delaytime = config.inching_delay;
int led = config.led;

//Millis///
long previousMillis = 0;
long interval = 2000;





void APCallback(WebServer *server) {
    server->on("/styles.css", HTTPMethod::HTTP_GET, [server](){
        configManager.streamFile(stylesCSS, mimeCSS);
    });

    DebugPrintln(F("AP Mode Enabled. You can call other functions that should run after a mode is enabled ... "));
}


void APICallback(WebServer *server) {
  server->on("/disconnect", HTTPMethod::HTTP_GET, [server](){
    configManager.clearWifiSettings(false);
  });

  server->on("/settings.html", HTTPMethod::HTTP_GET, [server](){
    configManager.streamFile(settingsHTML, mimeHTML);
  });

  // NOTE: css/js can be embedded in a single page HTML
  server->on("/styles.css", HTTPMethod::HTTP_GET, [server](){
    configManager.streamFile(stylesCSS, mimeCSS);
  });

  server->on("/main.js", HTTPMethod::HTTP_GET, [server](){
    configManager.streamFile(mainJS, mimeJS);
  });

  server->on("/reboot", HTTPMethod::HTTP_GET, [server](){
    ESP.restart();
  });

}

void setup() {
  Serial.begin(115200);
  DEBUG_MODE = true;
  DebugPrintln(F(""));

  meta.version = 3;

  // Setup config manager
  configManager.setAPName("Demo");
  configManager.setAPFilename("/index.html");

  // Settings variables
  configManager.addParameter("device_name", config.device_name, 32);
  configManager.addParameter("inching_delay", &config.inching_delay);
  configManager.addParameter("led", &config.led);
  configManager.addParameter("enabled", &config.enabled);

  // Meta Settings
  configManager.addParameter("version", &meta.version, get);

  // Init Callbacks
  configManager.setAPCallback(APCallback);
  configManager.setAPICallback(APICallback);

  configManager.begin(config);
}

void loop() {
  
  configManager.loop();   // Um das der Webseitenaufbau der HTML - Datei sauber erfolgen kann, kein delay im Loop einbauen. Besser Millis !!.

  unsigned long currentMillis = millis();


  if(currentMillis - previousMillis > interval) {
        previousMillis = currentMillis;  
  Serial.print(" MAC :");
  Serial.println(mac);
  Serial.println("-------------------------------------");
  Serial.print(" Pause :");
  Serial.println(delaytime);
  Serial.println("-------------------------------------");
  Serial.print("Pausenzeit :");
  Serial.println(led);
  Serial.println("-------------------------------------");
  }

  // Add your loop code here
}

Viele Grüße

André
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2020, 19:01
Beitrag #2
RE: Variablenprobleme bei ConfigManager und ESP32
Da kannst Du nur mit vielen Debugausgaben verfolgen, was wo passiert.
Ich ziehe das Speichern im Dateisystem SPIFFS (deprecated) LittleFS vor, deshalb kenne ich diede Lib nicht.
Wenn Du Dir das Speichern in Dateien anschauen willst, schau mal bei Fips vorbei.
LittleFS ist aufrufkompatibel zu SPIFFS. Fips hat da auch einen Dateimanager, mit dem Du Dateien ins FS über den Browser hochladen kannst. Das ist wesentlich komfortabler, als die Arbeit mit dem (emulierten) EEPROM, der auch nur im Flash liegt.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2020, 19:27
Beitrag #3
RE: Variablenprobleme bei ConfigManager und ESP32
Hallo Tommy,

ich habe immer mal wieder auf Fips seiner Page gestöbert.
Was er da macht ist echt enorm !

Darum bin ich gerade etwas überfordert...um Ehrlich zu sein.

Also könnte ich mir die Tabs dann so "zusammenstellen" wie ich sie brauche, oder ?

Da muss ich mal stöbern...

Besten Dank für deinen Tipp !!


VG
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2020, 19:32
Beitrag #4
RE: Variablenprobleme bei ConfigManager und ESP32
Naja nur Tabs zusammen stellen ist die eine Seite.
Wenn Du weitere Variablen speichern willst, musst Du den Connect-Manager schon etwas erweitern oder eine zweite Datei dafür anlegen, um das zu trennen.
Also ohne Programmierung wird das nicht gehen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
05.11.2020, 19:47
Beitrag #5
RE: Variablenprobleme bei ConfigManager und ESP32
Hi,

nee..das stimmt. Aber das ist ja auch der Spaß daran...Wink .

Wird bestimmt schon passen. Ich schaue da mal rein.... .

Besten Dank nochmal...

Gruß

André
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  TTGO ESP32 SIM800L Pinout Stromversorgung pcfritz 1 113 18.04.2021 14:40
Letzter Beitrag: hotsystems
  ESP32 Daten aus HTML Roger100499 11 373 15.04.2021 15:00
Letzter Beitrag: Tommy56
  Erfahrungen mit ESP32 und WLAN/MQTT oder was ich beobachtet habe... Arduino4Fun 23 3.510 09.04.2021 16:15
Letzter Beitrag: amshh
  Suche Erfahrungen und Hilfe mit ESP32-CAM WiFi + Bluetooth Modul Kamera Modul esp32 Christian_Moba-Arduino 28 1.677 04.04.2021 08:24
Letzter Beitrag: amithlon
  ESP32 CAM Flashlamp schalten RaspiUser0815 13 3.262 28.03.2021 21:51
Letzter Beitrag: Grufti99
  ESP32-cam WAV´s einmalig auf GPI0 25/26 abspielen Sarastro 2 353 28.03.2021 10:45
Letzter Beitrag: Sarastro
  Led-Matrix 8x32 mit Esp32 Zerrus 5 464 27.03.2021 14:16
Letzter Beitrag: hotsystems
  Esp32 MD-Parola Scrolltext wwilhelm 3 391 26.03.2021 22:35
Letzter Beitrag: Tommy56
  ESP32 und Interrupts - ein Erfahrungsbericht - und eine Frage ;) MicroBahner 6 608 24.03.2021 09:18
Letzter Beitrag: MicroBahner
Brick Tiefgehende ESP32 Schnittstellen-Dokumentation gesucht Roland53425 6 793 22.03.2021 18:54
Letzter Beitrag: Bitklopfer

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste