/* * This Source Code Form is subject to the terms of the Mozilla Public License, * v. 2.0. If a copy of the MPL was not distributed with this file, You can * obtain one at https://mozilla.org/MPL/2.0/. */ #include #include #include #include #include "settings.h" LOG_MODULE_DECLARE(settings); int init_settings(void) { int ret = settings_subsys_init(); if (ret < 0) { LOG_ERR("Subsystem init failed (%d)", ret); return ret; } LOG_INF("Subsystem initialized"); ret = settings_load(); if (ret < 0) { LOG_ERR("Failed to load settings (%d)", ret); return ret; } LOG_INF("Loaded settings"); return 0; } SYS_INIT(init_settings, APPLICATION, 50); static const struct json_obj_descr settings_syslog_target_descr[] = { JSON_OBJ_DESCR_PRIM(struct settings_syslog_target, ip, JSON_TOK_NUMBER), }; static const struct json_obj_descr settings_syslog_descr[] = { JSON_OBJ_DESCR_OBJECT(struct settings_syslog, target, settings_syslog_target_descr), }; static const struct json_obj_descr settings_descr[] = { JSON_OBJ_DESCR_OBJECT(struct settings, syslog, settings_syslog_descr), }; int settings_to_json(void *buffer, size_t len) { struct settings settings = {0,}; // int ret = settings_runtime_get("syslog/target/ip", // settings.syslog.target.ip, // sizeof(settings.syslog.target.ip)); // if (ret < 0) { // LOG_ERR("Failed to get runtime setting syslog/target/ip (%d)", ret); // return ret; // } settings.syslog.target.ip = 42; int ret = json_obj_encode_buf( settings_descr, ARRAY_SIZE(settings_descr), &settings, buffer, len ); if (ret < 0) { LOG_ERR("Failed to serialize settings as JSON"); return ret; } return 0; }