LazyConfig / EEPROM usage

Entwicklung und Bau von Hardware aller Art, die im HM-Umfeld eingesetzt werden kann

Moderator: Co-Administratoren

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: LazyConfig / EEPROM usage

Beitrag von papa » 16.02.2021, 14:49

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

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: LazyConfig / EEPROM usage

Beitrag von jp112sdl » 16.02.2021, 14:50

papa hat geschrieben:
16.02.2021, 14:49
Stimmt - getUserStorage() ist erst im MultiChannelDevice definiert. Bei device() kommt nur ein "Device" zurück. Das hat die Methode nicht.
Und wie komm ich im Channel jetzt an den UserStorage ran? :mrgreen:

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: LazyConfig / EEPROM usage

Beitrag von papa » 16.02.2021, 15:03

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

jp112sdl
Beiträge: 12108
Registriert: 20.11.2016, 20:01
Hat sich bedankt: 848 Mal
Danksagung erhalten: 2148 Mal
Kontaktdaten:

Re: LazyConfig

Beitrag von jp112sdl » 04.03.2021, 18:59

papa hat geschrieben:
02.01.2021, 23:28
Was 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

Code: Alles auswählen

uint8_t b = sdev.getUserStorage().getByte(offset);
oder z.B. innerhalb eines Channels durch

Code: Alles auswählen

device().getUserStorage().setByte(offset,data);
Wenn andere Read/Write Methoden noch gebraucht werden - einfach nen PullRequest machen :-)
Ist ein offset von 0 erlaubt/gültig?
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.

VG,
Jérôme ☕️

---
Support for my Homebrew-Devices: Download JP-HB-Devices Addon

papa
Beiträge: 705
Registriert: 22.05.2018, 10:23
Hat sich bedankt: 24 Mal
Danksagung erhalten: 120 Mal

Re: LazyConfig / EEPROM usage

Beitrag von papa » 04.03.2021, 21:13

Sollte eigentlich gehen - ist die gleiche Berechnung wie bei layoutChannels()
Anfragen zur AskSin++ werden nur im Forum beantwortet

Antworten

Zurück zu „Hardwareentwicklung und Selbstbau von Aktoren und Sensoren“