ESP8266: IPAdress class

OP #7796666
Lesenswert?
• ▲
▼

Ich benutze eine 8266 und möchte die WiFi Einstellungen in das interne EEPROM ablegen und von dort dann auch wieder auslesen.

Im Code unter PlatformIO wird die class IPAddress benutzt. z.B. IPAddress ipa(192,168,0,25);

Damit ich die IP ins EEPROM schreiben kann, muss man meines Wissens byteweise schreiben. Mein Problem ist jetzt wie kann man denn IPAddress in 4 Bytes zerlegen oder umgekehrt aus 4 Byte eine IPAddress machen?

Wenn ich ipa als Array behandle , meckert der Compiler zwar nicht, aber ich bekomme auch keine vernünftiges Ergebnis. Irgendwas mit (IP unset) beim Versuch aus 4 Byte eine IPAddress zu machen.

Kann man das irgendwie casten ?

Wäre für Hilfe dankbar.

#7796678
Lesenswert?
• ▲
▼

Ich gehe davon aus: https://github.com/espressif/arduino-esp32/blob/master/cores/esp32/IPAddress.h

Um Daten aus der Klasse IPAddress raus zu bekommen sehe ich mindestens 2 Möglichkeiten. Einmal der überladene Operator, der geht aber scheinbar nur bei IPv4:

1
const uint32 tmpU32Adr=YourIPClass;

oder

1
String tmpStringIp=YourIPClass.toString();

Das dann zerlegen in Bytes und speichern.

Zurück dann wieder über die Konstruktoren der Klasse:

1
IPAddress(uint32_t address);
2
IPAddress(const char *address);

Je nach Lib für die Speicherung könnte ich mir aber vorstellen dass das schon die Klasse für dich übernehmen kann.

OP #7796871
Lesenswert?
• ▲
▼

Danke für die Tips. Aber ich habe was übersehen, falls jemand ein ähnliches Problem hat.

(IP unset) heißt nur dass alle 4 Byte 0xFF sind.

Man kann bei mir z.B. IPAddress ipa(192,168,0,25) schon als einfaches Array behandeln und ipa einfach so wie bei Arrays üblich zerlegen bzw. zusammenbauen.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.