33 lines
882 B
C
33 lines
882 B
C
#include "mgos.h"
|
|
#include "mgos_gpio.h"
|
|
#include "relayHandler.h"
|
|
|
|
#define ON_BOARD_RELAY_PIN 12
|
|
|
|
void set_relay(enum RelayAction rm) {
|
|
switch (rm) {
|
|
case RELAY_ON:
|
|
mgos_gpio_write(ON_BOARD_RELAY_PIN, false);
|
|
break;
|
|
case RELAY_OFF:
|
|
mgos_gpio_write(ON_BOARD_RELAY_PIN, true);
|
|
break;
|
|
case RELAY_TOGGLE:
|
|
mgos_gpio_toggle(ON_BOARD_RELAY_PIN);
|
|
break;
|
|
default:
|
|
LOG(LL_ERROR, ("ERROR: Unknown relay mode %d -- ignored", rm));
|
|
break;
|
|
}
|
|
LOG(LL_DEBUG, ("set_relay mode=%d", rm));
|
|
}
|
|
|
|
bool relay_is_on() {
|
|
return !mgos_gpio_read_out(ON_BOARD_RELAY_PIN);
|
|
}
|
|
|
|
void init_relay_handler() {
|
|
mgos_gpio_set_mode(ON_BOARD_RELAY_PIN, MGOS_GPIO_MODE_OUTPUT);
|
|
mgos_gpio_write(ON_BOARD_RELAY_PIN, true);
|
|
LOG(LL_INFO, ("Relay handler initialized"));
|
|
} |