static int32_t cold = 0;
static int32_t hot = 0;
static bool connected = false;
-static bool updatable = false;
void main() {
Hal_init();
Hal_idleLoop();
}
+static void blink(uint8_t which, uint8_t count) {
+ uint8_t i;
+ for (i = 0; i < count; i++) {
+ if (i) Hal_delay(50);
+ if (which & 1) Hal_greenLedOn();
+ if (which & 2) Hal_redLedOn();
+ Hal_delay(50);
+ if (which & 1) Hal_greenLedOff();
+ if (which & 2) Hal_redLedOff();
+ }
+}
+
static void gpioHandler(uint8_t id) {
uint8_t 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(10);
- Hal_greenLedOff();
- Hal_redLedOff();
+ blink(3, 2);
Hal_tickStart(15000, tickHandler);
break;
case 1:
cold++;
if (connected)
Pulsecounter_coldTick_indicate();
- Hal_greenLedOn();
- Hal_delay(10);
- Hal_greenLedOff();
+ blink(1, 2);
break;
case 2:
hot++;
if (connected)
Pulsecounter_hotTick_indicate();
- Hal_redLedOn();
- Hal_delay(10);
- Hal_redLedOff();
+ blink(2, 2);
break;
default:
- for (i = 0; i < 5; i++) {
- Hal_greenLedOn();
- Hal_redLedOn();
- Hal_delay(10);
- Hal_greenLedOff();
- Hal_redLedOff();
- Hal_delay(10);
- }
+ blink(3, 15);
}
}
Hal_delay(50);
Hal_greenLedOff();
}
- updatable = false;
/* Pulsecounter_accept(false); */
}
void Pulsecounter_connectHandler(void) {
connected = true;
Hal_tickStop();
- Hal_connected();
- Hal_redLedOn();
- Hal_delay(100);
- Hal_redLedOff();
- Hal_greenLedOn();
- Hal_delay(100);
- Hal_greenLedOff();
+ blink(1, 5);
}
void Pulsecounter_disconnectHandler(void) {
connected = false;
- updatable = false;
- Hal_greenLedOn();
- Hal_delay(100);
- Hal_greenLedOff();
- Hal_redLedOn();
- Hal_delay(100);
- Hal_redLedOff();
/* Hal_tickStart(15000, tickHandler); */
Hal_disconnected();
+ blink(2, 5);
}
void Pulsecounter_coldTick_fetch(Pulsecounter_coldTick_t* const output) {
void Pulsecounter_hotTick_fetch(Pulsecounter_hotTick_t* const output) {
*output = hot;
}
-
-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;
-}