Commit 87d2de68 authored by 尹佳钦's avatar 尹佳钦

Merge branch 'master' of http://172.17.3.10:17001/chenweican/k-sdk

# Conflicts:
#	platform/zigbee/app/builder/Z3GatewayHost/Makefile
parents ea981073 a9d72488
...@@ -10,12 +10,16 @@ CFLAGS += -I$(TOP_DIR)/common/api ...@@ -10,12 +10,16 @@ CFLAGS += -I$(TOP_DIR)/common/api
CFLAGS += -I$(TOP_DIR)/common/json CFLAGS += -I$(TOP_DIR)/common/json
CFLAGS += -I$(TOP_DIR)/common/nanomsg/include CFLAGS += -I$(TOP_DIR)/common/nanomsg/include
CFLAGS += -I$(TOP_DIR)/common/ev/include CFLAGS += -I$(TOP_DIR)/common/ev/include
CFLAGS += -I$(TOP_DIR)/common/sqlite LDFLAGS += -lkk_tsl
LDFLAGS += -lapi_com -lkk_tsl LDFLAGS += -lapi_com
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg ifeq ($(CONFIG_VENDOR),ubuntu)
LDFLAGS += -L$(TOP_DIR)/common/ev -lev LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_ubuntu
LDFLAGS += -L$(TOP_DIR)/output/release/lib -lapi_com LDFLAGS += -L$(TOP_DIR)/common/ev -lev_ubuntu
LDFLAGS += -liot_cjson -liot_mqtt -lsqlite -ldl -lm -lanl -lkk_hal else
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg
LDFLAGS += -L$(TOP_DIR)/common/ev -lev
endif
LDFLAGS += -liot_cjson -liot_mqtt -ldl -lm -lanl -lkk_hal -lzlog
LIBSO_TARGET := libapi_com.so LIBSO_TARGET := libapi_com.so
LIBA_TARGET := libapi_com.a
CFLAGS += -I$(TOP_DIR)/common/nanomsg/include CFLAGS += -I$(TOP_DIR)/common/nanomsg/include
CFLAGS += -I$(TOP_DIR)/common/ev/include CFLAGS += -I$(TOP_DIR)/common/ev/include
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -static -lnanomsg
LDFLAGS += -L$(TOP_DIR)/common/ev -static -lev ifeq ($(CONFIG_VENDOR),ubuntu)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_ubuntu
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_ubuntu
else
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg
LDFLAGS += -L$(TOP_DIR)/common/ev -lev
endif
LDFLAGS += -ldl LDFLAGS += -ldl
\ No newline at end of file
This diff is collapsed.
LIBA_TARGET := libkk_hal.a LIBSO_TARGET := libkk_hal.so
\ No newline at end of file \ No newline at end of file
LIBA_TARGET := libsqlite.a LIBA_TARGET := libsqlite.a
\ No newline at end of file
LDFLAGS += -ldl
\ No newline at end of file
LIBSO_TARGET := libzlog.so LIBSO_TARGET := libzlog.so
LIBA_TARGET := libzlog.a #LIBA_TARGET := libzlog.a
...@@ -148,7 +148,7 @@ static int _dm_init_tsl_params(int devId) ...@@ -148,7 +148,7 @@ static int _dm_init_tsl_params(int devId)
} }
return res; return res;
} }
int dm_mgr_properities_db_create(kk_tsl_t* dev_shadow,char *deviceCode ) int dm_mgr_properities_db_create(kk_tsl_t* dev_shadow,char *deviceCode,int devType )
{ {
int num = 0,idx = 0; int num = 0,idx = 0;
kk_tsl_data_t *pProperty = NULL; kk_tsl_data_t *pProperty = NULL;
...@@ -163,7 +163,7 @@ int dm_mgr_properities_db_create(kk_tsl_t* dev_shadow,char *deviceCode ) ...@@ -163,7 +163,7 @@ int dm_mgr_properities_db_create(kk_tsl_t* dev_shadow,char *deviceCode )
pProperty = dev_shadow->properties+idx; pProperty = dev_shadow->properties+idx;
INFO_PRINT("dm_mgr_properities_db_create pProperty->identifier:%s!!\n",pProperty->identifier); INFO_PRINT("dm_mgr_properities_db_create pProperty->identifier:%s!!\n",pProperty->identifier);
if(pProperty){ if(pProperty){
kk_property_db_insert(deviceCode,pProperty->identifier,pProperty->data_value.type); kk_property_db_insert(deviceCode,pProperty->identifier,pProperty->data_value.type,devType);
} }
} }
} }
...@@ -224,7 +224,7 @@ int dm_mgr_device_create(_IN_ int dev_type,_IN_ char productCode[PRODUCT_CODE_MA ...@@ -224,7 +224,7 @@ int dm_mgr_device_create(_IN_ int dev_type,_IN_ char productCode[PRODUCT_CODE_MA
return FAIL_RETURN; return FAIL_RETURN;
} }
} }
dm_mgr_properities_db_create(node->dev_shadow,deviceCode); dm_mgr_properities_db_create(node->dev_shadow,deviceCode,dev_type);
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);
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include "sqlite3.h" #include "sqlite3.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_dm_mng.h" #include "kk_dm_mng.h"
#include "kk_property_db.h"
#define KK_PROPERTIES_DB_FILE "kk_properties.db" #define KK_PROPERTIES_DB_FILE "kk_properties.db"
...@@ -17,7 +18,8 @@ typedef enum{ ...@@ -17,7 +18,8 @@ typedef enum{
DB_DEVICECODE, DB_DEVICECODE,
DB_IDENTIFITER, DB_IDENTIFITER,
DB_VALUE, DB_VALUE,
DB_VALUETYPE, DB_VALUETYPE,
DB_DEVTYPE
}; };
static kk_property_db_ctx_t s_kk_property_db_ctx = {0}; static kk_property_db_ctx_t s_kk_property_db_ctx = {0};
...@@ -60,7 +62,8 @@ static int kk_property_db_Init(void) ...@@ -60,7 +62,8 @@ static int kk_property_db_Init(void)
deviceCode varchar(33), \ deviceCode varchar(33), \
identifier varchar(33), \ identifier varchar(33), \
value varchar(33), \ value varchar(33), \
valueType INTEGER)"; valueType INTEGER, \
devType INTEGER)";
char *pcErr; char *pcErr;
// DBG_vPrintf(DBG_SQL, "Execute SQL: '%s'\n", pConditionTableDef); // DBG_vPrintf(DBG_SQL, "Execute SQL: '%s'\n", pConditionTableDef);
...@@ -129,10 +132,10 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie ...@@ -129,10 +132,10 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie
} }
int kk_property_db_insert(const char *deviceCode,const char *identifier,kk_tsl_data_type_e valuetype) int kk_property_db_insert(const char *deviceCode,const char *identifier,kk_tsl_data_type_e valuetype,int devtype)
{ {
const char *insertCmd = "insert into PropertiesInfo (deviceCode,identifier,value,valueType) \ const char *insertCmd = "insert into PropertiesInfo (deviceCode,identifier,value,valueType,devType) \
values ('%s','%s','%s','%d');"; values ('%s','%s','%s','%d','%d');";
char *sqlCmd = NULL; char *sqlCmd = NULL;
int rc = 0; int rc = 0;
char *zErrMsg = 0; char *zErrMsg = 0;
...@@ -145,7 +148,7 @@ int kk_property_db_insert(const char *deviceCode,const char *identifier,kk_tsl_d ...@@ -145,7 +148,7 @@ int kk_property_db_insert(const char *deviceCode,const char *identifier,kk_tsl_d
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
_kk_property_db_lock(); _kk_property_db_lock();
sqlCmd = sqlite3_mprintf(insertCmd,deviceCode,identifier,"",valuetype); sqlCmd = sqlite3_mprintf(insertCmd,deviceCode,identifier,"",valuetype,devtype);
rc = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg); rc = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg);
if( rc != SQLITE_OK ){ if( rc != SQLITE_OK ){
...@@ -183,6 +186,93 @@ int kk_property_db_update_value(const char *deviceCode,const char *identifier,co ...@@ -183,6 +186,93 @@ int kk_property_db_update_value(const char *deviceCode,const char *identifier,co
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
int kk_property_db_get_value(const char *deviceCode,const char *identifier,void* value)
{
char *sqlCmd = NULL;
int rc = 0;
char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *valueStr = NULL;
int valueType = 0;
kk_property_db_ctx_t *ctx = _kk_property_db_get_ctx();
_kk_property_db_lock();
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode= '%s' and identifier = '%s'",deviceCode,identifier);
DEBUG_PRINT("kk_property_db_get_value sqlCmd:%s\n",sqlCmd);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
valueStr = sqlite3_column_text(stmt, DB_VALUE);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
if(valueType == KK_TSL_DATA_TYPE_INT||
valueType == KK_TSL_DATA_TYPE_ENUM||
valueType == KK_TSL_DATA_TYPE_BOOL){
int value_int = atoi(valueStr);
*(int*)value = value_int;
}
else if(valueType == KK_TSL_DATA_TYPE_FLOAT){
float value_float = atoi(valueStr);
*(float*)value = value_float;
}
else if(valueType == KK_TSL_DATA_TYPE_DOUBLE){
double value_double = atoi(valueStr);
*(double*)value = value_double;
}
else{
memcpy(value,valueStr, strlen(valueStr));
}
}
sqlite3_free(sqlCmd);
_kk_property_db_unlock();
sqlite3_finalize(stmt);
return SUCCESS_RETURN;
}
int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_prop_raw_struct_t* raw, int count)
{
char *sqlCmd = NULL;
int rc = 0;
char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *valueStr = NULL;
char *devcode = NULL;
int valueType = 0;
int idx = 0;
kk_prop_raw_struct_t *curData = NULL;
kk_property_db_ctx_t *ctx = _kk_property_db_get_ctx();
_kk_property_db_lock();
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE devType= '%d' and identifier = '%s'",dev_type,identifier);
DEBUG_PRINT("kk_property_db_get_gw_value sqlCmd:%s\n",sqlCmd);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
curData = raw;
while(sqlite3_step(stmt) == SQLITE_ROW && idx < count){
devcode = sqlite3_column_text(stmt, DB_DEVICECODE);
valueStr = sqlite3_column_text(stmt, DB_VALUE);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
memcpy(curData->deviceCode,devcode, strlen(devcode));
memcpy(curData->raw,valueStr, strlen(valueStr));
curData->type = valueType;
curData++;
idx++;
}
sqlite3_free(sqlCmd);
_kk_property_db_unlock();
sqlite3_finalize(stmt);
return SUCCESS_RETURN;
}
int kk_property_db_update(const char *deviceCode) int kk_property_db_update(const char *deviceCode)
{ {
int res = 0; int res = 0;
...@@ -283,6 +373,7 @@ int kk_property_sync_values(const char *deviceCode) ...@@ -283,6 +373,7 @@ int kk_property_sync_values(const char *deviceCode)
} }
sqlite3_free(sqlCmd);
_kk_property_db_unlock(); _kk_property_db_unlock();
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
......
#ifndef _KK_PROPERTY_DB_H_ #ifndef _KK_PROPERTY_DB_H_
#define _KK_PROPERTY_DB_H_ #define _KK_PROPERTY_DB_H_
#include "kk_tsl_common.h" #include "kk_tsl_common.h"
int kk_property_db_init(void); typedef struct{
int type;
#endif char deviceCode[DEVICE_CODE_MAXLEN];
char raw[60];
}kk_prop_raw_struct_t;
int kk_property_db_init(void);
#endif
LIBA_TARGET := libmid_test.a LIBA_TARGET := libmid.a
$(call Append_Conditional, LIB_SRCS_EXCLUDE, midware.c) $(call Append_Conditional, LIB_SRCS_EXCLUDE, midware.c)
$(call Append_Conditional, SRCS_midware, midware.c) $(call Append_Conditional, SRCS_midware, midware.c)
...@@ -11,6 +11,12 @@ CFLAGS += -I$(TOP_DIR)/common/sqlite ...@@ -11,6 +11,12 @@ CFLAGS += -I$(TOP_DIR)/common/sqlite
CFLAGS += -I$(TOP_DIR)/common/zlog CFLAGS += -I$(TOP_DIR)/common/zlog
CFLAGS += -I$(TOP_DIR)/src/tsl/tsl_handle CFLAGS += -I$(TOP_DIR)/src/tsl/tsl_handle
LDFLAGS += -lapi_com -liot_cjson -lkk_tsl LDFLAGS += -lapi_com -liot_cjson -lkk_tsl
LDFLAGS += -lsqlite -ldl -lm LDFLAGS += -lm -lkk_hal -lzlog
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg -lanl LDFLAGS += -lsqlite -ldl
LDFLAGS += -L$(TOP_DIR)/common/ev -lev -lkk_hal ifeq ($(CONFIG_VENDOR),ubuntu)
\ No newline at end of file LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_ubuntu -lanl
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_ubuntu
else
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg -lanl
LDFLAGS += -L$(TOP_DIR)/common/ev -lev
endif
\ No newline at end of file
This diff is collapsed.
...@@ -34,14 +34,19 @@ ...@@ -34,14 +34,19 @@
# or # or
# "cd app/builder/Z3GatewayHost; make INCLUDE_MAKEFILE=my-custom.mak" # "cd app/builder/Z3GatewayHost; make INCLUDE_MAKEFILE=my-custom.mak"
# #
CONFIG_VENDOR = ubuntu
ifdef INCLUDE_MAKEFILE ifdef INCLUDE_MAKEFILE
include $(INCLUDE_MAKEFILE) include $(INCLUDE_MAKEFILE)
endif endif
ifeq ($(CONFIG_VENDOR),ubuntu)
COMPILER ?= gcc COMPILER ?= gcc
LINKER ?= gcc LINKER ?= gcc
ARCHIVE ?= ar ARCHIVE ?= ar
else
COMPILER ?= mips-openwrt-linux-gcc
LINKER ?= mips-openwrt-linux-gcc
ARCHIVE ?= mips-openwrt-linux-ar
endif
STD ?= gnu99 STD ?= gnu99
ARCHIVE_EXTENSION ?= .a ARCHIVE_EXTENSION ?= .a
...@@ -322,13 +327,17 @@ DEPENDENCY_POST_PROCESS ?= ...@@ -322,13 +327,17 @@ DEPENDENCY_POST_PROCESS ?=
CPPFLAGS= $(INCLUDES) $(DEFINES) $(COMPILER_FLAGS) $(DEPENDENCY_FLAGS) CPPFLAGS= $(INCLUDES) $(DEFINES) $(COMPILER_FLAGS) $(DEPENDENCY_FLAGS)
LINKER_FLAGS ?= LINKER_FLAGS ?=
ifdef NO_READLINE
CPPFLAGS += -DNO_READLINE ifeq ($(CONFIG_VENDOR),ubuntu)
LINKER_FLAGS += \
-lreadline_ubuntu \
-lncurses_ubuntu
else else
LINKER_FLAGS += \ LINKER_FLAGS += \
-lreadline \ -lreadline \
-lncurses -lncurses
endif endif
# Conditionally include the math library if EM_AF_LINK_M is defined. # Conditionally include the math library if EM_AF_LINK_M is defined.
ifeq ($(findstring -DEM_AF_LINK_M,$(DEFINES)),-DEM_AF_LINK_M) ifeq ($(findstring -DEM_AF_LINK_M,$(DEFINES)),-DEM_AF_LINK_M)
...@@ -361,8 +370,13 @@ $(TARGET_FILE): $(APPLICATION_OBJECTS) $(LIBRARIES) ...@@ -361,8 +370,13 @@ $(TARGET_FILE): $(APPLICATION_OBJECTS) $(LIBRARIES)
@echo -e '\n$@ build success' @echo -e '\n$@ build success'
else else
$(TARGET_FILE): $(APPLICATION_OBJECTS) $(LIBRARIES) $(TARGET_FILE): $(APPLICATION_OBJECTS) $(LIBRARIES)
$(LD) $^ $(LINKER_FLAGS) -lm -L. -lapi_com -lnanomsg -lanl -pthread -lev -ltinfo -o $(TARGET_FILE) ifeq ($(CONFIG_VENDOR),ubuntu)
$(LD) $^ $(LINKER_FLAGS) -lm -L. -lapi_com_ubuntu -lnanomsg_ubuntu -lanl -pthread -lev_ubuntu -lkk_hal_ubuntu -o $(TARGET_FILE)
@echo -e '\n$@ build success'
else
$(LD) $^ $(LINKER_FLAGS) -lm -L. -lapi_com -lnanomsg -lanl -pthread -lev -lkk_hal -o $(TARGET_FILE)
@echo -e '\n$@ build success' @echo -e '\n$@ build success'
endif
endif endif
.PHONY: clean .PHONY: clean
......
This diff is collapsed.
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