From 551523f315c47cba75cb9c12e65908fa77e19ef6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=EC=A0=95=EC=A4=80=EC=8B=9D/Things=20Platform=20Lab=28S/W?= =?utf8?q?=EC=84=BC=ED=84=B0=29/Engineer/=EC=82=BC=EC=84=B1=EC=A0=84?= =?utf8?q?=EC=9E=90?= Date: Sun, 1 Oct 2017 14:50:09 +0900 Subject: [PATCH] st_things : add logic of parsing manufacturerName from JSON - Changed the pre-defined value to use JSON value --- .../src/common/framework/inc/things_data_manager.h | 6 +++++ .../common/framework/inc/things_server_builder.h | 2 +- .../src/common/framework/things_data_manager.c | 23 ++++++++++++++----- .../src/common/framework/things_server_builder.c | 8 +++---- .../things_stack/src/common/inc/things_def.h | 26 ---------------------- 5 files changed, 28 insertions(+), 37 deletions(-) diff --git a/framework/src/st_things/things_stack/src/common/framework/inc/things_data_manager.h b/framework/src/st_things/things_stack/src/common/framework/inc/things_data_manager.h index 4f93daa..7b54a8e 100644 --- a/framework/src/st_things/things_stack/src/common/framework/inc/things_data_manager.h +++ b/framework/src/st_things/things_stack/src/common/framework/inc/things_data_manager.h @@ -36,6 +36,9 @@ #define MAX_DEVICE_DESCRIPTION_LENGTH (255) #define MAX_DEVICE_CAPABILTY_CNT (50) #define MAX_DEVICE_MODEL_ID_LENGTH (64) +#define MAX_DEVICE_MANUFACTURER_NAME_LENGTH (255) +#define MAX_DEVICE_MANUFACTURER_URL_LENGTH (255) +#define MAX_DEVICE_MANUFACTURER_DATE_LENGTH (32) #define MAX_FILE_ACCESS_CNT (10) #define MAX_URI_LENGTH_OCF (128) #define MAX_PROPERTY_CNT (20) @@ -64,6 +67,9 @@ typedef struct st_device_s { int no; char type[MAX_DEVICE_TYPE_LENGTH]; char name[MAX_DEVICE_NAME_LENGTH]; + char manufacturer_name[MAX_DEVICE_MANUFACTURER_NAME_LENGTH]; + char manufacturer_url[MAX_DEVICE_MANUFACTURER_URL_LENGTH]; + char manufacturing_date[MAX_DEVICE_MANUFACTURER_DATE_LENGTH]; char model_num[MAX_DEVICE_MODEL_ID_LENGTH]; char ver_p[MAX_DEVICE_VER_P]; // mnpv char ver_os[MAX_DEVICE_VER_OS]; // mnhw diff --git a/framework/src/st_things/things_stack/src/common/framework/inc/things_server_builder.h b/framework/src/st_things/things_stack/src/common/framework/inc/things_server_builder.h index 04c3186..290793d 100644 --- a/framework/src/st_things/things_stack/src/common/framework/inc/things_server_builder.h +++ b/framework/src/st_things/things_stack/src/common/framework/inc/things_server_builder.h @@ -34,7 +34,7 @@ typedef struct things_server_builder_s { void (*init_module)(struct things_server_builder_s *, request_handler_cb); void (*deinit_module)(struct things_server_builder_s *); void (*set_device_info)(struct things_server_builder_s *, char *, char *); - void (*set_platform_info)(struct things_server_builder_s *, char *, char *, char *, char *, char *, char *); + void (*set_platform_info)(struct things_server_builder_s *, char *, char *, char *, char *, char *, char *, char *, char *); struct things_resource_s *(*create_resource)(struct things_server_builder_s *, char *, char *, char *, int, int, int); struct things_resource_s *(*create_collection_resource)(struct things_server_builder_s *, char *, char *, char *); struct things_resource_s *(*get_resource)(struct things_server_builder_s *, const char *); diff --git a/framework/src/st_things/things_stack/src/common/framework/things_data_manager.c b/framework/src/st_things/things_stack/src/common/framework/things_data_manager.c index 6293cff..5dc7b4f 100644 --- a/framework/src/st_things/things_stack/src/common/framework/things_data_manager.c +++ b/framework/src/st_things/things_stack/src/common/framework/things_data_manager.c @@ -65,7 +65,7 @@ #define KEY_DEVICE_SPECIFICATION_DEVICE_DATAMODELVERSION "dataModelVersion" #define KEY_DEVICE_SPECIFICATION_PLATFORM "platform" #define KEY_DEVICE_SPECIFICATION_PLATFORM_MANUFACTURERNAME "manufacturerName" -#define KEY_DEVICE_SPECIFICATION_PLATFORM_MANUFACTURERURI "manufacturerUrl" +#define KEY_DEVICE_SPECIFICATION_PLATFORM_MANUFACTURERURL "manufacturerUrl" #define KEY_DEVICE_SPECIFICATION_PLATFORM_MANUFACTURINGDATE "manufacturingDate" #define KEY_DEVICE_SPECIFICATION_PLATFORM_MODELNUMBER "modelNumber" #define KEY_DEVICE_SPECIFICATION_PLATFORM_PLATFORMVERSION "platformVersion" @@ -864,7 +864,7 @@ static int parse_things_info_json(const char *filename) cJSON *spec_platform = cJSON_GetObjectItem(specification, KEY_DEVICE_SPECIFICATION_PLATFORM); if (NULL != spec_platform) { cJSON *manufacturer_name = cJSON_GetObjectItem(spec_platform, KEY_DEVICE_SPECIFICATION_PLATFORM_MANUFACTURERNAME); - cJSON *manufacturer_uri = cJSON_GetObjectItem(spec_platform, KEY_DEVICE_SPECIFICATION_PLATFORM_MANUFACTURERURI); + cJSON *manufacturer_url = cJSON_GetObjectItem(spec_platform, KEY_DEVICE_SPECIFICATION_PLATFORM_MANUFACTURERURL); cJSON *manufacturing_date = cJSON_GetObjectItem(spec_platform, KEY_DEVICE_SPECIFICATION_PLATFORM_MANUFACTURINGDATE); cJSON *model_number = cJSON_GetObjectItem(spec_platform, KEY_DEVICE_SPECIFICATION_PLATFORM_MODELNUMBER); cJSON *platform_version = cJSON_GetObjectItem(spec_platform, KEY_DEVICE_SPECIFICATION_PLATFORM_PLATFORMVERSION); @@ -873,6 +873,15 @@ static int parse_things_info_json(const char *filename) cJSON *firmware_version = cJSON_GetObjectItem(spec_platform, KEY_DEVICE_SPECIFICATION_PLATFORM_FIRMWAREVERSION); cJSON *vendor_id = cJSON_GetObjectItem(spec_platform, KEY_DEVICE_SPECIFICATION_PLATFORM_VENDORID); + if (NULL != manufacturer_name) { + memcpy(node->manufacturer_name, manufacturer_name->valuestring, strlen(manufacturer_name->valuestring) + 1); + } + if (NULL != manufacturer_url) { + memcpy(node->manufacturer_url, manufacturer_url->valuestring, strlen(manufacturer_url->valuestring) + 1); + } + if (NULL != manufacturing_date) { + memcpy(node->manufacturing_date, manufacturing_date->valuestring, strlen(manufacturing_date->valuestring) + 1); + } if (NULL != model_number) { memcpy(node->model_num, model_number->valuestring, strlen(model_number->valuestring) + 1); } @@ -1643,7 +1652,7 @@ static things_resource_s *register_platform_resource(things_server_builder_s *p_ ret->rep = things_create_representation_inst(NULL); if (ret->rep) { - THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Manufacturer :%s", MANUFACTURER_NAME); + THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Manufacturer :%s", device->manufacturer_name); THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Model Name :%s", device->model_num); THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Ver. Plaform :%s", device->ver_p); THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Ver. OS :%s", device->ver_os); @@ -1653,7 +1662,7 @@ static things_resource_s *register_platform_resource(things_server_builder_s *p_ ret->rep->things_set_value(ret->rep, OC_RSRVD_PLATFORM_ID, device->device_id); - ret->rep->things_set_value(ret->rep, OC_RSRVD_MFG_NAME, MANUFACTURER_NAME); + ret->rep->things_set_value(ret->rep, OC_RSRVD_MFG_NAME, device->manufacturer_name); ret->rep->things_set_value(ret->rep, OC_RSRVD_MODEL_NUM, device->model_num); @@ -1665,7 +1674,7 @@ static things_resource_s *register_platform_resource(things_server_builder_s *p_ ret->rep->things_set_value(ret->rep, OC_RSRVD_FIRMWARE_VERSION, device->ver_fw); - ret->rep->things_set_value(ret->rep, OC_RSRVD_MFG_URL, MANUFACTURER_URL); + ret->rep->things_set_value(ret->rep, OC_RSRVD_MFG_URL, device->manufacturer_url); ret->rep->things_set_value(ret->rep, OC_RSRVD_VID, device->vender_id); } else { @@ -1884,7 +1893,9 @@ int dm_register_resource(things_server_builder_s *p_builder) device->ver_os, // gOSVersion, device->ver_hw, // gHWVersions, device->ver_fw, // gFWVersions, - device->vender_id); // gVenderId); + device->vender_id, // gVenderId + device->manufacturer_name, // manufacturer_name + device->manufacturer_url); // manufacturer_url } else { if (device->is_physical == 1) { THINGS_LOG_V(THINGS_INFO, TAG, "It's Physically Separated Device : %s", device->device_id); diff --git a/framework/src/st_things/things_stack/src/common/framework/things_server_builder.c b/framework/src/st_things/things_stack/src/common/framework/things_server_builder.c index 0174f68..06bf16e 100644 --- a/framework/src/st_things/things_stack/src/common/framework/things_server_builder.c +++ b/framework/src/st_things/things_stack/src/common/framework/things_server_builder.c @@ -384,7 +384,7 @@ void set_device_info(things_server_builder_s *builder, char *device_name, char * THINGS_LOG_D(THINGS_DEBUG, TAG, THINGS_FUNC_EXIT); } -void set_platform_info(things_server_builder_s *builder, char *model_num, char *pver, char *osver, char *hwver, char *fwver, char *venderid) +void set_platform_info(things_server_builder_s *builder, char *model_num, char *pver, char *osver, char *hwver, char *fwver, char *venderid, char *mnmn, char *mn_url) { THINGS_LOG_D(THINGS_DEBUG, TAG, THINGS_FUNC_ENTRY); @@ -393,7 +393,7 @@ void set_platform_info(things_server_builder_s *builder, char *model_num, char * return; } - THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Manufacturer :%s", MANUFACTURER_NAME); + THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Manufacturer :%s", mnmn); THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Model Name :%s", model_num); THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Ver. Plaform :%s", pver); THINGS_LOG_D(THINGS_DEBUG, TAG, "[/oic/p] Ver. OS :%s", osver); @@ -404,14 +404,14 @@ void set_platform_info(things_server_builder_s *builder, char *model_num, char * OCPlatformInfo platform_info; platform_info.platformID = (char *)OCGetServerInstanceIDString(); - platform_info.manufacturerName = MANUFACTURER_NAME; + platform_info.manufacturerName = mnmn; platform_info.modelNumber = model_num; platform_info.platformVersion = pver; platform_info.operatingSystemVersion = osver; platform_info.hardwareVersion = hwver; platform_info.firmwareVersion = fwver; - platform_info.manufacturerUrl = MANUFACTURER_URL; + platform_info.manufacturerUrl = mn_url; platform_info.dateOfManufacture = NULL; platform_info.supportUrl = NULL; platform_info.systemTime = NULL; diff --git a/framework/src/st_things/things_stack/src/common/inc/things_def.h b/framework/src/st_things/things_stack/src/common/inc/things_def.h index 33f5a43..65f71ae 100644 --- a/framework/src/st_things/things_stack/src/common/inc/things_def.h +++ b/framework/src/st_things/things_stack/src/common/inc/things_def.h @@ -27,9 +27,6 @@ #define OIC_STACK_FIRMWARE_VERSION "OIC_0.9.1.D.17.03.31_1_30dbca2" -#define MANUFACTURER_NAME "Samsung Electronics" -#define MANUFACTURER_URL "http://www.samsung.com" - /* Resource Types */ #define OIC_INTERFACE_BASELINE "oic.if.baseline" #define OIC_INTERFACE_LINKEDLIST "oic.if.ll" @@ -45,33 +42,10 @@ #define OIC_RTYPE_TEMPERATURE "oic.r.temperature" #define OIC_RTYPE_LIGHT_DIMMING "oic.r.light.dimming" -#define SEC_RTYPE_ALARM "x.com.samsung.da.alarms" #define SEC_RTYPE_THINGS_DEVICE "x.com.samsung.devcol" #define SEC_RTYPE_TEMPERATURE "x.com.samsung.da.temperatures" -#define SEC_RTYPE_BIXBY "x.com.samsung.bixby" -#define SEC_RTYPE_FILE_LIST "x.com.samsung.file.list" -#define SEC_RTYPE_FILE_TRANSFER "x.com.samsung.file.transfer" -#define SEC_RTYPE_CONTENTS_PROVIDER "x.com.samsung.contents.provider" -#define SEC_RTYPE_CONTENTS_RENDERER "x.com.samsung.contents.renderer" -#define SEC_RTYPE_DISHWASHER "x.com.samsung.da.dishwasher" #define SEC_RTYPE_PROV_INFO "x.com.samsung.provisioninginfo" -/* Atrribute Keys */ -#define SEC_ATTRIBUTE_LENGTH "x.com.samsung.da.length" -#define SEC_ATTRIBUTE_TYPE "x.com.samsung.da.type" -#define SEC_ATTRIBUTE_ID "x.com.samsung.da.id" -#define SEC_ATTRIBUTE_NUMBER "x.com.samsung.da.number" -#define SEC_ATTRIBUTE_DESCRIPTION "x.com.samsung.da.description" - -#define SEC_ATTRIBUTE_THINGS_NAME "x.com.samsung.da.name" -#define SEC_ATTRIBUTE_MODEL_NUM "x.com.samsung.da.model_num" -#define SEC_ATTRIBUTE_DESCRIPTION "x.com.samsung.da.description" -#define SEC_ATTRIBUTE_SERIAL_NUM "x.com.samsung.da.serialNum" -#define SEC_ATTRIBUTE_VERSION_ID "x.com.samsung.da.versionId" -#define SEC_ATTRIBUTE_APPROVED_STATE "x.com.samsung.da.approvedState" -#define SEC_ATTRIBUTE_VERSION_AVAILABLE "x.com.samsung.da.newVersionAvailable" -#define SEC_ATTRIBUTE_ITEMS "x.com.samsung.da.items" - // Common Attribute Keys #define SEC_ATTRIBUTE_COMMON_ITEMS "x.com.samsung.items" #define SEC_ATTRIBUTE_COMMON_ID "x.com.samsung.id" -- 2.7.4