add: weekly schedules support
This commit is contained in:
parent
db3bcaf7d1
commit
2fd48ac5e6
18 changed files with 301 additions and 86 deletions
include/models
|
@ -48,7 +48,6 @@ typedef enum
|
|||
DB_KEY_CONTROLLER_NAME = 1,
|
||||
DB_KEY_CONTROLLER_COMMAND_PORT = 2,
|
||||
DB_KEY_CONTROLLER_DISCOVERY_PORT = 3,
|
||||
DB_KEY_CONTROLLER_RELAYS = 4,
|
||||
} db_key_controller_e;
|
||||
|
||||
/**
|
||||
|
|
|
@ -12,7 +12,7 @@ typedef struct
|
|||
{
|
||||
uint8_t number;
|
||||
char name[MAX_NAME_LENGTH + 1];
|
||||
schedule_t *schedule;
|
||||
schedule_t *schedules[7];
|
||||
} relay_t;
|
||||
|
||||
/**
|
||||
|
@ -21,8 +21,6 @@ typedef struct
|
|||
typedef enum
|
||||
{
|
||||
DB_KEY_RELAY_NAME = 0,
|
||||
DB_KEY_RELAY_SCHEDULE_ID = 1,
|
||||
DB_KEY_RELAY_SCHEDULE_PERIODS = 2,
|
||||
} db_key_relay_e;
|
||||
|
||||
relay_t*
|
||||
|
|
|
@ -3,18 +3,35 @@
|
|||
|
||||
#include <stdint.h>
|
||||
#include <uuid/uuid.h>
|
||||
#include <lmdb.h>
|
||||
|
||||
#include <models/period.h>
|
||||
|
||||
typedef struct
|
||||
{
|
||||
uuid_t id;
|
||||
uint8_t weekday;
|
||||
uint16_t length;
|
||||
period_t **periods;
|
||||
} schedule_t;
|
||||
|
||||
/**
|
||||
* @brief Key to save schedule information in database
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
DB_KEY_SCHEDULE_ID = 0,
|
||||
DB_KEY_SCHEDULE_PERIODS = 1,
|
||||
} db_key_schedule_e;
|
||||
|
||||
schedule_t*
|
||||
schedule_create(uuid_t id, uint16_t length, uint16_t *periods_blob);
|
||||
schedule_create(uuid_t id, uint8_t weekday, uint16_t length, uint16_t *periods_blob);
|
||||
|
||||
schedule_t*
|
||||
schedule_load(MDB_env *mdb_env, uint8_t relay_num, uint8_t weekday);
|
||||
|
||||
int
|
||||
schedule_save(schedule_t *schedule, uint8_t relay_num, MDB_env *mdb_env);
|
||||
|
||||
uint16_t*
|
||||
schedule_periods_to_blob(schedule_t *schedule);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue