Irqinterlnalbatt am Beispiel des HM-SEC-SCO
Moderator: Co-Administratoren
-
- 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
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?
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?
-
- 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
Hab ich wohl verpennt.
Wird mit 0 initialisiert
m_Low(0), m_Critical(0)
-
- 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
Ah okay, hab nun schon wirklich an mir gezweifelt.
Du hast also um den Teil
https://github.com/jp112sdl/Beispiel_As ... aL143-L157
zu viel entfernt? Plus die definierten Variablen.
Genau, das hab ich gefunden.
... ich muss mal 2-3 Monate unbezahlten Urlaub machen und ins C++ Bootcamp
-
- 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
#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
-
- 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
Okay, verstehe so langsam.
#define DEVICE_CONFIG [...] wird in der device.h geregelt
Ist
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.
#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);
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.
-
- 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
Nein gerade das habe ich beim SCo ja vergessen und muss da wieder rein. ^^der-pw hat geschrieben: ↑24.11.2020, 13:51Istim void setup() dann quasi obsolet?Code: Alles auswählen
hal.battery.low(22); hal.battery.critical(19);
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));
-
- 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
Sehr gut, dann habe ich es jetzt verstanden.
Dankeschön
-
- 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
Vielleicht noch eine Frage, bevor ich ein Eis spendiere.
Welchen Unterschied macht es eigentlich, wenn die battery.[low/critical] schon direkt in der Klasse "Hal" verfügbar gemacht wird
gegenüber dem Konstrukt, dass hal.battery.[low/critical] erst in void setup() aufgerufen wird?
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;
-
- 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
Keinen.
Wird es so oder so.
sdev.init(hal); im setup() ruft ja das hal.init auf
Dann halt nur ein bisschen "früher"
-
- Beiträge: 435
- Registriert: 26.01.2019, 13:39
- Wohnort: Wolfenbüttel
- Hat sich bedankt: 126 Mal
- Danksagung erhalten: 100 Mal
- Kontaktdaten: