LazyConfig / EEPROM usage
Moderator: Co-Administratoren
-
- Beiträge: 705
- Registriert: 22.05.2018, 10:23
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 120 Mal
Re: LazyConfig / EEPROM usage
Stimmt - getUserStorage() ist erst im MultiChannelDevice definiert. Bei device() kommt nur ein "Device" zurück. Das hat die Methode nicht.
Anfragen zur AskSin++ werden nur im Forum beantwortet
-
- Beiträge: 12115
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
-
- Beiträge: 705
- Registriert: 22.05.2018, 10:23
- Hat sich bedankt: 24 Mal
- Danksagung erhalten: 120 Mal
Re: LazyConfig / EEPROM usage
Beim setup() von außen Setzen, da wo es gebraucht wird.
Code: Alles auswählen
class Channel ......
UserStorage ustore;
....
public void setUserStorage(const UserStorage& storage) {
ustore = storage;
}
....
setup() {
....
sdev.initDone();
sdev.channel(1).setUserStorage(sdev.getUserStorage());
}
Anfragen zur AskSin++ werden nur im Forum beantwortet
-
- Beiträge: 12115
- Registriert: 20.11.2016, 20:01
- Hat sich bedankt: 848 Mal
- Danksagung erhalten: 2150 Mal
- Kontaktdaten:
Re: LazyConfig
Ist ein offset von 0 erlaubt/gültig?papa hat geschrieben: ↑02.01.2021, 23:28Was bräuchte man denn alles ?
Habe jetzt mal ne neue Klasse UserStorage eingeführt. Diese kann einfach genutzt werden, um den freien EEPROM zu nutzen.
https://github.com/pa-pa/AskSinPP/blob/ ... age.h#L505
Die Nutzung ist ganz einfach
oder z.B. innerhalb eines Channels durchCode: Alles auswählen
uint8_t b = sdev.getUserStorage().getByte(offset);
Wenn andere Read/Write Methoden noch gebraucht werden - einfach nen PullRequest machenCode: Alles auswählen
device().getUserStorage().setByte(offset,data);
Ich hab mich gerade gewundert, warum das Auslesen des UserStorage mit Offset=0 den Wert 0x00 lieferte und alle folgenden Offsets (1, 2, 3) den Wert 0xFF.
Der verwendete Pro Mini ist "frisch" und in den UserStorage geschrieben habe ich noch nie.