0
0
Fork 0
wireless-proxy-esp32/project_components/wt_system/wt_system_api_json.c

53 lines
1016 B
C

/*
* SPDX-FileCopyrightText: 2024 kerms <kerms@niazo.org>
*
* SPDX-License-Identifier: Apache-2.0
*/
#include "wt_system_api.h"
#include "wt_system.h"
#include "api_json_module.h"
#include "wt_system_json_utils.h"
static int sys_api_json_get_fm_info(api_json_req_t *req)
{
wt_fm_info_t info;
wt_system_get_fm_info(&info);
req->out = wt_sys_json_ser_fm_info(&info);
return API_JSON_OK;
}
static int on_json_req(uint16_t cmd, api_json_req_t *req, api_json_module_async_t *async)
{
wt_system_cmd_t ota_cmd = cmd;
switch (ota_cmd) {
default:
break;
case WT_SYS_GET_FM_INFO:
return sys_api_json_get_fm_info(req);
case WT_SYS_REBOOT:
wt_system_reboot();
return API_JSON_OK;
case WT_SYS_DO_CRASH: {
int *ptr = NULL;
*ptr = 66;
break;
}
}
return API_JSON_UNSUPPORTED_CMD;
}
/* ****
* register module
* */
static int wt_sys_json_init(api_json_module_cfg_t *cfg)
{
cfg->on_req = on_json_req;
cfg->module_id = SYSTEM_MODULE_ID;
return 0;
}
API_JSON_MODULE_REGISTER(wt_sys_json_init)