add: mqtt status client
This commit is contained in:
parent
1d1ae61310
commit
679175f1a9
11 changed files with 119 additions and 40 deletions
src
26
src/main.c
26
src/main.c
|
@ -10,6 +10,7 @@
|
|||
#include <models/controller.h>
|
||||
#include <database.h>
|
||||
#include <config.h>
|
||||
#include <connections.h>
|
||||
#include <constants.h>
|
||||
#include <handlers.h>
|
||||
#include <drivers.h>
|
||||
|
@ -32,8 +33,9 @@ terminate(int signum)
|
|||
{
|
||||
LOG_INFO("terminating controller (%d)\n", signum);
|
||||
|
||||
LOG_DEBUG("freeing mongoose manager\n");
|
||||
mg_mgr_free(&mgr);
|
||||
// TODO fix mg_mgr_free() causing loop (can't terminate)
|
||||
//LOG_DEBUG("freeing mongoose manager\n");
|
||||
//mg_mgr_free(&mgr);
|
||||
|
||||
LOG_DEBUG("closing database\n");
|
||||
mdb_env_close(global_mdb_env);
|
||||
|
@ -71,6 +73,8 @@ main(int argc, const char** argv)
|
|||
|
||||
global_config.file = "controller.ini";
|
||||
global_config.log_level = LOG_LEVEL_INFO;
|
||||
global_config.discovery_port = 4421;
|
||||
global_config.mqtt_port = 1885;
|
||||
|
||||
helper_parse_cli(argc, argv, &global_config);
|
||||
|
||||
|
@ -102,15 +106,10 @@ main(int argc, const char** argv)
|
|||
|
||||
global_controller = controller_load(global_mdb_env);
|
||||
|
||||
char address[100];
|
||||
sprintf(address, "udp://0.0.0.0:%u", global_controller->discovery_port);
|
||||
struct mg_connection *c_discovery = mg_bind(&mgr, address, handler_discovery);
|
||||
sprintf(address, "tcp://0.0.0.0:%u", global_controller->command_port);
|
||||
struct mg_connection *c_command = mg_bind(&mgr, address, handler_command);
|
||||
sprintf(address, "tcp://localhost:%u", 1883);
|
||||
struct mg_connection *c_mqtt = mg_connect(&mgr, address, handler_mqtt);
|
||||
connection_discovery_bind(&mgr);
|
||||
connection_mqtt_connect(&mgr);
|
||||
struct mg_connection *c_command = connection_command_bind(&mgr);
|
||||
|
||||
(void)c_discovery; // still unused
|
||||
global_controller->command_port = helper_get_port(c_command->sock);
|
||||
|
||||
controller_save(global_controller, global_mdb_env);
|
||||
|
@ -144,7 +143,12 @@ main(int argc, const char** argv)
|
|||
for(;;)
|
||||
{
|
||||
mg_mgr_poll(&mgr, 1000);
|
||||
handler_loop(c_mqtt);
|
||||
if(!global_connection_mqtt)
|
||||
{
|
||||
LOG_DEBUG("mqtt connection is not open\n");
|
||||
connection_mqtt_connect(&mgr);
|
||||
}
|
||||
handler_loop(global_connection_mqtt);
|
||||
}
|
||||
|
||||
terminate(0);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue