mg_sonoff/src/relayHandler.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"));
}