Compare commits

..

No commits in common. "main" and "v0.3.4" have entirely different histories.
main ... v0.3.4

7 changed files with 20 additions and 16 deletions

View file

@ -1,6 +1,6 @@
cmake_minimum_required (VERSION 3.7)
project(controller
VERSION 0.3.7
VERSION 0.3.4
LANGUAGES C)
add_executable(controller src/main.c)

View file

@ -3,6 +3,7 @@
#include <uuid/uuid.h>
#include <stdint.h>
#include <lmdb.h>
#include <config.h>
#include <models/relay.h>

View file

@ -3,6 +3,7 @@
#include <stdint.h>
#include <time.h>
#include <lmdb.h>
#include <constants.h>
#include <models/schedule.h>
@ -12,6 +13,7 @@ typedef struct
int id;
uint8_t number;
int is_on;
int is_on_schedule;
int pulse_timer;
int sent_to_broker;
char name[MAX_NAME_LENGTH + 1];

View file

@ -3,6 +3,7 @@
#include <stdint.h>
#include <uuid/uuid.h>
#include <lmdb.h>
#include <models/period.h>

View file

@ -34,25 +34,21 @@ handler_loop(struct mg_connection *c_mqtt)
int is_on = 0;
int is_on_schedule = relay_is_on_schedule(relay, &time_now);
int pulse_relay = global_config.relay_configs[i].pulse_duration;
if(is_on_schedule)
if(relay->is_on_schedule != is_on_schedule && relay->is_on_schedule != -1)
{
if(!pulse_relay)
{
is_on = 1;
LOGGER_DEBUG("relay %d is active\n", i);
}
if(pulse_relay && relay->pulse_timer)
{
is_on = 1;
--relay->pulse_timer;
LOGGER_DEBUG("relay %d is pulsing for %d more seconds\n", i, relay->pulse_timer);
}
relay->pulse_timer = global_config.relay_configs[i].pulse_duration;
}
else
if(is_on_schedule && !global_config.relay_configs[i].pulse_duration)
{
relay->pulse_timer = 0;
is_on = 1;
LOGGER_DEBUG("relay %d is active\n", i);
}
if(relay->pulse_timer > 0)
{
is_on = 1;
--relay->pulse_timer;
LOGGER_DEBUG("relay %d is pulsing for %d more seconds\n", i, relay->pulse_timer);
}
if(relay->is_on != is_on)
@ -72,6 +68,7 @@ handler_loop(struct mg_connection *c_mqtt)
--relay->sent_to_broker;
}
relay->is_on = is_on;
relay->is_on_schedule = is_on_schedule;
if(global_config.relay_configs[i].inverted)
{

View file

@ -2,6 +2,7 @@
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <lmdb.h>
#include <signal.h>
#include <syslog.h>

View file

@ -60,6 +60,7 @@ relay_db_select_mapper(sqlite3_stmt *stmt)
relay_reload_schedules(new_relay);
new_relay->is_on = -1;
new_relay->is_on_schedule = -1;
new_relay->pulse_timer = 0;
new_relay->sent_to_broker = 0;
@ -176,6 +177,7 @@ relay_create(uint8_t number)
new_relay->name[0] = '\0';
new_relay->is_on = -1;
new_relay->is_on_schedule = -1;
new_relay->pulse_timer = 0;
new_relay->sent_to_broker = 0;