From f5f2efccaeb855f33b56d1b4c09f474ccf83312c Mon Sep 17 00:00:00 2001 From: example Date: Sat, 21 Oct 2023 15:57:59 +0200 Subject: [PATCH] blink-funktionen in einer funktion zusammengefasst --- source/nodemcu/statusclient/statusclient.ino | 116 +++++-------------- 1 file changed, 27 insertions(+), 89 deletions(-) diff --git a/source/nodemcu/statusclient/statusclient.ino b/source/nodemcu/statusclient/statusclient.ino index 5faaa2e..4322c34 100644 --- a/source/nodemcu/statusclient/statusclient.ino +++ b/source/nodemcu/statusclient/statusclient.ino @@ -25,6 +25,28 @@ door_state current_door_state = DOOR_CLOSED; BearSSL::WiFiClientSecure client; +void blink_led(int blink_count, int delay_time) { + /* + * zur ausgabe von meldungen blinkt die interne led. + * erfolgreichesmeldungen werden durch kurze blinkzeichen angezeigt, + * fehlermeldungen sind durch eine lange sequenz gekennzeichnet. + * Signale: + * status der tür hat sich geändert: 2x kurz + * änderung erfolgreich gesendet: 5x kurz + * es konnte keine wifi aufgebaut werden: 3x lang + * senden des status fehlgeschlagen: 5x lang + * + * param 1: integer + * param 2: integer + */ + for(int i=0; i!= blink_count; ++i) { + digitalWrite(LED_PIN, LOW); + delay(delay_time); + digitalWrite(LED_PIN, HIGH); + delay(delay_time); + } +} + void init_serial() { /* * set baudrate and debug modus @@ -66,7 +88,7 @@ void init_wifi() { set_clock(); } else { Serial.println("[Wifi] Error: Failed to connect"); - signal_wifi_failed(); + blink_led(3, 500); } } @@ -85,88 +107,6 @@ door_state read_door_state() { return DOOR_CLOSED; } -void signal_door_changed() { - /* - * LED signal, if door is opened - */ - uint8_t count = 2; - for(uint8_t i=0; i!= count; ++i) { - digitalWrite(LED_PIN, LOW); - delay(100); - digitalWrite(LED_PIN, HIGH); - delay(100); - } -} - -void signal_send_successful() { - /* - * LED signal, if new status was send successful - */ - uint8_t count = 5; - for(uint8_t i=0; i!= count; ++i) { - digitalWrite(LED_PIN, LOW); - delay(100); - digitalWrite(LED_PIN, HIGH); - delay(100); - } -} - -void signal_clock_failed() { - /* - * LED signal, if time setting failed - */ - uint8_t count = 2; - for(uint8_t i=0; i!= count; ++i) { - digitalWrite(LED_PIN, LOW); - delay(500); - digitalWrite(LED_PIN, HIGH); - delay(500); - } - delay(2000); -} - -void signal_wifi_failed() { - /* - * LED signal, if wifi initialication was failed - */ - uint8_t count = 3; - for(uint8_t i=0; i!= count; ++i) { - digitalWrite(LED_PIN, LOW); - delay(500); - digitalWrite(LED_PIN, HIGH); - delay(500); - } - delay(2000); -} - -void signal_connect_failed() { - /* - * LED signal, if door is opened - */ - uint8_t count = 4; - for(uint8_t i=0; i!= count; ++i) { - digitalWrite(LED_PIN, LOW); - delay(500); - digitalWrite(LED_PIN, HIGH); - delay(500); - } - delay(2000); -} - -void signal_send_failed() { - /* - * LED signal, if door is opened - */ - uint8_t count = 5; - for(uint8_t i=0; i!= count; ++i) { - digitalWrite(LED_PIN, LOW); - delay(500); - digitalWrite(LED_PIN, HIGH); - delay(500); - } - delay(2000); -} - void set_clock() { /* * We need time for certificate authorization @@ -214,7 +154,6 @@ int send_status(door_state state) { Serial.println("[Send] Can't connect to server"); Serial.print("[Send] SSL Error: "); Serial.println(client.getLastSSLError()); - signal_send_failed(); client.stop(); return 1; } else { @@ -223,7 +162,6 @@ int send_status(door_state state) { Serial.println("[Send] Connection successful established"); Serial.printf("[Send] Send status: %s\n", status); client.write(status); - signal_send_successful(); client.stop(); } return 0; @@ -245,15 +183,15 @@ void loop() { /* * things are running in a endless loop */ - if (WiFi.status() != WL_CONNECTED) { - init_wifi(); - } door_state new_door_state = read_door_state(); if (new_door_state != current_door_state) { Serial.printf("[Loop] Status has changed to %i\n", new_door_state); - signal_door_changed(); + blink_led(2, 100); if (send_status(new_door_state) == 0) { current_door_state = new_door_state; + blink_led(5, 100); + } else { + blink_led(5, 500); } } delay(FREQUENCY);