[HM - Wired] Aktivitäten LED

Begonnen von grogo, 03 September 2018, 19:54:23

Vorheriges Thema - Nächstes Thema

grogo

Hallo zusammen,

habe mir mit Hilfe des Tutorials HBW-Wired einige eigene Devices in ein 19zoll Rack zusammengebaut und es läuft super.

Gibt es eine Funktion/Möglichkeit in der Software eine LED am Adruino bei eigenem aktivem Senden/Empfangen anzusteuern oder kurz blinken zu lassen, damit man sehen kann, welches Modul gerade aktiv ist? Oder gibt es hierzu schon einen öffenen Threat?

Gruß,

Stephan

loetmeister

Hi Stephan,

diese Funktion ist noch nicht vorhanden... du müsstest sie selber einbauen.  ;)
Z.b. in HBWChannel::set und HBWChannel::get die LED Einschalten und im HBWChannel::loop wieder ausschalten, eventuell mit einer Zeitmessung, da die LED sonst zu kurz leuchtet ((now - lastLEDtime > 400), ähnlich wie in HBWDevice::handleConfigButton() gelöst)

Ich persönlich habe eher darauf geachtet wenige LEDs zu haben die dauerhaft leuchten oder blinken, nicht nur wegen dem Stromverbrauch, sondern auch um mir keine IO Pins zu belegen...


Eine Möglichkeit - ein Mittelweg - wäre die Status LED zu nutzen (das ganze per Device Konfig ein-/abschaltbar zu machen) und diese LED blinken zu lassen, solange man nicht den Config Button drückt (z.B. handleConfigButton() einen bool status zurück geben lassen, auswerten und dann die LED steuern)

Gruß,
Thomas

Thorsten Pferdekaemper

Hi,
alternativ könnte man auch die LED am Anfang von HBWDevice::parseFrame triggern (das Gerät hat was empfangen) bzw. am Anfang von HBWDevice::sendFrame(Single) (für's Senden).
Gruß,
    Thorsten
FUIP

loetmeister

#3
Hi,

habe mal die Möglichkeit für Rx und Tx LEDs eingebaut. Gesetzt wird ein flag in BWDevice::parseFrame und HBWDevice::sendFrame, wie von Thorsten vorgeschlagen.
Es können zwei extra LEDs an IO Ports sein, oder eine LED Rx/Tx kombiniert, oder einfach die selbe LED welche als "config" LED genutzt wird. Im letzten Fall wird die Rx/Tx Anzeige unterdrückt, wenn man den Config Taster drückt.

Initialisiert wird wie bei setConfigPins:
  device->setConfigPins(BUTTON, LED);  // 8 (button) and 13 (led) is the default
  device->setStatusLEDPins(TX_LED, RX_LED); // seperate Tx, Rx LEDs
//  device->setStatusLEDPins(LED, LED); // combined Tx, Rx and config LED



https://github.com/loetmeister/HBWired/commit/36871eb80179e3d08362ed5263b895f0b71b0ef5#diff-340d6f8cfa01a00fa61bea3db56dfddf

Hätte den Code gerne noch was schlanker... mal sehen wo ich noch sparen kann. Im Vergleich vor der Änderung sind 226 Bytes dazugekommen.

Aktuelle lib->>> https://github.com/loetmeister/HBWired/tree/master/libraries

Gruß,
Thomas