Commit 0efc40de authored by chen.weican's avatar chen.weican

【修改内容】1,修改面板系列属性上报采用逐一上报方式;2,修改内存泄漏点

【提交人】陈伟灿
parent 2d0627b1
...@@ -14,6 +14,10 @@ ...@@ -14,6 +14,10 @@
#define AUTO_CONN 1 #define AUTO_CONN 1
#define CONNECT_TIMEOUT 3 #define CONNECT_TIMEOUT 3
typedef enum {
RETURN_FAIL = -1,
RETURN_SUCCESS = 0,
} kk_kcloud_error_code_t;
#endif #endif
......
...@@ -28,7 +28,89 @@ ...@@ -28,7 +28,89 @@
const char DM_MSG_TO_MIDDWARE[] = "{\"msgtype\":\"%s\",\"productCode\":\"%s\",\"deviceCode\":\"%s\"}"; const char DM_MSG_TO_MIDDWARE[] = "{\"msgtype\":\"%s\",\"productCode\":\"%s\",\"deviceCode\":\"%s\"}";
#define KK_TOPIC_SERVICE_DELIMITER '/' #define KK_TOPIC_SERVICE_DELIMITER '/'
#define KK_POWER_SWITCH_1 "PowerSwitch_1"
#define KK_POWER_SWITCH_2 "PowerSwitch_2"
#define KK_POWER_SWITCH_3 "PowerSwitch_3"
static char *s_split_product[] = {
"85", //三路面板
"3002", //双路面板
"3003" //三路面板
};
static int kk_check_need_split(cJSON * info)
{
cJSON *productCode = NULL;
int i = 0;
int num = sizeof(s_split_product)/sizeof(char*);
if(info == NULL){
return 0;
}
productCode = cJSON_GetObjectItem(info, MSG_PRODUCT_CODE_STR);
if(productCode == NULL){
return 0;
}
for(i = 0; i < num; i++){
if(strncmp(s_split_product[i],productCode->valuestring,strlen(productCode->valuestring)) == 0){
return 1;
}
}
return 0;
}
static int kk_split_send_data(cJSON *pData,const char* topic)
{
cJSON *pParam = NULL;
cJSON *pParam_new = NULL;
cJSON *powerswitch1 = NULL;
cJSON *powerswitch2 = NULL;
cJSON *powerswitch3 = NULL;
if(pData == NULL){
return RETURN_FAIL;
}
pParam = cJSON_GetObjectItem(pData, MSG_PARAMS_STR);
if(pParam == NULL){
return RETURN_FAIL;
}
char* param_tmp = cJSON_Print(pParam);
powerswitch1 = cJSON_GetObjectItem(pParam, KK_POWER_SWITCH_1);
if(powerswitch1 != NULL){
cJSON_DeleteItemFromObject(pData,MSG_PARAMS_STR);
cJSON *pParam_new = cJSON_CreateObject();
cJSON_AddNumberToObject(pParam_new, KK_POWER_SWITCH_1, powerswitch1->valueint);
cJSON_AddItemToObject(pData,MSG_PARAMS_STR,pParam_new);
char* out=cJSON_Print(pData);
KK_MQTT_SendMsg(topic,(const char*)out);
free(out);
}
pParam = cJSON_Parse(param_tmp);
powerswitch2 = cJSON_GetObjectItem(pParam, KK_POWER_SWITCH_2);
if(powerswitch2 != NULL){
cJSON_DeleteItemFromObject(pData,MSG_PARAMS_STR);
pParam_new = cJSON_CreateObject();
cJSON_AddNumberToObject(pParam_new, KK_POWER_SWITCH_2, powerswitch2->valueint);
cJSON_AddItemToObject(pData,MSG_PARAMS_STR,pParam_new);
char* out=cJSON_Print(pData);
KK_MQTT_SendMsg(topic,(const char*)out);
free(out);
}
powerswitch3 = cJSON_GetObjectItem(pParam, KK_POWER_SWITCH_3);
if(powerswitch3 != NULL){
cJSON_DeleteItemFromObject(pData,MSG_PARAMS_STR);
pParam_new = cJSON_CreateObject();
cJSON_AddNumberToObject(pParam_new, KK_POWER_SWITCH_3, powerswitch3->valueint);
cJSON_AddItemToObject(pData,MSG_PARAMS_STR,pParam_new);
char* out=cJSON_Print(pData);
KK_MQTT_SendMsg(topic,(const char*)out);
free(out);
}
free(param_tmp);
return RETURN_SUCCESS;
}
int _kk_sendto_cloud(cJSON *root) int _kk_sendto_cloud(cJSON *root)
{ {
cJSON *info,*pData; cJSON *info,*pData;
...@@ -37,40 +119,44 @@ int _kk_sendto_cloud(cJSON *root) ...@@ -37,40 +119,44 @@ int _kk_sendto_cloud(cJSON *root)
cJSON *msgTypeStr = NULL; cJSON *msgTypeStr = NULL;
info = cJSON_GetObjectItem(root, MSG_INFO_STR); info = cJSON_GetObjectItem(root, MSG_INFO_STR);
if(info == NULL){ if(info == NULL){
return -1; return RETURN_FAIL;
} }
msgTypeStr = cJSON_GetObjectItem(info, MSG_TYPE_STR); msgTypeStr = cJSON_GetObjectItem(info, MSG_TYPE_STR);
if(msgTypeStr == NULL){ if(msgTypeStr == NULL){
return -1; return RETURN_FAIL;
} }
topic = KK_Make_Topic(info); topic = KK_Make_Topic(info);
if(topic == NULL){ if(topic == NULL){
return -1; return RETURN_FAIL;
} }
pData = cJSON_GetObjectItem(root, MSG_PAYLOAD_STR); pData = cJSON_GetObjectItem(root, MSG_PAYLOAD_STR);
if(pData == NULL){ if(pData == NULL){
free(topic); free(topic);
return -1; return RETURN_FAIL;
} }
//If topo delete,need UnSubscribe the topic //If topo delete,need UnSubscribe the topic
if(strstr(msgTypeStr->valuestring,KK_FILTER_DELETE_TOPIC) != NULL){ if(strstr(msgTypeStr->valuestring,KK_FILTER_DELETE_TOPIC) != NULL){
KK_Subdev_UnSubscribe(pData); KK_Subdev_UnSubscribe(pData);
free(topic); free(topic);
return 0; return RETURN_SUCCESS;
} }
else if(strstr(msgTypeStr->valuestring,KK_CLOUDSTATE_MSG) != NULL){ else if(strstr(msgTypeStr->valuestring,KK_CLOUDSTATE_MSG) != NULL){
KK_Send_CloudState(kk_get_cloud_status()); KK_Send_CloudState(kk_get_cloud_status());
free(topic); free(topic);
return 0; return RETURN_SUCCESS;
} }
if(kk_check_need_split(info)){
kk_split_send_data(pData,topic);
}
else{
char* out=cJSON_Print(pData); char* out=cJSON_Print(pData);
INFO_PRINT("[%s][%d] payload:%s\n",__FUNCTION__,__LINE__,out);
KK_MQTT_SendMsg(topic,(const char*)out); KK_MQTT_SendMsg(topic,(const char*)out);
free(topic);
free(out); free(out);
return 0; }
free(topic);
return RETURN_SUCCESS;
} }
...@@ -137,17 +223,17 @@ static int _kk_topic_parse_msgType(_IN_ char *topic, _IN_ int start_deli,_OU_ ch ...@@ -137,17 +223,17 @@ static int _kk_topic_parse_msgType(_IN_ char *topic, _IN_ int start_deli,_OU_ ch
char *msgTypeStr_tmp = NULL; char *msgTypeStr_tmp = NULL;
if (topic == NULL) { if (topic == NULL) {
return -1; return RETURN_FAIL;
} }
res = kk_utils_memtok(topic, strlen(topic), KK_TOPIC_SERVICE_DELIMITER, start_deli, &start); res = kk_utils_memtok(topic, strlen(topic), KK_TOPIC_SERVICE_DELIMITER, start_deli, &start);
if (res != 0) { if (res != 0) {
return -1; return RETURN_FAIL;
} }
len = strlen(topic) - start + 1; len = strlen(topic) - start + 1;
msgTypeStr_tmp = (char*)malloc(len+1); msgTypeStr_tmp = (char*)malloc(len+1);
if(msgTypeStr_tmp == NULL){ if(msgTypeStr_tmp == NULL){
ERROR_PRINT("[%s][%d]malloc fail!!!\n",__FUNCTION__,__LINE__); ERROR_PRINT("[%s][%d]malloc fail!!!\n",__FUNCTION__,__LINE__);
return -1; return RETURN_FAIL;
} }
memcpy(msgTypeStr_tmp, topic + start, len); memcpy(msgTypeStr_tmp, topic + start, len);
*msgTypeStr = msgTypeStr_tmp; *msgTypeStr = msgTypeStr_tmp;
...@@ -157,7 +243,7 @@ static int _kk_topic_parse_msgType(_IN_ char *topic, _IN_ int start_deli,_OU_ ch ...@@ -157,7 +243,7 @@ static int _kk_topic_parse_msgType(_IN_ char *topic, _IN_ int start_deli,_OU_ ch
/* dm_log_debug("URI Product Key: %.*s, Device Name: %.*s", slice - start - 1, uri + start + 1, end - slice - 1, /* dm_log_debug("URI Product Key: %.*s, Device Name: %.*s", slice - start - 1, uri + start + 1, end - slice - 1,
uri + slice + 1); */ uri + slice + 1); */
return 0; return RETURN_SUCCESS;
} }
static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli, static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli,
...@@ -166,26 +252,26 @@ static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli, ...@@ -166,26 +252,26 @@ static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli,
int res = 0, start = 0, end = 0, slice = 0; int res = 0, start = 0, end = 0, slice = 0;
if (topic == NULL || deviceCode == NULL) { if (topic == NULL || deviceCode == NULL) {
return -1; return RETURN_FAIL;
} }
res = kk_utils_memtok(topic, strlen(topic), KK_TOPIC_SERVICE_DELIMITER, start_deli, &start); res = kk_utils_memtok(topic, strlen(topic), KK_TOPIC_SERVICE_DELIMITER, start_deli, &start);
if (res != 0) { if (res != 0) {
return -1; return RETURN_FAIL;
} }
res = kk_utils_memtok(topic, strlen(topic), KK_TOPIC_SERVICE_DELIMITER, start_deli + 1, &slice); res = kk_utils_memtok(topic, strlen(topic), KK_TOPIC_SERVICE_DELIMITER, start_deli + 1, &slice);
if (res != 0) { if (res != 0) {
return -1; return RETURN_FAIL;
} }
res = kk_utils_memtok(topic, strlen(topic), KK_TOPIC_SERVICE_DELIMITER, start_deli + 2, &end); res = kk_utils_memtok(topic, strlen(topic), KK_TOPIC_SERVICE_DELIMITER, start_deli + 2, &end);
if (res != 0) { if (res != 0) {
return -1; return RETURN_FAIL;
} }
memcpy(productCode, topic + start + 1, slice - start - 1); memcpy(productCode, topic + start + 1, slice - start - 1);
memcpy(deviceCode, topic + slice + 1, end - slice - 1); memcpy(deviceCode, topic + slice + 1, end - slice - 1);
return 0; return RETURN_SUCCESS;
} }
static char * _kk_data_create(const char *topic,const char *data) static char * _kk_data_create(const char *topic,const char *data)
...@@ -239,7 +325,7 @@ int KK_Send_CloudState(int state) ...@@ -239,7 +325,7 @@ int KK_Send_CloudState(int state)
infoStr = malloc(infoStr_len); infoStr = malloc(infoStr_len);
if(infoStr == NULL){ if(infoStr == NULL){
ERROR_PRINT("[%s][%d]\n",__FUNCTION__,__LINE__); ERROR_PRINT("[%s][%d]\n",__FUNCTION__,__LINE__);
return -1; return RETURN_FAIL;
} }
memset(infoStr,0x0,infoStr_len); memset(infoStr,0x0,infoStr_len);
snprintf(infoStr,infoStr_len,DM_MSG_TO_MIDDWARE,KK_CLOUDSTATE_MSG_REPLY,"",""); snprintf(infoStr,infoStr_len,DM_MSG_TO_MIDDWARE,KK_CLOUDSTATE_MSG_REPLY,"","");
...@@ -248,7 +334,7 @@ int KK_Send_CloudState(int state) ...@@ -248,7 +334,7 @@ int KK_Send_CloudState(int state)
payloadStr = malloc(payloadStr_len); payloadStr = malloc(payloadStr_len);
if(payloadStr == NULL){ if(payloadStr == NULL){
ERROR_PRINT("[%s][%d]\n",__FUNCTION__,__LINE__); ERROR_PRINT("[%s][%d]\n",__FUNCTION__,__LINE__);
return -1; return RETURN_FAIL;
} }
memset(payloadStr,0x0,payloadStr_len); memset(payloadStr,0x0,payloadStr_len);
snprintf(payloadStr,payloadStr_len,DM_MSG_CLOUDSTATE,state); snprintf(payloadStr,payloadStr_len,DM_MSG_CLOUDSTATE,state);
...@@ -265,7 +351,7 @@ int KK_Send_CloudState(int state) ...@@ -265,7 +351,7 @@ int KK_Send_CloudState(int state)
free(infoStr); free(infoStr);
INFO_PRINT("[%s][%d]%s\n",__FUNCTION__,__LINE__,out); INFO_PRINT("[%s][%d]%s\n",__FUNCTION__,__LINE__,out);
free(out); free(out);
return 0; return RETURN_SUCCESS;
} }
void KK_Sendto_DevData(const char *topic,const char *data) void KK_Sendto_DevData(const char *topic,const char *data)
{ {
......
...@@ -264,7 +264,7 @@ int KK_MQTT_SendMsg(char *topicName,const char *payload) ...@@ -264,7 +264,7 @@ int KK_MQTT_SendMsg(char *topicName,const char *payload)
pubmsg.qos = QOS; pubmsg.qos = QOS;
pubmsg.retained = 0; pubmsg.retained = 0;
INFO_PRINT("mqtt send payload len:%d.\n",pubmsg.payloadlen); INFO_PRINT("mqtt send payload :%s.\n",payload);
if ((rc = MQTTAsync_sendMessage(s_Client, topicName, &pubmsg, &opts)) != MQTTASYNC_SUCCESS) if ((rc = MQTTAsync_sendMessage(s_Client, topicName, &pubmsg, &opts)) != MQTTASYNC_SUCCESS)
{ {
......
...@@ -24,7 +24,7 @@ ...@@ -24,7 +24,7 @@
#define FIRMWARE_VERSION_MAXLEN (32 + 1) #define FIRMWARE_VERSION_MAXLEN (32 + 1)
#define VERSION_MAXLEN (32 + 1) #define VERSION_MAXLEN (32 + 1)
#define HAL_CID_LEN (64 + 1) #define HAL_CID_LEN (64 + 1)
#define NETWORK_ADDR_LEN (16) /* IPÍøÂçµØÖ·µÄ³¤¶È */ #define NETWORK_ADDR_LEN (16+1) /* IPÍøÂçµØÖ·µÄ³¤¶È */
#define MAC_ADDR_LEN (17+1) #define MAC_ADDR_LEN (17+1)
#define SN_ADDR_LEN (32+1) #define SN_ADDR_LEN (32+1)
......
...@@ -311,16 +311,16 @@ int kk_get_wlist_num(void) ...@@ -311,16 +311,16 @@ int kk_get_wlist_num(void)
} }
int kk_getwlist_ByIdx(int idx,kk_wlist_dev_t* wlist_dev) int kk_getwlist_ByIdx(int idx,kk_wlist_dev_t* wlist_dev)
{ {
char *macs = NULL; char macs[DEVICE_MAC_MAXLEN] = {0};
char *PID = NULL; char PID[PRODUCT_CODE_MAXLEN] = {0};
char *DID = NULL; char DID[DEVICE_CODE_MAXLEN] = {0};
char *SN = NULL; char SN[PRODUCT_CODE_MAXLEN] = {0};
char identifier_name[64] = {0}; char identifier_name[64] = {0};
int res = 0; int res = 0;
_kk_wlist_lock(); _kk_wlist_lock();
sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTMAC_IDENTIFIER,idx); sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTMAC_IDENTIFIER,idx);
res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,NULL,&macs); res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,macs,NULL);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
goto fail_return; goto fail_return;
} }
...@@ -328,7 +328,7 @@ int kk_getwlist_ByIdx(int idx,kk_wlist_dev_t* wlist_dev) ...@@ -328,7 +328,7 @@ int kk_getwlist_ByIdx(int idx,kk_wlist_dev_t* wlist_dev)
memset(identifier_name,0x0,sizeof(identifier_name)); memset(identifier_name,0x0,sizeof(identifier_name));
sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTPRODUCTID_IDENTIFIER,idx); sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTPRODUCTID_IDENTIFIER,idx);
res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,NULL,&PID); res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,PID,NULL);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
goto fail_return; goto fail_return;
...@@ -337,7 +337,7 @@ int kk_getwlist_ByIdx(int idx,kk_wlist_dev_t* wlist_dev) ...@@ -337,7 +337,7 @@ int kk_getwlist_ByIdx(int idx,kk_wlist_dev_t* wlist_dev)
memset(identifier_name,0x0,sizeof(identifier_name)); memset(identifier_name,0x0,sizeof(identifier_name));
sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTSN_IDENTIFIER,idx); sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTSN_IDENTIFIER,idx);
res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,NULL,&SN); res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,SN,NULL);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
goto fail_return; goto fail_return;
...@@ -346,7 +346,7 @@ int kk_getwlist_ByIdx(int idx,kk_wlist_dev_t* wlist_dev) ...@@ -346,7 +346,7 @@ int kk_getwlist_ByIdx(int idx,kk_wlist_dev_t* wlist_dev)
memset(identifier_name,0x0,sizeof(identifier_name)); memset(identifier_name,0x0,sizeof(identifier_name));
sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTDEVICEID_IDENTIFIER,idx); sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTDEVICEID_IDENTIFIER,idx);
res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,NULL,&DID); res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,DID,NULL);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
goto fail_return; goto fail_return;
} }
...@@ -364,7 +364,7 @@ int kk_get_wlistIdx_byMac(const char* device_mac) ...@@ -364,7 +364,7 @@ int kk_get_wlistIdx_byMac(const char* device_mac)
{ {
kk_wlist_ctx_t *ctx = _kk_wlist_get_ctx(); kk_wlist_ctx_t *ctx = _kk_wlist_get_ctx();
int res = 0; int res = 0;
char *pmac = NULL; char pmac[DEVICE_MAC_MAXLEN] = {0};
char identifier_name[64] = {0}; char identifier_name[64] = {0};
int idx = 0,findIdx = 0; int idx = 0,findIdx = 0;
if(ctx->isOpened != 1) if(ctx->isOpened != 1)
...@@ -383,7 +383,7 @@ int kk_get_wlistIdx_byMac(const char* device_mac) ...@@ -383,7 +383,7 @@ int kk_get_wlistIdx_byMac(const char* device_mac)
{ {
memset(identifier_name,0x0,sizeof(identifier_name)); memset(identifier_name,0x0,sizeof(identifier_name));
sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTMAC_IDENTIFIER,idx); sprintf(identifier_name,KK_TSL_GATAWAY_WHITELISTMAC_IDENTIFIER,idx);
res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,NULL,&pmac); res = kk_tsl_get_value(kk_tsl_get_event_output_value,0,identifier_name,pmac,NULL);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
continue; continue;
} }
......
...@@ -574,7 +574,7 @@ void *ccu_property_monitor(void *args) ...@@ -574,7 +574,7 @@ void *ccu_property_monitor(void *args)
{ {
mid_ctx_t *mid_ctx = kk_mid_get_ctx(); mid_ctx_t *mid_ctx = kk_mid_get_ctx();
char s_IP[NETWORK_ADDR_LEN]; char s_IP[NETWORK_ADDR_LEN];
char *s_IP_TSL = NULL; char s_IP_TSL[NETWORK_ADDR_LEN] = {0};
int res = 0; int res = 0;
int needReport = 0; int needReport = 0;
int time_second = 60; int time_second = 60;
...@@ -587,7 +587,7 @@ void *ccu_property_monitor(void *args) ...@@ -587,7 +587,7 @@ void *ccu_property_monitor(void *args)
} }
//dm_ota_yield(MID_YIELD_TIMEOUT_MS); //dm_ota_yield(MID_YIELD_TIMEOUT_MS);
HAL_Get_IP(s_IP,NULL); HAL_Get_IP(s_IP,NULL);
res = kk_tsl_get_value(kk_tsl_get_property_value,0,KK_TSL_CCU_WANIP_IDENTIFIER,NULL,&s_IP_TSL); res = kk_tsl_get_value(kk_tsl_get_property_value,0,KK_TSL_CCU_WANIP_IDENTIFIER,s_IP_TSL,NULL);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
ERROR_PRINT("kk_tsl_get_value Failed\n"); ERROR_PRINT("kk_tsl_get_value Failed\n");
} }
...@@ -599,6 +599,7 @@ void *ccu_property_monitor(void *args) ...@@ -599,6 +599,7 @@ void *ccu_property_monitor(void *args)
needReport = 1; needReport = 1;
} }
} }
if(needReport&&(kk_get_cloudstatus() == 1)){ if(needReport&&(kk_get_cloudstatus() == 1)){
needReport = 0; needReport = 0;
kk_tsl_post_property(KK_DM_DEVICE_CCU_DEVICEID,NULL,0); kk_tsl_post_property(KK_DM_DEVICE_CCU_DEVICEID,NULL,0);
......
...@@ -756,7 +756,10 @@ static int _kk_tsl_get_property_value(_IN_ int devid, _IN_ char *key, _IN_ int k ...@@ -756,7 +756,10 @@ static int _kk_tsl_get_property_value(_IN_ int devid, _IN_ char *key, _IN_ int k
*value_str = value_string; *value_str = value_string;
} else { } else {
free(value_string); free(value_string);
value_string = NULL;
} }
} }
} }
break; break;
......
...@@ -1595,50 +1595,5 @@ int kk_tsl_create(_IN_ const char *tsl, _IN_ int tsl_len, _OU_ kk_tsl_t **shadow ...@@ -1595,50 +1595,5 @@ int kk_tsl_create(_IN_ const char *tsl, _IN_ int tsl_len, _OU_ kk_tsl_t **shadow
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
#if 0
int main(int argc, char* argv[])
{
int rc = 0;
int item_index = 0;
int oitem_index = 0;
kk_tsl_t *ktsl = NULL;
kk_tsl_data_t *property_item = NULL;
kk_tsl_event_t *event_item = NULL;
kk_tsl_data_t *output_event_item = NULL;
kk_tsl_data_type_e type;
rc = kk_tsl_create(TSL_STRING,strlen(TSL_STRING),&ktsl);
if(rc == SUCCESS_RETURN)
{
printf("num:%d\n",ktsl->property_number);
for (item_index = 0; item_index < ktsl->property_number; item_index++)
{
property_item = ktsl->properties+ item_index;
printf("identifier:%s\n",property_item->identifier);
printf("type:%d\n",property_item->data_value.type);
}
printf("event num:%d\n",ktsl->event_number);
for (item_index = 0; item_index < ktsl->event_number; item_index++)
{
event_item = ktsl->events+ item_index;
printf("identifier:%s\n",event_item->identifier);
printf("OUTPUT:%d\n",event_item->output_data_number);
for(oitem_index = 0;oitem_index < event_item->output_data_number;oitem_index++)
{
output_event_item = event_item->output_datas + oitem_index;
printf("output identifier:%s\n",output_event_item->identifier);
printf("type:%d\n",output_event_item->data_value.type);
}
}
}
return 0;
}
#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