add: database in config file
fix: set pinMode only on start
This commit is contained in:
parent
fd2f5acbb3
commit
6e3b1d52a4
10 changed files with 24 additions and 9 deletions
|
@ -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
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
|
@ -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);
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
|
@ -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
12
main.c
|
@ -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 ********************/
|
||||||
|
|
Loading…
Reference in a new issue