Irqinterlnalbatt am Beispiel des HM-SEC-SCO

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

Moderator: Co-Administratoren

Antworten
der-pw
Beiträge: 435
Registriert: 26.01.2019, 13:39
Wohnort: Wolfenbüttel
Hat sich bedankt: 126 Mal
Danksagung erhalten: 100 Mal
Kontaktdaten:

Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von der-pw » 24.11.2020, 08:27

Ich versuche ja die neuen Klassen irq(internal/external)batt besser zu verstehen.
Jetzt fiel mir auf, dass am Beispiel des HM-SEC-SCO
ein AskSin Typ mit Irqinternalbatt definiert ist, aber keine Werte für "low" und "critical" angegeben sind.
In der BatterySensor.h gibt es aber keine Defaultwerte (zumindest hab ich nichts gefunden).
Wie wird das dort gehandhabt?
Grüße,
Patrick

https://github.com/der-pw

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

Re: Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von jp112sdl » 24.11.2020, 09:36

der-pw hat geschrieben:
24.11.2020, 08:27
Jetzt fiel mir auf, dass am Beispiel des HM-SEC-SCO
ein AskSin Typ mit Irqinternalbatt definiert ist, aber keine Werte für "low" und "critical" angegeben sind.
Hab ich wohl verpennt.
der-pw hat geschrieben:
24.11.2020, 08:27
In der BatterySensor.h gibt es aber keine Defaultwerte (zumindest hab ich nichts gefunden).
Wird mit 0 initialisiert
m_Low(0), m_Critical(0)

VG,
Jérôme ☕️

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

der-pw
Beiträge: 435
Registriert: 26.01.2019, 13:39
Wohnort: Wolfenbüttel
Hat sich bedankt: 126 Mal
Danksagung erhalten: 100 Mal
Kontaktdaten:

Re: Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von der-pw » 24.11.2020, 11:42

jp112sdl hat geschrieben:
24.11.2020, 09:36
Hab ich wohl verpennt.
Ah okay, hab nun schon wirklich an mir gezweifelt. :wink:

Du hast also um den Teil
https://github.com/jp112sdl/Beispiel_As ... aL143-L157
zu viel entfernt? Plus die definierten Variablen.
jp112sdl hat geschrieben:
24.11.2020, 09:36
Wird mit 0 initialisiert
m_Low(0), m_Critical(0)
Genau, das hab ich gefunden.

... ich muss mal 2-3 Monate unbezahlten Urlaub machen und ins C++ Bootcamp :mrgreen:
Grüße,
Patrick

https://github.com/der-pw

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

Re: Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von jp112sdl » 24.11.2020, 12:49

der-pw hat geschrieben:
24.11.2020, 11:42
zu viel entfernt?
#define DEVICE_CONFIG CFG_STEPUP_OFF,22,19
Ich wollte das nicht im EEPROM haben weil ich nicht mit OTA Config arbeite.
Hätte dann die 22 und 19 für battery.low() und battery.critical() nehmen müssen

VG,
Jérôme ☕️

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

der-pw
Beiträge: 435
Registriert: 26.01.2019, 13:39
Wohnort: Wolfenbüttel
Hat sich bedankt: 126 Mal
Danksagung erhalten: 100 Mal
Kontaktdaten:

Re: Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von der-pw » 24.11.2020, 13:51

Okay, verstehe so langsam.
#define DEVICE_CONFIG [...] wird in der device.h geregelt

Ist

Code: Alles auswählen

  hal.battery.init(seconds2ticks(60UL*60), sysclock);
  hal.battery.low(22);
  hal.battery.critical(19);
im void setup() dann quasi obsolet?

Sorry, wenn ich so blöd frage, aber "go to declaration" in VSCODE hat nur begrenzte Möglichkeiten (für mich), bzw. hangele ich mich dem Code entlang
und finde dann oftmals nicht weiter.
Grüße,
Patrick

https://github.com/der-pw

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

Re: Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von jp112sdl » 24.11.2020, 13:54

der-pw hat geschrieben:
24.11.2020, 13:51
Ist

Code: Alles auswählen

  hal.battery.low(22);
  hal.battery.critical(19);
im void setup() dann quasi obsolet?
Nein gerade das habe ich beim SCo ja vergessen und muss da wieder rein. ^^

War vorher im configChanged und holte die Werte aus der Device Config im EEPROM:

Code: Alles auswählen

    battery().low(getConfigByte(CFG_BAT_LOW_BYTE));
     battery().critical(getConfigByte(CFG_BAT_CRITICAL_BYTE));

VG,
Jérôme ☕️

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

der-pw
Beiträge: 435
Registriert: 26.01.2019, 13:39
Wohnort: Wolfenbüttel
Hat sich bedankt: 126 Mal
Danksagung erhalten: 100 Mal
Kontaktdaten:

Re: Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von der-pw » 24.11.2020, 14:14

jp112sdl hat geschrieben:
24.11.2020, 13:54
Nein gerade das habe ich beim SCo ja vergessen und muss da wieder rein. ^^
Sehr gut, dann habe ich es jetzt verstanden. :lol:

Dankeschön :-)
Grüße,
Patrick

https://github.com/der-pw

der-pw
Beiträge: 435
Registriert: 26.01.2019, 13:39
Wohnort: Wolfenbüttel
Hat sich bedankt: 126 Mal
Danksagung erhalten: 100 Mal
Kontaktdaten:

Re: Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von der-pw » 24.11.2020, 14:26

Vielleicht noch eine Frage, bevor ich ein Eis spendiere. :lol:

Welchen Unterschied macht es eigentlich, wenn die battery.[low/critical] schon direkt in der Klasse "Hal" verfügbar gemacht wird

Code: Alles auswählen

class Hal : public BaseHal {
public:
  void init (const HMID& id) {
    BaseHal::init(id);
    // measure battery every 1h
    battery.init(seconds2ticks(60UL*60),sysclock);
    battery.low(22);
    battery.critical(19);
  }
} hal;
gegenüber dem Konstrukt, dass hal.battery.[low/critical] erst in void setup() aufgerufen wird?
Grüße,
Patrick

https://github.com/der-pw

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

Re: Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von jp112sdl » 24.11.2020, 14:30

der-pw hat geschrieben:
24.11.2020, 14:26
Welchen Unterschied macht es eigentlich, wenn die battery.[low/critical] schon direkt in der Klasse "Hal" verfügbar gemacht wird
Keinen.
der-pw hat geschrieben:
24.11.2020, 14:26
gegenüber dem Konstrukt, dass hal.battery.[low/critical] erst in void setup() aufgerufen wird?
Wird es so oder so.
sdev.init(hal); im setup() ruft ja das hal.init auf
Dann halt nur ein bisschen "früher"

VG,
Jérôme ☕️

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

der-pw
Beiträge: 435
Registriert: 26.01.2019, 13:39
Wohnort: Wolfenbüttel
Hat sich bedankt: 126 Mal
Danksagung erhalten: 100 Mal
Kontaktdaten:

Re: Irqinterlnalbatt am Beispiel des HM-SEC-SCO

Beitrag von der-pw » 24.11.2020, 14:51

jp112sdl hat geschrieben:
24.11.2020, 14:30
sdev.init(hal); im setup() ruft ja das hal.init auf
Stimmt!

Danke für die kleine Lehrstunde. ;)
Grüße,
Patrick

https://github.com/der-pw

Antworten

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