X-Git-Url: http://www.average.org/gitweb/?p=pulsecounter.git;a=blobdiff_plain;f=Pulsecounter-Prog.c;h=ced5632fa253abca6f0cf3b09e1e998b960bbc87;hp=2c3256d849ee1eabac4e03815f8e3f0743585246;hb=9289332e07e03c86a13fbcdaa8ec3dbafd5faf09;hpb=b0aee467c6cb053f9ad754e93b349e4e45cc0860 diff --git a/Pulsecounter-Prog.c b/Pulsecounter-Prog.c index 2c3256d..ced5632 100644 --- a/Pulsecounter-Prog.c +++ b/Pulsecounter-Prog.c @@ -1,33 +1,66 @@ #include "Pulsecounter.h" #include "Hal.h" -static void buttonHandler(void); +static void gpioHandler(uint8_t id); static void tickHandler(void); +static int32_t cold = 0; +static int32_t hot = 0; static bool connected = false; +static bool updatable = false; void main() { Hal_init(); - Hal_buttonEnable(buttonHandler); + Hal_gpioEnable(gpioHandler); Pulsecounter_setDeviceName("PULS-CNTR"); Pulsecounter_start(); Hal_idleLoop(); } -static void buttonHandler(void) { +static void gpioHandler(uint8_t id) { uint8_t i; - if (connected) - Pulsecounter_event3_indicate(); - else - Pulsecounter_accept(true); - for (i = 0; i < 3; i++) { + switch (id) { + case 0: + /* Pulsecounter_accept(true); */ + updatable = true; + if (connected) { + Pulsecounter_coldTick_indicate(); + Hal_delay(100); + Pulsecounter_hotTick_indicate(); + } Hal_greenLedOn(); Hal_redLedOn(); - Hal_delay(100); + Hal_delay(10); + Hal_greenLedOff(); + Hal_redLedOff(); + Hal_tickStart(15000, tickHandler); + break; + case 1: + cold++; + if (connected) + Pulsecounter_coldTick_indicate(); + Hal_greenLedOn(); + Hal_delay(10); Hal_greenLedOff(); + break; + case 2: + hot++; + if (connected) + Pulsecounter_hotTick_indicate(); + Hal_redLedOn(); + Hal_delay(10); Hal_redLedOff(); + break; + default: + for (i = 0; i < 5; i++) { + Hal_greenLedOn(); + Hal_redLedOn(); + Hal_delay(10); + Hal_greenLedOff(); + Hal_redLedOff(); + Hal_delay(10); + } } - Hal_tickStart(5000, tickHandler); } static void tickHandler(void) { @@ -45,13 +78,15 @@ static void tickHandler(void) { Hal_delay(50); Hal_greenLedOff(); } - Pulsecounter_accept(false); + updatable = false; + /* Pulsecounter_accept(false); */ } /* -------- SCHEMA CALLBACKS -------- */ void Pulsecounter_connectHandler(void) { connected = true; + Hal_tickStop(); Hal_connected(); Hal_redLedOn(); Hal_delay(100); @@ -63,24 +98,45 @@ void Pulsecounter_connectHandler(void) { void Pulsecounter_disconnectHandler(void) { connected = false; + updatable = false; Hal_greenLedOn(); Hal_delay(100); Hal_greenLedOff(); Hal_redLedOn(); Hal_delay(100); Hal_redLedOff(); - Hal_tickStart(5000, tickHandler); + /* Hal_tickStart(15000, tickHandler); */ Hal_disconnected(); } -void Pulsecounter_event3_fetch(Pulsecounter_event3_t* const output) { - *output = buttonCnt; +void Pulsecounter_coldTick_fetch(Pulsecounter_coldTick_t* const output) { + *output = cold; } -void Pulsecounter_event4_fetch(Pulsecounter_event4_t* const output) { - *output = 4; +void Pulsecounter_hotTick_fetch(Pulsecounter_hotTick_t* const output) { + *output = hot; } -void Pulsecounter_event5_fetch(Pulsecounter_event5_t* const output) { - *output = 5; +void Pulsecounter_coldSet_store(Pulsecounter_coldSet_t* const input) { + Hal_greenLedOn(); + Hal_delay(100); + Hal_greenLedOff(); + Hal_delay(100); + Hal_greenLedOn(); + Hal_delay(100); + Hal_greenLedOff(); + // if (updatable) + cold = *input; +} + +void Pulsecounter_hotSet_store(Pulsecounter_hotSet_t* const input) { + Hal_redLedOn(); + Hal_delay(100); + Hal_redLedOff(); + Hal_delay(100); + Hal_redLedOn(); + Hal_delay(100); + Hal_redLedOff(); + // if (updatable) + hot = *input; }