add: database in config file

fix: set pinMode only on start
This commit is contained in:
Tobias Reisinger 2020-04-18 16:34:43 +02:00
parent fd2f5acbb3
commit 6e3b1d52a4
10 changed files with 24 additions and 9 deletions

View file

@ -2,6 +2,7 @@
name = new emgauwa device name = new emgauwa device
discovery-port = 4421 discovery-port = 4421
relay-count = 10 relay-count = 10
database = db.lmdb
[relay-0] [relay-0]
driver = piface driver = piface

View file

@ -3,10 +3,11 @@
#include <stdio.h> #include <stdio.h>
#include <lmdb.h> #include <lmdb.h>
#include <config.h>
#include <constants.h> #include <constants.h>
void void
database_setup(MDB_env **mdb_env) database_setup(MDB_env **mdb_env, config_t *config)
{ {
int err; int err;
@ -22,7 +23,7 @@ database_setup(MDB_env **mdb_env)
exit(1); exit(1);
} }
if(mdb_env_open(*mdb_env, "db.lmdb", MDB_NOSUBDIR, 0700) != 0) if(mdb_env_open(*mdb_env, config->database, MDB_NOSUBDIR, 0700) != 0)
{ {
perror("Can't open mdb file"); perror("Can't open mdb file");
exit(1); exit(1);

View file

@ -10,6 +10,5 @@ driver_gpio_set(int pin, int value)
// disable "unused parameter" warning (happens when using wiring_debug) // disable "unused parameter" warning (happens when using wiring_debug)
(void)pin; (void)pin;
(void)value; (void)value;
pinMode(pin, OUTPUT);
digitalWrite(pin, value); digitalWrite(pin, value);
} }

View file

@ -10,5 +10,5 @@ driver_piface_set(int pin, int value)
// disable "unused parameter" warning (happens when using wiring_debug) // disable "unused parameter" warning (happens when using wiring_debug)
(void)pin; (void)pin;
(void)value; (void)value;
digitalWrite(DRIVER_PIFACE_GPIO_BASE + pin, value); digitalWrite(PIFACE_GPIO_BASE + pin, value);
} }

View file

@ -24,6 +24,11 @@ helper_load_config(IniDispatch *disp, void *config_void)
config->name[MAX_NAME_LENGTH] = '\0'; config->name[MAX_NAME_LENGTH] = '\0';
return 0; return 0;
} }
if(CONFINI_IS_KEY("controller", "database"))
{
config->database = disp->value;
return 0;
}
if(CONFINI_IS_KEY("controller", "discovery-port")) if(CONFINI_IS_KEY("controller", "discovery-port"))
{ {
config->discovery_port = atoi(disp->value); config->discovery_port = atoi(disp->value);

View file

@ -16,6 +16,7 @@ typedef struct
typedef struct typedef struct
{ {
char *file; char *file;
char *database;
run_type_t run_type; run_type_t run_type;
char name[MAX_NAME_LENGTH + 1]; char name[MAX_NAME_LENGTH + 1];
uint16_t discovery_port; uint16_t discovery_port;

View file

@ -35,4 +35,6 @@
*/ */
#define ACCEPT_TIMEOUT_MSECONDS 1000 #define ACCEPT_TIMEOUT_MSECONDS 1000
#define PIFACE_GPIO_BASE 200
#endif /* CONTROLLER_CONTANTS_H */ #endif /* CONTROLLER_CONTANTS_H */

View file

@ -12,6 +12,6 @@
* @param mdb_env Source variable will be set to new MDB_env * @param mdb_env Source variable will be set to new MDB_env
*/ */
void void
database_setup(MDB_env **mdb_env); database_setup(MDB_env **mdb_env, config_t *config);
#endif /* CONTROLLER_DATABASE_H */ #endif /* CONTROLLER_DATABASE_H */

View file

@ -4,8 +4,6 @@
#include <models/relay.h> #include <models/relay.h>
#include <enums.h> #include <enums.h>
#define DRIVER_PIFACE_GPIO_BASE 200
void void
driver_piface_set(int pin, int value); driver_piface_set(int pin, int value);

12
main.c
View file

@ -93,7 +93,7 @@ main(int argc, const char** argv)
/******************** SETUP DATABASE AND THIS CONTROLLER ********************/ /******************** SETUP DATABASE AND THIS CONTROLLER ********************/
database_setup(&mdb_env); database_setup(&mdb_env, &global_config);
this_controller = controller_load(mdb_env); this_controller = controller_load(mdb_env);
@ -108,7 +108,15 @@ main(int argc, const char** argv)
/******************** SETUP WIRINGPI ********************/ /******************** SETUP WIRINGPI ********************/
wiringPiSetup(); wiringPiSetup();
piFaceSetup(200); piFaceSetup(PIFACE_GPIO_BASE);
for(uint_fast8_t i = 0; i < this_controller->relay_count; ++i)
{
if(global_config.relay_configs[i].driver == RELAY_DRIVER_GPIO)
{
pinMode(global_config.relay_configs[i].pin, OUTPUT);
}
}
/******************** SETUP SOCKETS ********************/ /******************** SETUP SOCKETS ********************/