Files
zTC1/mico-os/MiCO/system/config_server/config_server_menu.c
2025-03-11 15:54:45 +08:00

139 lines
4.2 KiB
C

/**
******************************************************************************
* @file config_server_menu.c
* @author William Xu
* @version V1.0.0
* @date 05-May-2014
* @brief This file provide function for creating configuration menu that can
* be displayed on EasyLink APP on iOS or Android.
******************************************************************************
* UNPUBLISHED PROPRIETARY SOURCE CODE
* Copyright (c) 2016 MXCHIP Inc.
*
* The contents of this file may not be disclosed to third parties, copied or
* duplicated in any form, in whole or in part, without the prior written
* permission of MXCHIP Corporation.
******************************************************************************
*/
#include "mico.h"
#include "platform_config.h"
#include "json_c/json.h"
OSStatus config_server_create_sector(json_object* sectors, char* const name, json_object *menus)
{
OSStatus err;
json_object *object;
err = kNoErr;
object = json_object_new_object();
require_action(object, exit, err = kNoMemoryErr);
json_object_object_add(object, "N", json_object_new_string(name));
json_object_object_add(object, "C", menus);
json_object_array_add(sectors, object);
exit:
return err;
}
OSStatus config_server_create_string_cell(json_object* menus, char* const name, char* const content, char* const privilege, json_object* secectionArray)
{
OSStatus err;
json_object *object;
err = kNoErr;
object = json_object_new_object();
require_action(object, exit, err = kNoMemoryErr);
json_object_object_add(object, "N", json_object_new_string(name));
json_object_object_add(object, "C", json_object_new_string(content));
json_object_object_add(object, "P", json_object_new_string(privilege));
if(secectionArray)
json_object_object_add(object, "S", secectionArray);
json_object_array_add(menus, object);
exit:
return err;
}
OSStatus config_server_create_number_cell(json_object* menus, char* const name, int content, char* const privilege, json_object* secectionArray)
{
OSStatus err;
json_object *object;
err = kNoErr;
object = json_object_new_object();
require_action(object, exit, err = kNoMemoryErr);
json_object_object_add(object, "N", json_object_new_string(name));
json_object_object_add(object, "C", json_object_new_int(content));
json_object_object_add(object, "P", json_object_new_string(privilege));
if(secectionArray)
json_object_object_add(object, "S", secectionArray);
json_object_array_add(menus, object);
exit:
return err;
}
OSStatus config_server_create_float_cell(json_object* menus, char* const name, float content, char* const privilege, json_object* secectionArray)
{
OSStatus err;
json_object *object;
err = kNoErr;
object = json_object_new_object();
require_action(object, exit, err = kNoMemoryErr);
json_object_object_add(object, "N", json_object_new_string(name));
json_object_object_add(object, "C", json_object_new_double(content));
json_object_object_add(object, "P", json_object_new_string(privilege));
if(secectionArray)
json_object_object_add(object, "S", secectionArray);
json_object_array_add(menus, object);
exit:
return err;
}
OSStatus config_server_create_bool_cell(json_object* menus, char* const name, boolean switcher, char* const privilege)
{
OSStatus err;
json_object *object;
err = kNoErr;
object = json_object_new_object();
require_action(object, exit, err = kNoMemoryErr);
json_object_object_add(object, "N", json_object_new_string(name));
json_object_object_add(object, "C", json_object_new_boolean(switcher));
json_object_object_add(object, "P", json_object_new_string(privilege));
json_object_array_add(menus, object);
exit:
return err;
}
OSStatus config_server_create_sub_menu_cell(json_object* menus, char* const name, json_object* lowerSectors)
{
OSStatus err;
json_object *object;
err = kNoErr;
object = json_object_new_object();
require_action(object, exit, err = kNoMemoryErr);
json_object_object_add(object, "N", json_object_new_string(name));
json_object_object_add(object, "C", lowerSectors);
json_object_array_add(menus, object);
exit:
return err;
}