Commit bddf30be authored by chen.weican's avatar chen.weican

【修改内容】调整根据product type来获取物模型数据,json文件必须用product type命令,如:a1OYuSBt23u.json。

【提交人】陈伟灿
parent d573fc8b
...@@ -144,7 +144,7 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA ...@@ -144,7 +144,7 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
char *tsl_str = NULL; char *tsl_str = NULL;
int idx = 0; int idx = 0;
char name[TSL_PATH_MAXLEN] = {0};
if (product_key == NULL || device_name == NULL || if (product_key == NULL || device_name == NULL ||
strlen(product_key) >= PRODUCT_KEY_MAXLEN || strlen(product_key) >= PRODUCT_KEY_MAXLEN ||
strlen(device_name) >= DEVICE_NAME_MAXLEN) { strlen(device_name) >= DEVICE_NAME_MAXLEN) {
...@@ -163,7 +163,7 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA ...@@ -163,7 +163,7 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
if (devid) { if (devid) {
*devid = node->devid; *devid = node->devid;
} }
return FAIL_RETURN; return TSL_ALREADY_EXIST;
} }
node = malloc(sizeof(dm_mgr_dev_node_t)); node = malloc(sizeof(dm_mgr_dev_node_t));
...@@ -188,9 +188,7 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA ...@@ -188,9 +188,7 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
} }
//node->dev_status = IOTX_DM_DEV_STATUS_AUTHORIZED; //node->dev_status = IOTX_DM_DEV_STATUS_AUTHORIZED;
memset(name,0x0,sizeof(name)); tsl_str = kk_load_json(product_key);
kk_get_tsl_by_productKey(product_key,name);
tsl_str = kk_load_json(name);
if(tsl_str != NULL) if(tsl_str != NULL)
{ {
res = kk_tsl_create(tsl_str,strlen(tsl_str),&node->dev_shadow); res = kk_tsl_create(tsl_str,strlen(tsl_str),&node->dev_shadow);
...@@ -199,7 +197,6 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA ...@@ -199,7 +197,6 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
return FAIL_RETURN; return FAIL_RETURN;
} }
} }
INIT_LIST_HEAD(&node->linked_list); INIT_LIST_HEAD(&node->linked_list);
list_add_tail(&node->linked_list, &ctx->dev_list); list_add_tail(&node->linked_list, &ctx->dev_list);
...@@ -954,10 +951,9 @@ int dm_mgr_subdev_create(_IN_ char product_key[PRODUCT_KEY_MAXLEN], ...@@ -954,10 +951,9 @@ int dm_mgr_subdev_create(_IN_ char product_key[PRODUCT_KEY_MAXLEN],
int res = 0; int res = 0;
res = dm_mgr_device_create(KK_DM_DEVICE_SUBDEV,product_key,device_name,device_secret,device_mac, devid); res = dm_mgr_device_create(KK_DM_DEVICE_SUBDEV,product_key,device_name,device_secret,device_mac, devid);
if (res != SUCCESS_RETURN) { if(TSL_ALREADY_EXIST == res)
printf("subdev open Failed\n"); {
return FAIL_RETURN; printf("SUBDEV ALREADY EXIST!!!\n");
} }
return res; return res;
} }
...@@ -124,7 +124,6 @@ void kk_platMsg_handle(void* data){ ...@@ -124,7 +124,6 @@ void kk_platMsg_handle(void* data){
proCode = cJSON_GetObjectItem(jsonPay, "productCode"); proCode = cJSON_GetObjectItem(jsonPay, "productCode");
printf("productType productCode mac: [%s][%s] [%s] \n",proType->valuestring, proCode->valuestring, mac->valuestring); printf("productType productCode mac: [%s][%s] [%s] \n",proType->valuestring, proCode->valuestring, mac->valuestring);
kk_set_tsl_by_productKey(proType->valuestring,"model.json");
kk_mid_subdev_add(proType->valuestring,proCode->valuestring,"", mac->valuestring); kk_mid_subdev_add(proType->valuestring,proCode->valuestring,"", mac->valuestring);
}else if (method != NULL && mac != NULL){ }else if (method != NULL && mac != NULL){
...@@ -223,7 +222,6 @@ static int kk_set_product_info(void) ...@@ -223,7 +222,6 @@ static int kk_set_product_info(void)
{ {
HAL_SetProduct_Type(PRODUCT_TPYE); HAL_SetProduct_Type(PRODUCT_TPYE);
HAL_SetProduct_Code(PRODUCT_CODE); HAL_SetProduct_Code(PRODUCT_CODE);
kk_set_tsl_by_productKey(PRODUCT_TPYE,"gateway.json");
return 0; return 0;
} }
...@@ -238,10 +236,12 @@ int main(const int argc, const char **argv) ...@@ -238,10 +236,12 @@ int main(const int argc, const char **argv)
kk_set_product_info(); kk_set_product_info();
kk_tsl_api_init(); kk_tsl_api_init();
kk_ipc_init(IPC_MID2APP, mid_cb); kk_ipc_init(IPC_MID2APP, mid_cb);
kk_ipc_init(IPC_MID2PLAT, mid2p_cb); kk_ipc_init(IPC_MID2PLAT, mid2p_cb);
//DB_Init(); //DB_Init();
//test_tcp(); //test_tcp();
/* when Connect to app and platfrom */ /* when Connect to app and platfrom */
...@@ -253,6 +253,7 @@ int main(const int argc, const char **argv) ...@@ -253,6 +253,7 @@ int main(const int argc, const char **argv)
} }
} while (res < 0);*/ } while (res < 0);*/
kk_init_dmproc(); kk_init_dmproc();
kk_subDb_init();
mid_ctx->g_mid_dispatch_thread_running = 1; mid_ctx->g_mid_dispatch_thread_running = 1;
res = pthread_create(&mid_ctx->g_mid_dispatch_thread, NULL, mid_dispatch_yield, NULL); res = pthread_create(&mid_ctx->g_mid_dispatch_thread, NULL, mid_dispatch_yield, NULL);
if (res < 0) { if (res < 0) {
......
...@@ -18,8 +18,6 @@ ...@@ -18,8 +18,6 @@
#define DEVICE_MAC_MAXLEN (16 + 1) #define DEVICE_MAC_MAXLEN (16 + 1)
#define DEVICE_SN_MAXLEN (32 + 1) #define DEVICE_SN_MAXLEN (32 + 1)
#define TSL_PATH_MAXLEN (64 + 1)
#define DM_UTILS_UINT16_STRLEN (5) #define DM_UTILS_UINT16_STRLEN (5)
#define DM_UTILS_UINT32_STRLEN (10) #define DM_UTILS_UINT32_STRLEN (10)
#define DM_UTILS_UINT64_STRLEN (20) #define DM_UTILS_UINT64_STRLEN (20)
...@@ -77,6 +75,7 @@ typedef enum { ...@@ -77,6 +75,7 @@ typedef enum {
} kk_tsl_data_target_e; } kk_tsl_data_target_e;
typedef enum { typedef enum {
TSL_ALREADY_EXIST = -14,
TSL_SERVICE_GET_FAILED = -13, TSL_SERVICE_GET_FAILED = -13,
TSL_SERVICE_SET_FAILED = -12, TSL_SERVICE_SET_FAILED = -12,
TSL_EVENT_GET_FAILED = -11, TSL_EVENT_GET_FAILED = -11,
......
...@@ -3,64 +3,27 @@ ...@@ -3,64 +3,27 @@
#include <stdio.h> #include <stdio.h>
#include "kk_tsl_common.h" #include "kk_tsl_common.h"
typedef struct{ #define TSL_PATH_FILE "/home/tsl/%s.json"
char product_key[PRODUCT_KEY_MAXLEN]; char* kk_load_json(const char *product_type)
char name[TSL_PATH_MAXLEN];
}kk_json_map_t;
kk_json_map_t s_tsl_list[];
int s_tsl_num = 0;
int kk_set_tsl_by_productKey(const char* key,const char* name)
{
if(key == NULL || name == NULL)
{
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
return FAIL_RETURN;
}
if(strlen(key) >= PRODUCT_KEY_MAXLEN || strlen(name) >= TSL_PATH_MAXLEN)
{
printf("[%s][%d]length error!!!\n",__FUNCTION__,__LINE__);
return FAIL_RETURN;
}
memset(s_tsl_list[s_tsl_num].product_key,0x0,sizeof(s_tsl_list[s_tsl_num].product_key));
memset(s_tsl_list[s_tsl_num].name,0x0,sizeof(s_tsl_list[s_tsl_num].name));
memcpy(s_tsl_list[s_tsl_num].product_key,key,strlen(key));
memcpy(s_tsl_list[s_tsl_num].name,name,strlen(name));
s_tsl_num++;
return SUCCESS_RETURN;
}
int kk_get_tsl_by_productKey(const char* key, char* name)
{
int index = 0;
if(key == NULL)
{
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
return FAIL_RETURN;
}
for(index = 0;index < s_tsl_num;index++)
{
if((strlen(key) == strlen(s_tsl_list[index].product_key))&&
(memcmp(s_tsl_list[index].product_key,key,strlen(key)) == 0))
{
memcpy(name,s_tsl_list[index].name,strlen(s_tsl_list[index].name));
return SUCCESS_RETURN;
}
}
printf("[%s][%d]Not exist!!!\n",__FUNCTION__,__LINE__);
return FAIL_RETURN;
}
char* kk_load_json(const char *tslFile)
{ {
FILE *fp; FILE *fp;
char *buf = NULL; char *buf = NULL;
char *tslPath = NULL;
int path_len = 0;
unsigned int filesize; unsigned int filesize;
printf("[%s][%d]tslFile:%s!!!\n",__FUNCTION__,__LINE__,tslFile);
if(!(fp = fopen(tslFile,"a+"))) path_len = strlen(TSL_PATH_FILE)+strlen(product_type)+1;
tslPath = malloc(path_len);
if(tslPath == NULL){
return NULL;
}
memset(tslPath,0x0,path_len);
snprintf(tslPath,path_len,TSL_PATH_FILE,product_type);
printf("\n[%s][%d]tslPath:%s!!!\n",__FUNCTION__,__LINE__,tslPath);
if(!(fp = fopen(tslPath,"a+")))
{ {
printf("can't open the file account.txt\n"); printf("can't open the file account.txt\n");
free(tslPath);
return NULL; return NULL;
} }
fseek(fp, 0L, SEEK_END); fseek(fp, 0L, SEEK_END);
...@@ -70,6 +33,7 @@ char* kk_load_json(const char *tslFile) ...@@ -70,6 +33,7 @@ char* kk_load_json(const char *tslFile)
if(buf == NULL) if(buf == NULL)
{ {
printf("MALLOC FAIL!!!\n"); printf("MALLOC FAIL!!!\n");
free(tslPath);
return NULL; return NULL;
} }
...@@ -77,7 +41,7 @@ char* kk_load_json(const char *tslFile) ...@@ -77,7 +41,7 @@ char* kk_load_json(const char *tslFile)
fseek(fp, 0L, SEEK_SET); fseek(fp, 0L, SEEK_SET);
fread(buf, 1, filesize, fp); fread(buf, 1, filesize, fp);
//printf("%s!!!\n",buf); //printf("%s!!!\n",buf);
//free(buf); free(tslPath);
return buf; return buf;
} }
#ifndef __TSL_DATA_LOAD__ #ifndef __TSL_DATA_LOAD__
#define __TSL_DATA_LOAD__ #define __TSL_DATA_LOAD__
extern char* kk_load_json(const char *tslFile); char* kk_load_json(const char *product_type);
extern int kk_get_tsl_by_productKey(const char* key, char* name);
extern int kk_set_tsl_by_productKey(const char* key,const char* name);
#endif #endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment