data: load and save are fonctionnal.
This commit is contained in:
@@ -38,6 +38,8 @@
|
||||
#include "domo.h"
|
||||
|
||||
#include "outlet_dio.h"
|
||||
#include "shutter.h"
|
||||
#include "sprinkler.h"
|
||||
|
||||
#include "devices_manager.h"
|
||||
|
||||
@@ -48,9 +50,11 @@ struct json_object *save_outlets(devices_manager_t *dm);
|
||||
int create_outlet(struct json_object *node);
|
||||
|
||||
int load_shutters(devices_manager_t *dm, struct json_object *node);
|
||||
struct json_object *save_shutters(devices_manager_t *dm);
|
||||
int create_shutter(devices_manager_t *dm, struct json_object *node);
|
||||
|
||||
int load_sprinklers(devices_manager_t *dm, struct json_object *node);
|
||||
struct json_object *save_sprinklers(devices_manager_t *dm);
|
||||
int create_sprinkler(devices_manager_t *dm, struct json_object *node);
|
||||
|
||||
/*----------------------------- PUBLIC FUNCTIONS ----------------------------*/
|
||||
@@ -69,8 +73,8 @@ devices_manager_t *devices_manager_new(void)
|
||||
|
||||
// Initialize instance.
|
||||
devices_manager->outlets = qlist(0);
|
||||
devices_manager->shutters = qhashtbl(0, 0);
|
||||
devices_manager->sprinklers = qhashtbl(0, 0);
|
||||
devices_manager->shutters = qlist(0);
|
||||
devices_manager->sprinklers = qlist(0);
|
||||
|
||||
return devices_manager;
|
||||
}
|
||||
@@ -158,9 +162,9 @@ int devices_manager_save(devices_manager_t *dm)
|
||||
// Outlets
|
||||
json_object_object_add(root_node, kOutletEntry, save_outlets(dm));
|
||||
// Shutters
|
||||
//json_object_object_add(the_root_node, kShutterEntry, m_shutters.to_json());
|
||||
json_object_object_add(root_node, kShutterEntry, save_shutters(dm));
|
||||
// Sprinklers
|
||||
//json_object_object_add(the_root_node, kSprinklerEntry, m_sprinklers.to_json());
|
||||
json_object_object_add(root_node, kSprinklerEntry, save_sprinklers(dm));
|
||||
|
||||
result = json_object_to_file_ext(dm->file_path, root_node, JSON_C_TO_STRING_PRETTY);
|
||||
|
||||
@@ -174,7 +178,7 @@ int devices_manager_save(devices_manager_t *dm)
|
||||
|
||||
char *devices_manager_get(devices_manager_t *dm, const char *capability)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
#warning "TODO"
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -182,7 +186,7 @@ char *devices_manager_get(devices_manager_t *dm, const char *capability)
|
||||
|
||||
char *devices_manager_get_by_id(devices_manager_t *dm, const char *capability, uint32_t id)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
#warning "TODO"
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -190,7 +194,7 @@ char *devices_manager_get_by_id(devices_manager_t *dm, const char *capability, u
|
||||
|
||||
int devices_manager_set(devices_manager_t *dm, const char *capability, struct json_object *node)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
#warning "TODO"
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -198,7 +202,7 @@ int devices_manager_set(devices_manager_t *dm, const char *capability, struct js
|
||||
|
||||
int devices_manager_set_state(devices_manager_t *dm, const char *capability, int id, bool state)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
#warning "TODO"
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -206,7 +210,7 @@ int devices_manager_set_state(devices_manager_t *dm, const char *capability, int
|
||||
|
||||
int devices_manager_create(devices_manager_t *dm, const char *a_capability, struct json_object *node)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
#warning "TODO"
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -214,7 +218,7 @@ int devices_manager_create(devices_manager_t *dm, const char *a_capability, stru
|
||||
|
||||
int devices_manager_update(devices_manager_t *dm, const char *a_capability, struct json_object *node)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
#warning "TODO"
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -222,7 +226,7 @@ int devices_manager_update(devices_manager_t *dm, const char *a_capability, stru
|
||||
|
||||
int devices_manager_delete(devices_manager_t *dm, const char *a_capability, struct json_object *node)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
#warning "TODO"
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -235,7 +239,7 @@ int devices_manager_delete(devices_manager_t *dm, const char *a_capability, stru
|
||||
*/
|
||||
int load_outlets(devices_manager_t *dm, struct json_object *node)
|
||||
{
|
||||
DEBUG("DevicesManager::load_outlets\n");
|
||||
DEBUG("devicesManager-load_outlets\n");
|
||||
|
||||
/* Get Outlets */
|
||||
if (json_object_get_type(node) == json_type_array)
|
||||
@@ -282,15 +286,54 @@ struct json_object *save_outlets(devices_manager_t *dm)
|
||||
|
||||
int load_shutters(devices_manager_t *dm, struct json_object *node)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
return 0;
|
||||
DEBUG("devicesManager-load_shutters\n");
|
||||
|
||||
/* Get Shutters */
|
||||
if (json_object_get_type(node) == json_type_array)
|
||||
{
|
||||
int length;
|
||||
struct json_object *shutter_node;
|
||||
|
||||
length = json_object_array_length(node);
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
shutter_t *shutter = shutter_new();
|
||||
shutter_node = json_object_array_get_idx(node, i);
|
||||
if (shutter_from_json(shutter, shutter_node) == 0)
|
||||
{
|
||||
qlist_addlast(dm->shutters, shutter, sizeof(shutter_t));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
struct json_object *save_shutters(devices_manager_t *dm)
|
||||
{
|
||||
struct json_object *root_node;
|
||||
shutter_t *shutter;
|
||||
qlist_obj_t obj;
|
||||
|
||||
memset((void *) &obj, 0, sizeof(obj));
|
||||
root_node = json_object_new_array();
|
||||
|
||||
while (qlist_getnext(dm->shutters, &obj, true))
|
||||
{
|
||||
shutter = obj.data;
|
||||
json_object_array_add(root_node, shutter_to_json_object(shutter));
|
||||
}
|
||||
|
||||
return root_node;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
int create_shutter(devices_manager_t *dm, struct json_object *node)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
#warning "TODO"
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -298,14 +341,53 @@ int create_shutter(devices_manager_t *dm, struct json_object *node)
|
||||
|
||||
int load_sprinklers(devices_manager_t *dm, struct json_object *node)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
return 0;
|
||||
DEBUG("devicesManager-load_sprinkler\n");
|
||||
|
||||
/* Get Shutters */
|
||||
if (json_object_get_type(node) == json_type_array)
|
||||
{
|
||||
int length;
|
||||
struct json_object *sprinkler_node;
|
||||
|
||||
length = json_object_array_length(node);
|
||||
for (int i = 0; i < length; i++)
|
||||
{
|
||||
sprinkler_t *sprinkler = sprinkler_new();
|
||||
sprinkler_node = json_object_array_get_idx(node, i);
|
||||
if (sprinkler_from_json(sprinkler, sprinkler_node) == 0)
|
||||
{
|
||||
qlist_addlast(dm->sprinklers, sprinkler, sizeof(sprinkler_t));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
struct json_object *save_sprinklers(devices_manager_t *dm)
|
||||
{
|
||||
struct json_object *root_node;
|
||||
sprinkler_t *sprinkler;
|
||||
qlist_obj_t obj;
|
||||
|
||||
memset((void *) &obj, 0, sizeof(obj));
|
||||
root_node = json_object_new_array();
|
||||
|
||||
while (qlist_getnext(dm->sprinklers, &obj, true))
|
||||
{
|
||||
sprinkler = obj.data;
|
||||
json_object_array_add(root_node, sprinkler_to_json_object(sprinkler));
|
||||
}
|
||||
|
||||
return root_node;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
int create_sprinkler(devices_manager_t *dm, struct json_object *node)
|
||||
{
|
||||
DEBUG("TODO");
|
||||
#warning "TODO"
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -49,8 +49,8 @@ struct devices_manager_s
|
||||
char *file_path;
|
||||
|
||||
qlist_t *outlets;
|
||||
qhashtbl_t *shutters;
|
||||
qhashtbl_t *sprinklers;
|
||||
qlist_t *shutters;
|
||||
qlist_t *sprinklers;
|
||||
};
|
||||
|
||||
/*--------------------------- PUBLIC FUNCTIONS -------------------------------*/
|
||||
|
||||
@@ -131,8 +131,9 @@ int main(int argc, char **argv)
|
||||
fprintf(stderr, "Failed to Load the devices.\n");
|
||||
return -1;
|
||||
}
|
||||
devices_manager_save(device_manager);
|
||||
|
||||
#if 0
|
||||
devices_manager_save(device_manager);
|
||||
/* Setup the Sequences Manager. */
|
||||
SequencesManager the_sequences_manager(the_config_path + "/sequences.json", &the_devices_manager);
|
||||
if (the_sequences_manager.load() != 0)
|
||||
|
||||
Reference in New Issue
Block a user