add: init relays after discover
This commit is contained in:
parent
606f2483a5
commit
dab106c1f6
3 changed files with 35 additions and 5 deletions
2
core.ini
2
core.ini
|
@ -1,5 +1,7 @@
|
||||||
[core]
|
[core]
|
||||||
server-port = 5000
|
server-port = 5000
|
||||||
|
|
||||||
|
: 4421 for dev-env; 4420 for testing-env; 4419 for prod-env; 4422 for testing
|
||||||
discovery-port = 4421
|
discovery-port = 4421
|
||||||
database = core.sqlite
|
database = core.sqlite
|
||||||
log-level = debug
|
log-level = debug
|
||||||
|
|
|
@ -243,12 +243,37 @@ api_v1_controllers_discover_POST(struct mg_connection *c, endpoint_args_t *args,
|
||||||
discovered_controller->port = discovered_command_port;
|
discovered_controller->port = discovered_command_port;
|
||||||
discovered_controller->active = 1;
|
discovered_controller->active = 1;
|
||||||
|
|
||||||
// TODO get relays during discovery
|
controller_save(discovered_controller);
|
||||||
relay_t **discovered_relays = malloc(sizeof(relay_t*));
|
|
||||||
discovered_relays[0] = NULL;
|
// TODO get relays during discovery and don't create empty ones
|
||||||
|
relay_t **discovered_relays = malloc(sizeof(relay_t*) * (discovered_controller->relay_count + 1));
|
||||||
|
for(int i = 0; i < discovered_controller->relay_count; ++i)
|
||||||
|
{
|
||||||
|
relay_t *new_relay = malloc(sizeof(relay_t));
|
||||||
|
new_relay->id = 0;
|
||||||
|
sprintf(new_relay->name, "Relay %d", i + 1);
|
||||||
|
new_relay->number = i;
|
||||||
|
new_relay->controller_id = discovered_controller->id;
|
||||||
|
|
||||||
|
uuid_t tmp_uuid;
|
||||||
|
memset(tmp_uuid, 0, sizeof(uuid_t));
|
||||||
|
memcpy(tmp_uuid, "off", 3);
|
||||||
|
|
||||||
|
for(int i = 0; i < 7; ++i)
|
||||||
|
{
|
||||||
|
new_relay->schedules[i] = schedule_get_by_uid(tmp_uuid);
|
||||||
|
}
|
||||||
|
time_t timestamp = time(NULL);
|
||||||
|
struct tm *time_struct = localtime(×tamp);
|
||||||
|
new_relay->active_schedule = new_relay->schedules[helper_get_weekday(time_struct)];
|
||||||
|
|
||||||
|
relay_save(new_relay);
|
||||||
|
|
||||||
|
discovered_relays[i] = new_relay;
|
||||||
|
}
|
||||||
|
discovered_relays[discovered_controller->relay_count] = NULL;
|
||||||
discovered_controller->relays = discovered_relays;
|
discovered_controller->relays = discovered_relays;
|
||||||
|
|
||||||
controller_save(discovered_controller);
|
|
||||||
controller_free(discovered_controller);
|
controller_free(discovered_controller);
|
||||||
}
|
}
|
||||||
mpack_tree_destroy(&tree);
|
mpack_tree_destroy(&tree);
|
||||||
|
|
|
@ -138,9 +138,12 @@ controller_save(controller_t *controller)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
{
|
||||||
|
if(!controller->id)
|
||||||
{
|
{
|
||||||
controller->id = sqlite3_last_insert_rowid(global_database);
|
controller->id = sqlite3_last_insert_rowid(global_database);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue