Commit 3e5337a1 authored by 陈伟灿's avatar 陈伟灿

Merge branch 'cwc' into 'master'

Cwc

See merge request chenweican/k-sdk!158
parents 45649b1a 04ee3b76
......@@ -8,19 +8,27 @@ CFLAGS += -I$(TOP_DIR)/common/api
CFLAGS += -I$(TOP_DIR)/common/json
CFLAGS += -I$(TOP_DIR)/common/nanomsg/include
CFLAGS += -I$(TOP_DIR)/common/ev/include
CFLAGS += -I$(TOP_DIR)/common/curl/include
LDFLAGS += -lkk_tsl
LDFLAGS += -lapi_com
ifeq ($(CONFIG_MODEL),x86)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_ubuntu
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_ubuntu
else ifeq ($(CONFIG_MODEL),nx5)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_nx5
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_nx5 -lcurl
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_nx5
else ifeq ($(CONFIG_MODEL),8197)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_8197 -lubacktrace
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_8197
else ifeq ($(CONFIG_MODEL),a133)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_a133
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_a133
LDFLAGS += -L$(TOP_DIR)/common/curl -lcurl_a133
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
LDFLAGS += -liot_cjson -liot_mqtt -ldl -lm -lkk_hal
......@@ -22,5 +22,8 @@ typedef enum {
#define MQTT_AUTH_HOST_NAME "test.dev.nj-ikonke.site"
int KK_Get_ccuid( char *device_code);
int kk_check_config_file(char* path,char **config);
int kk_cloud_get_pid(char *productId);
int kk_cloud_get_key(char *key);
#endif
......@@ -198,7 +198,10 @@ char * g_filerToCloudTable[] =
(char *){"/thing/service/historyAlarm_reply"},
(char *){"/thing/service/delAlarm_reply"},
(char *){"/thing/service/syncinfo_reply"},
(char *){"/thing/service/syncinfopush_reply"},
(char *){"/thing/service/syncinfopush_reply"},
(char *){"/thing/service/clientReport_reply"},
(char *){"/thing/service/clientOnlinePush"},
(char *){"/thing/service/getClientInfo_reply"},
};
/************************************************************
*功能描述:过滤不需要下发给网关的消息
......
......@@ -47,6 +47,31 @@ static int KK_Ccuid_init(void)
char ccuid[DEVICE_CODE_LEN] = {0};
char ccuidTmp[DEVICE_CODE_LEN] = {0};
int ccuid_len = 0;
#ifdef CONFIG_A133_PLATFORM
uint8_t data[128] = {0};
int data_len = 0;
char *pstart = NULL;
char *pEnd = NULL;
HAL_Execel_cmd(GET_CCUID_CMD,(char *)data,sizeof(data),&data_len);
printf("---GET_CCUID_CMD:%s\n",data);
if(data_len > 0 && data_len <= 128){
pstart = data;
pEnd = strstr(data,"-");
if(pstart != NULL && pEnd != NULL){
printf("-------123---------------------\n");
memcpy(ccuidTmp,pstart,pEnd-pstart);
_setDevice_Code(ccuidTmp,pEnd-pstart);
}else{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT("KK_Ccuid_init get ccuid error\n");
return -1;
}
}else{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT("KK_Ccuid_init get ccuid error\n");
return -1;
}
#else
HAL_Execel_cmd(GET_CCUID_CMD,(char *)ccuid,sizeof(ccuid),&ccuid_len);
printf("GET_CCUID_CMD:%s\n",ccuid);
if(ccuid_len > 0 && ccuid_len <= DEVICE_CODE_LEN){
......@@ -54,10 +79,102 @@ static int KK_Ccuid_init(void)
_setDevice_Code(ccuidTmp,strlen(ccuidTmp)-1);//减一是因为最后有一个换行
}else{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT("KK_Ccuid_init get ccuid error\n");
return -1;
}
#endif
return 0;
}
char s_pid[PRODUCT_CODE_LEN] = {0};
static int kk_cloud_pid_init(void)
{
#ifdef CONFIG_A133_PLATFORM
uint8_t data[128] = {0};
int data_len = 0;
char *pstart = NULL;
char *pEnd = NULL;
HAL_Execel_cmd(GET_CCUID_CMD,(char *)data,sizeof(data),&data_len);
printf("---GET_CCUID_CMD:%s\n",data);
if(data_len > 0 && data_len <= 128){
pstart = data;
pEnd = strstr(data,"pid_");
if(pstart != NULL && pEnd != NULL){
memcpy(s_pid,pEnd+4,data_len-1-(pEnd-pstart+4));
INFO_PRINT("kk_cloud_pid_init s_pid:%s\n",s_pid);
}else{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT("KK_Ccuid_init get ccuid error\n");
return -1;
}
}else{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT("KK_Ccuid_init get ccuid error\n");
return -1;
}
#else
char pid[PRODUCT_CODE_LEN] = {0};
int pid_len = 0;
HAL_Execel_cmd(GET_PRODUCTID_CMD,(char *)pid,sizeof(pid),&pid_len);
if(pid_len > 0 && pid_len <= PRODUCT_CODE_LEN){
memcpy(s_pid,pid,pid_len-1);
INFO_PRINT("s_pid:%s\n",s_pid);
}else{
return -1;
}
#endif
return 0;
}
int kk_cloud_get_pid(char *productId)
{
strncpy(productId, s_pid, strlen(s_pid));
printf("kk_cloud_get_pid:%s\n",s_pid);
return strlen(s_pid);
}
char s_key[128] = {0};
static int kk_cloud_key_init(void)
{
uint8_t key[128] = {0};
int key_len = 0;
#ifdef CONFIG_A133_PLATFORM
char *pstart = NULL;
char *pEnd = NULL;
HAL_Execel_cmd(GET_CCUID_CMD,(char *)key,sizeof(key),&key_len);
printf("---productSecret:%s\n",key);
if(key_len > 0 && key_len <= 128){
pstart = strstr(key,"key_");;
pEnd = strstr(key,"-pid_");
if(pstart != NULL && pEnd != NULL){
memcpy(s_key,pstart+4,pEnd-pstart+4);
INFO_PRINT("kk_cloud_key_init s_key:%s\n",s_key);
}else{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT("kk_cloud_key_init error\n");
return -1;
}
}else{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT("kk_cloud_key_init error\n");
return -1;
}
#else
HAL_Execel_cmd(GET_KEY_CMD,(char *)key,sizeof(key),&key_len);
if(key_len > 0 && key_len <= 128){
memcpy(s_key,key,key_len-1);
INFO_PRINT("s_key:%s\n",s_key);
}else{
return -1;
}
#endif
return 0;
}
int kk_cloud_get_key(char *key)
{
strncpy(key, s_key, strlen(s_key));
printf("kk_cloud_get_key:%s\n",s_key);
return strlen(s_key);
}
static int mqtt_start(void)
{
int count = 0;
......@@ -94,9 +211,55 @@ static int mqtt_start(void)
MQTTAsync_destroy(&mqttClient);
return -1;
}
extern MQTTAsync kk_mqtt_connect();
extern MQTTAsync kk_connect_default(void);
static int mqtt_start_ex(int isdefault)
{
int count = 0;
MQTTAsync mqttClient;
int rc = 0;
if(isdefault){
mqttClient = kk_connect_default();
}else{
mqttClient = kk_mqtt_connect();
}
if(mqttClient == NULL){
WARNING_PRINT("KK_MQTT_Connect FAIL!!!\n");
return -1;
}
while(1)
{
usleep(100000L);
if(kk_get_cloud_status() == 0){
//printf("------------------------------>count:%d\n",count);
count++;
if(count>500)
{
count = 0;
WARNING_PRINT("---------------------------------->CONNECT FAIL!!!\n");
break;
//INFO_PRINT("i am send now\n");
//KK_MQTT_SendMsg(TOPIC,"hello my world",2);
}
}else{
if(count > 0){
count = 0;
}
}
//INFO_PRINT(" %s \n",testStr);
}
INFO_PRINT("MQTTAsync_destroy\n");
MQTTAsync_destroy(&mqttClient);
return -1;
}
int kk_start_ccu_register(void);
extern int kk_info_report_start(void);
extern int kk_dl_config();
extern int kk_register_auth_get();
int main(int argc, char* argv[])
{
int rc = 0;
......@@ -107,8 +270,38 @@ int main(int argc, char* argv[])
ERROR_PRINT("CCUID GET FAIL!!!!!!!!!!!\n");
return 0;
}
kk_cloud_pid_init();
kk_cloud_key_init();
kk_ipc_init(IPC_APP2MID,(ipc_cb*)KK_Data_FromDev,NULL,NULL);
//kk_info_report_start();
//
#ifdef CONFIG_NX5_PLATFORM
//adlakdlkf
#endif
#if 1
kk_dl_config();
again:
rc = kk_register_auth_get();
if(rc == 0){
rc = mqtt_start_ex(0);
if(rc < 0){
kk_write_disconnect_flag();
sleep(2);
goto again;
}
}else if(rc == -2){
rc = mqtt_start_ex(1);
if(rc < 0){
kk_write_disconnect_flag();
sleep(2);
goto again;
}
}else{
kk_write_disconnect_flag();
sleep(2);
goto again;
}
#else
again:
rc = kk_start_ccu_register();
if(rc == 0){
......@@ -123,6 +316,6 @@ again:
sleep(2);
goto again;
}
#endif
return rc;
}
#include <stdio.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <time.h>
#include <errno.h>
#include <signal.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/time.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include "cJSON.h"
#include "com_api.h"
#include "kk_hal.h"
#include "kk_product.h"
#include "kcloud_config.h"
#include "infra_sha256.h"
#include <netdb.h>
#include <arpa/inet.h>
#include <netinet/tcp.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include "kk_log.h"
#include "../../common/curl/include/curl/curl.h"
int kk_check_config_file(char* path,char **config)
{
FILE *fp;
int filesize = 0;
char *buf = NULL;
if((access(path,F_OK)) == 0){
fp = fopen(path, "r");
if(fp != NULL){
fseek(fp, 0L, SEEK_END);
filesize = ftell(fp);
buf = malloc(filesize+1);
if(buf == NULL){
ERROR_PRINT("MALLOC FAIL!!!\n");
fclose(fp);
return -1;
}
memset(buf,0x0,filesize+1);
fseek(fp, 0L, SEEK_SET);
fread(buf, 1, filesize, fp);
INFO_PRINT("buf:%s\n",buf);
*config = buf;
fclose(fp);
return 0;
}
}else{
return -1;
}
}
static int _kk_parse_config_dl_host(cJSON *configInfo,char *url){
char ccuid[32] = {0};
if(configInfo == NULL ||url == NULL){
return -1;
}
KK_Get_ccuid(ccuid);
cJSON *host = cJSON_GetObjectItem(configInfo,"host");
cJSON *proto = cJSON_GetObjectItem(configInfo,"proto");
cJSON *port = cJSON_GetObjectItem(configInfo,"port");
if(host != NULL && proto != NULL && port != NULL){
sprintf(url,"%s://%s:%d/api/1.0/ccu/%s/cloud_entry",proto->valuestring,host->valuestring,port->valueint,&ccuid[4]);
INFO_PRINT("%s\n",url);
return 0;
}
return -1;
}
static int _kk_get_config_dl_host(char *buf,char *url){
cJSON *configInfo = NULL;
if(buf == NULL || url == NULL){
ERROR_PRINT("param error\n");
return -1;
}
cJSON* configObj = cJSON_Parse(buf);
if(configObj == NULL){
ERROR_PRINT("cJSON_Parse error\n");
return -2;
}
cJSON *data = cJSON_GetObjectItem(configObj,"data");
if(data == NULL){
configInfo = cJSON_GetObjectItem(configObj,"iot_ops_entry");
}else{
configInfo = cJSON_GetObjectItem(data,"iot_ops_entry");
}
_kk_parse_config_dl_host(configInfo,url);
cJSON_Delete(configObj);
return 0;
}
static int s_getSize = 0;
size_t receive_config_data(void *buffer, size_t size, size_t nmemb, FILE *file){
INFO_PRINT("buffer:%s\n",buffer);
size_t s_getSize = fwrite(buffer, size, nmemb, file);
return s_getSize;
}
int kk_dl_config(){
int ret = 0;
char *configData = NULL;
int defaultFlag = 0;
char url[512] = {0};
FILE *file;
CURLcode res;
CURL* curl;
char ccuid[32] = {0};
char sds[128] = {0};
static int s_count = 0;
KK_Get_ccuid(ccuid);
//ret = kk_check_config_file(KK_CONFIG_FILE_PATH,&configData);
//defaultCon:
//if(ret != 0){
//defaultFlag = 1;
ret = kk_check_config_file(KK_DEFAULT_CONFIG_FILE_PATH,&configData);
//}
if(ret == 0){
ret = _kk_get_config_dl_host(configData,url);
//if(ret == -2 && defaultFlag == 0){
//goto defaultCon;
//}
if(ret == 0){
again:
s_count++;
curl = curl_easy_init();
if (NULL == curl){
if(configData != NULL){
free(configData);
configData = NULL;
}
return -1;
}
if(access(KK_CONFIG_FILE_PATH,F_OK) != 0){
char cmd[128] = {0};
sprintf(cmd,"touch %s",KK_CONFIG_FILE_PATH);
system(cmd);
}
file = fopen(KK_CONFIG_FILE_PATH,"r+");
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_URL, url);
//curl_easy_setopt(curl, CURLOPT_POSTFIELDS, WEATHER_DATA);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, receive_config_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)file);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_easy_setopt(curl, CURLOPT_NOSIGNAL, 1);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT_MS, 30000);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 100);
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1); //支持服务器跳转
curl_easy_setopt(curl, CURLOPT_TCP_KEEPALIVE, 1L); // enable TCP keep-alive for this transfer
curl_easy_setopt(curl, CURLOPT_TCP_KEEPIDLE, 120L); // keep-alive idle time to 120 seconds
curl_easy_setopt(curl, CURLOPT_TCP_KEEPINTVL, 60L); // interval time between keep-alive probes: 60 seconds
struct curl_slist* headers = NULL;
sprintf(sds,"sds_ccu_id:%s",&ccuid[4]);
INFO_PRINT("sds:%s\n",sds);
headers = curl_slist_append(headers, "Content-Type:application/json");
headers = curl_slist_append(headers, sds);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POST, 0);//设置为非0表示本次操作为POST
res = curl_easy_perform(curl);
if(res != CURLE_OK){
curl_easy_cleanup(curl);
fclose(file);
ERROR_PRINT("WCHEN[%s][%d]res:%d\n",__FUNCTION__,__LINE__,res);
if(configData != NULL){
free(configData);
configData = NULL;
}
if(s_count < 15){
sleep(3);
ERROR_PRINT("get config again\n");
goto again;
}else{
ERROR_PRINT("get config timeout\n");
return -1;
}
}
curl_easy_cleanup(curl);
fclose(file);
}
}
if(configData != NULL){
free(configData);
configData = NULL;
}
return 0;
}
\ No newline at end of file
......@@ -41,12 +41,14 @@ static int kk_info_get(char *str)
char version[VERSION_MAXLEN] = {0};
char *str_tmp = NULL;
char ccuid[32] = {0};
char pid[32] = {0};
if(str == NULL){
return -1;
}
//HAL_GetVersion(version);
KK_Get_ccuid(ccuid);
kk_cloud_get_pid(pid);
cJSON *root = cJSON_CreateObject();
if (root)
{
......@@ -87,7 +89,7 @@ static int kk_info_get(char *str)
char s_IP[NETWORK_ADDR_LEN] = {0};
HAL_Get_IP(s_IP,NULL);
cJSON_AddItemToObject(args, "net", net);
cJSON_AddStringToObject(net, "interface", CCU_LAN);
cJSON_AddStringToObject(net, "interface", "eth0");
cJSON_AddStringToObject(net, "ip", s_IP);
}
cJSON *lsc_status = cJSON_CreateObject();
......@@ -100,7 +102,7 @@ static int kk_info_get(char *str)
if (qr_code)
{
char qrcodeStr[256] = {0};
sprintf(qrcodeStr,"KONKE-CCU:%s:%s:BBE3C5A5FC1FDB6CA1A386AB321D02AB",KK_CCU_PRODUCTID,&ccuid[4]);
sprintf(qrcodeStr,"KONKE-CCU:%s:%s:BBE3C5A5FC1FDB6CA1A386AB321D02AB",pid,&ccuid[4]);
cJSON_AddItemToObject(args, "qr_code", qr_code);
cJSON_AddStringToObject(qr_code, "string", qrcodeStr);
cJSON_AddBoolToObject(qr_code, "show", 1);
......
This diff is collapsed.
......@@ -114,17 +114,17 @@ void KK_reset_sub_flag(void)
}
int KK_CCU_TOPIC_Subscribe(void)
{
char productCode[PRODUCT_CODE_LEN] = {0};
if(s_ccu_topic_sub == 1){
INFO_PRINT("[%s][%d] already Subscribe\n",__FUNCTION__,__LINE__);
//return -1;
}
char ccuid[32] = {0};
KK_Get_ccuid(ccuid);
KK_Get_ccuid(ccuid);
char pid[32] = {0};
kk_cloud_get_pid(pid);
s_ccu_topic_sub = 1;
HAL_GetProduct_Code(productCode);
return _kk_ccu_topic_subscribe(productCode,ccuid);
return _kk_ccu_topic_subscribe(pid,ccuid);
}
static int _kk_utils_topic(_IN_ const char *name, _IN_ char *product_code,
......@@ -241,8 +241,9 @@ char* KK_Make_Topic(cJSON *info,cJSON *data)
{
cJSON *type,*product_code,*device_code;
char *topic = NULL;
char pid[32] = {0};
//root=cJSON_Parse((char*)info->valuestring);
kk_cloud_get_pid(pid);
type = cJSON_GetObjectItem(info, MSG_TYPE_STR);
if(type == NULL){
goto errorreturn;
......@@ -256,7 +257,7 @@ char* KK_Make_Topic(cJSON *info,cJSON *data)
if(device_code == NULL){
goto errorreturn;
}
if((!strcmp(product_code->valuestring,"15") || !strcmp(product_code->valuestring,KK_CCU_PRODUCTID)) && \
if((!strcmp(product_code->valuestring,pid)) && \
(strstr(type->valuestring,"thing/status/online") != NULL)){
KK_CCU_TOPIC_Subscribe();
}
......
......@@ -232,8 +232,10 @@ MQTTAsync KK_MQTT_Connect(void)
}
HAL_Get_mac(mac);
char ccuid[32] = {0};
char pid[32] = {0};
KK_Get_ccuid(ccuid);
sprintf(usrname, "%s.%s", ccuid,KK_CCU_PRODUCTID);
kk_cloud_get_pid(pid);
sprintf(usrname, "%s.%s", ccuid,pid);
INFO_PRINT("cliendid:%s,usrname:%s\n",g_clientId,usrname);
INFO_PRINT("------------>token:%s\n",token);
sprintf(temp_address,"tcp://%s:1983",s_ServerIp);
......@@ -266,7 +268,45 @@ MQTTAsync KK_MQTT_Connect(void)
}
return s_Client;
}
MQTTAsync KK_MQTT_Connect_ex(char *usrname,char*pwd,char*cliendId,char*host,char*port)
{
int rc = 0;
char temp_address[256] = {0};
FILE *fp;
MQTTAsync_createOptions opts = MQTTAsync_createOptions_initializer;
MQTTAsync_connectOptions conn_opts = MQTTAsync_connectOptions_initializer;
MQTTAsync_setTraceCallback(mqttTraceCallback);
opts.MQTTVersion = MQTTVERSION_3_1_1;
sprintf(temp_address,"tcp://%s:%s",host,port);
INFO_PRINT("------------>temp_address:%s\n",temp_address);
if ((rc = MQTTAsync_createWithOptions(&s_Client, temp_address, cliendId, MQTTCLIENT_PERSISTENCE_NONE, NULL,&opts)) != MQTTASYNC_SUCCESS)
{
ERROR_PRINT("Failed to create client object, return code %d\n", rc);
return NULL;
}
/*Set the mqtt callback*/
mqtt_set_callbacks();
conn_opts.keepAliveInterval = 30;
conn_opts.connectTimeout = CONNECT_TIMEOUT;
conn_opts.automaticReconnect = AUTO_CONN;
conn_opts.minRetryInterval = 1;
conn_opts.maxRetryInterval = 32;
//conn_opts.username = USRNAME;
//conn_opts.password = PASSWORD;
conn_opts.username = usrname;
conn_opts.password = pwd;
conn_opts.cleansession = 1;
conn_opts.onSuccess = onConnect;
conn_opts.onFailure = onConnectFailure;
conn_opts.context = s_Client;
if ((rc = MQTTAsync_connect(s_Client, &conn_opts)) != MQTTASYNC_SUCCESS)
{
ERROR_PRINT("Failed to start connect, return code %d\n", rc);
return NULL;
}
return s_Client;
}
int KK_MQTT_SubTopic(char *topicName)
{
INFO_PRINT("to subtopic:%s \n",topicName);
......
......@@ -17,5 +17,6 @@ extern int KK_MQTT_UnsubTopic(const char *topicName);
extern MQTTAsync KK_MQTT_Connect(void);
int kk_get_cloud_status(void);
void kk_write_disconnect_flag(void);
MQTTAsync KK_MQTT_Connect_ex(char *usrname,char*pwd,char*cliendId,char*host,char*port);
#endif
LIBA_TARGET := libiot_luoma.a
$(call Append_Conditional, LIB_SRCS_EXCLUDE, kk_luoma_main.c)
$(call Append_Conditional, SRCS_kk_luoma, kk_luoma_main.c)
$(call Append_Conditional, TARGET, kk_luoma)
CFLAGS += -I$(TOP_DIR)/common/api
CFLAGS += -I$(TOP_DIR)/common/json
CFLAGS += -I$(TOP_DIR)/common/nanomsg/include
CFLAGS += -I$(TOP_DIR)/common/ev/include
LDFLAGS += -lkk_tsl
LDFLAGS += -lapi_com
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 += -liot_cjson -liot_mqtt -ldl -lm -lanl -lkk_hal
/*******************************************************************************
* Copyright (c) 2012, 2020 IBM Corp.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v2.0
* and Eclipse Distribution License v1.0 which accompany this distribution.
*
* The Eclipse Public License is available at
* https://www.eclipse.org/legal/epl-2.0/
* and the Eclipse Distribution License is available at
* http://www.eclipse.org/org/documents/edl-v10.php.
*
* Contributors:
* Ian Craggs - initial contribution
*******************************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "MQTTAsync.h"
#include "mqtt_api.h"
#include "com_api.h"
#include "kk_product.h"
//#include "kcloud_log.h"
int main(int argc, char* argv[])
{
int rc = 0;
adasd
return rc;
}
......@@ -19,11 +19,18 @@ ifeq ($(CONFIG_MODEL),x86)
else ifeq ($(CONFIG_MODEL),nx5)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_nx5
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_nx5
else ifeq ($(CONFIG_MODEL),8197)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_8197 -lubacktrace
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_8197
else ifeq ($(CONFIG_MODEL),a133)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_a133
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_a133
else
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg
LDFLAGS += -L$(TOP_DIR)/common/ev -lev
endif
LDFLAGS += -liot_cjson -ldl -lm -lanl -lkk_hal
LDFLAGS += -liot_cjson -ldl -lm -lkk_hal
......@@ -379,7 +379,9 @@ int kk_data_handle(cJSON *json,int sockfd)
if(key != NULL){
kk_handle_del_history_info(key->valuestring);
}
}else if(strcmp(opcode->valuestring,VOICE_VOLUME_CTRL) == 0){
}
#ifdef VOICE_SUPPORT
else if(strcmp(opcode->valuestring,VOICE_VOLUME_CTRL) == 0){
cJSON *vol = cJSON_GetObjectItem(json, "arg");
if(vol != NULL){
kk_voice_control(atoi(vol->valuestring));
......@@ -413,7 +415,9 @@ int kk_data_handle(cJSON *json,int sockfd)
}
}else if(strcmp(opcode->valuestring,EXIT_VOICE_FACTORY) == 0){
kk_voice_exit_factory_mode();
}else{
}
#endif
else{
kk_ccu_opcode_handle(json);
}
}
......@@ -469,9 +473,11 @@ static int kk_parse_syncinfo(cJSON *payload)
int is_ccu_msg(cJSON *productCode,cJSON *deviceCode)
{
char ccuid[33] = {0};
char pid[33] = {0};
kk_lan_get_ccuid(ccuid);
if((strlen(productCode->valuestring)==strlen(KK_CCU_PRODUCTID) &&
!strcmp(productCode->valuestring,KK_CCU_PRODUCTID)) &&
kk_lan_get_pid(pid);
if((strlen(productCode->valuestring)==strlen(pid) &&
!strcmp(productCode->valuestring,pid)) &&
(strlen(deviceCode->valuestring)==strlen(ccuid) &&
!strcmp(deviceCode->valuestring,ccuid))){
return 1;
......@@ -781,7 +787,82 @@ static int kk_lan_scene_handle(cJSON *payload,int isAdd)
}
static int kk_client_reoprt_reply_handle(cJSON *payload)
{
int nodeId = 0;
if(payload == NULL){
return -1;
}
cJSON *params = cJSON_GetObjectItem(payload,"params");
if(params == NULL){
return -1;
}
cJSON *serialId = cJSON_GetObjectItem(params, "serialId");
if(serialId == NULL){
return -1;
}
cJSON *arg = cJSON_CreateObject();
cJSON_AddStringToObject(arg, "serialId", serialId->valuestring);
cJSON *root=cJSON_CreateObject();
cJSON_AddStringToObject(root, "nodeid", "*");
cJSON_AddStringToObject(root, "opcode", "CCU_CLIENT_REPORT");
cJSON_AddStringToObject(root, "status", "success");
cJSON_AddItemToObject(root, "arg", arg);
send_msg_to_module(root);
cJSON_Delete(root);
return 0;
}
static int kk_client_online_push_handle(cJSON *payload)
{
int nodeId = 0;
if(payload == NULL){
return -1;
}
cJSON *params = cJSON_GetObjectItem(payload,"params");
if(params == NULL){
return -1;
}
cJSON *serialId = cJSON_GetObjectItem(params, "serialId");
if(serialId == NULL){
return -1;
}
cJSON *online = cJSON_GetObjectItem(params, "online");
if(online == NULL){
return -1;
}
cJSON *arg = cJSON_CreateObject();
cJSON_AddStringToObject(arg, "serialId", serialId->valuestring);
cJSON_AddNumberToObject(arg, "online", online->valueint);
cJSON *root=cJSON_CreateObject();
cJSON_AddStringToObject(root, "nodeid", "*");
cJSON_AddStringToObject(root, "opcode", "CCU_CLIENT_ONLINE_PUSH");
cJSON_AddStringToObject(root, "status", "success");
cJSON_AddItemToObject(root, "arg", arg);
send_msg_to_module(root);
cJSON_Delete(root);
return 0;
}
static int kk_client_info_push_handle(cJSON *payload)
{
int nodeId = 0;
if(payload == NULL){
return -1;
}
cJSON *params = cJSON_GetObjectItem(payload,"params");
if(params == NULL){
return -1;
}
char* pData = cJSON_Print(params);
cJSON *root=cJSON_CreateObject();
cJSON_AddStringToObject(root, "nodeid", "*");
cJSON_AddStringToObject(root, "opcode", "GET_CCU_CLIENT_INFO");
cJSON_AddStringToObject(root, "status", "success");
cJSON_AddItemToObject(root, "arg", cJSON_Parse(pData));
send_msg_to_module(root);
cJSON_Delete(root);
free(pData);
return 0;
}
void KK_Data_FromMid(void* str,int len)
{
cJSON *json = NULL;
......@@ -818,13 +899,17 @@ void KK_Data_FromMid(void* str,int len)
INFO_PRINT("syncinfo_reply handle!!!");
kk_parse_syncinfo(payload);
kk_create_syncinfo_to_sdk(payload,0);
#ifdef VOICE_SUPPORT
kk_vp_syncinfo_handle(payload);
#endif
}else if (strstr(msgtype->valuestring,SYNCPUSH_MSG_TYPE_REPLY) != NULL){
INFO_PRINT("syncinfopush_reply handle!!!");
kk_parse_syncinfo(payload);
kk_create_syncinfo_to_sdk(payload,1);
#ifdef VOICE_SUPPORT
kk_vp_syncinfo_handle(payload);
#endif
}
else if(strstr(msgtype->valuestring,"/thing/event/property/post")!= NULL){
INFO_PRINT("property post handle!!!");
......@@ -869,9 +954,16 @@ void KK_Data_FromMid(void* str,int len)
}else if(strstr(msgtype->valuestring,"/thing/event/deleteSceneNotification/post")!= NULL){
INFO_PRINT("deleteSceneNotification handle!!!");
kk_lan_scene_handle(payload,0);
}else if(strstr(msgtype->valuestring,"/thing/service/clientReport_reply")!= NULL){
INFO_PRINT("clientReport_reply handle!!!");
kk_client_reoprt_reply_handle(payload);
}else if(strstr(msgtype->valuestring,"/thing/service/clientOnlinePush")!= NULL){
INFO_PRINT("clientOnlinePush handle!!!");
kk_client_online_push_handle(payload);
}else if(strstr(msgtype->valuestring,"/thing/service/getClientInfo_reply")!= NULL){
INFO_PRINT("getClientInfo_reply handle!!!");
kk_client_info_push_handle(payload);
}
//
cJSON_Delete(json);
}
......
......@@ -34,9 +34,15 @@ static int kk_findccu_ack(int sockfd,struct sockaddr_in *addr){
args = cJSON_CreateObject();
if(args){
cJSON_AddItemToObject(json, "arg", args);
#ifdef CONFIG_A133_PLATFORM
cJSON_AddStringToObject(args, "zkid", ccuid);
cJSON_AddStringToObject(args, "zk", KK_CCU_NAME);
HAL_Get_IP(s_IP,"eth0");
#else
cJSON_AddStringToObject(args, "zkid", &ccuid[4]);
cJSON_AddStringToObject(args, "zk", KK_CCU_NAME);
HAL_Get_IP(s_IP,NULL);
#endif
cJSON_AddStringToObject(args, "ip", s_IP);
cJSON_AddBoolToObject(args, "ssl", FALSE);
}
......
......@@ -17,5 +17,5 @@
int kk_lan_get_ccuid(_OU_ char *device_code);
int kk_findccu_handle_init(void);
int kk_lan_get_pid(_OU_ char *productId);
#endif
\ No newline at end of file
......@@ -11,7 +11,7 @@
#include "kk_oldccu_msg.h"
#include "kk_newccu_msg.h"
#include "kk_lan_node_db.h"
#include "kk_findccu_handle.h"
extern int kk_lan_get_ccuid(_OU_ char *device_code);
......@@ -163,7 +163,9 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON
static int kk_guard_ctrl_handle(int status)
{
char ccuid[33]={0};
char pid[33]={0};
kk_lan_get_ccuid(ccuid);
kk_lan_get_pid(pid);
cJSON *root = cJSON_CreateObject();
cJSON *params = cJSON_CreateObject();
cJSON_AddStringToObject(params,"epNum","1");
......@@ -174,13 +176,53 @@ static int kk_guard_ctrl_handle(int status)
}else{ //³··À
cJSON_AddStringToObject(params,"ArmingState","1");
}
cJSON *info = property_info_build("/thing/service/property/set",KK_CCU_PRODUCTID,ccuid);
cJSON *info = property_info_build("/thing/service/property/set",pid,ccuid);
cJSON *payload = property_payload_build("thing.service.property.set","1","v1.0",params);
cJSON_AddItemToObject(root,INFO_STRING,info);
cJSON_AddItemToObject(root,PAYLOAD_STRING,payload);
kk_ipc_send_json(root);
return 0;
}
static int kk_client_report_handle(cJSON *arg)
{
char ccuid[33]={0};
char pid[33]={0};
if(arg == NULL){
return -1;
}
char* pData = cJSON_Print(arg);
kk_lan_get_ccuid(ccuid);
kk_lan_get_pid(pid);
cJSON *root = cJSON_CreateObject();
cJSON *info = property_info_build("/thing/service/clientReport",pid,ccuid);
cJSON *payload = property_payload_build("thing.service.clientReport","1","v1.0",cJSON_Parse(pData));
cJSON_AddItemToObject(root,INFO_STRING,info);
cJSON_AddItemToObject(root,PAYLOAD_STRING,payload);
//printf("----------------------------------------DEBUG-------------------------[%s][%d]\n",__FUNCTION__,__LINE__);
kk_ipc_send_json(root);
//printf("----------------------------------------DEBUG-------------------------[%s][%d]\n",__FUNCTION__,__LINE__);
free(pData);
return 0;
}
static int kk_get_client_info_handle(cJSON *arg)
{
char ccuid[33]={0};
char pid[33]={0};
if(arg == NULL){
return -1;
}
char* pData = cJSON_Print(arg);
kk_lan_get_ccuid(ccuid);
kk_lan_get_pid(pid);
cJSON *root = cJSON_CreateObject();
cJSON *info = property_info_build("/thing/service/getClientInfo",pid,ccuid);
cJSON *payload = property_payload_build("thing.service.getClientInfo","1","v1.0",cJSON_Parse(pData));
cJSON_AddItemToObject(root,INFO_STRING,info);
cJSON_AddItemToObject(root,PAYLOAD_STRING,payload);
kk_ipc_send_json(root);
free(pData);
return 0;
}
static int kk_indoorAir_ctrl_handle(char *epNum,cJSON *arg)
{
kk_map_dev_node_t *dev = NULL;
......@@ -310,12 +352,9 @@ int kk_ccu_opcode_handle(cJSON *root)
if(opcode==NULL||opcode->type!=cJSON_String){
return -1;
}
if(nodeId==NULL||opcode==NULL||arg==NULL ){
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
return -1;
}
if(requester!=NULL){
WARNING_PRINT("[requester]%s\n",requester->valuestring);
if(strcmp(requester->valuestring,"HJ_CentralAC") == 0 &&
......@@ -337,13 +376,17 @@ int kk_ccu_opcode_handle(cJSON *root)
}else if(strcmp(opcode->valuestring,"DISARMING") == 0){
kk_guard_ctrl_handle(1);
return 0;
}else if(strcmp(opcode->valuestring,"CCU_CLIENT_REPORT") == 0){
kk_client_report_handle(arg);
return 0;
}else if(strcmp(opcode->valuestring,GET_CCU_CLIENT_INFO) == 0){
kk_get_client_info_handle(arg);
return 0;
}
}
}
kk_lan_db_deviceCode_get(atoi(nodeId->valuestring),deviceCode);
//execute scene
if((requester!=NULL) &&(strcmp(requester->valuestring,HJ_PROFILE)==0) &&
(strcmp(opcode->valuestring,"SWITCH")==0)){
......
......@@ -4,13 +4,6 @@
int kk_ccu_opcode_handle(cJSON *root);
void property_post_deal(const char *deviceCode,cJSON *payload);
......
......@@ -104,7 +104,7 @@ static const int g_syslog = 1;
//#define VOICE_SUPPORT
......
......@@ -35,7 +35,7 @@
#include "kk_data_mng.h"
#include "kk_lan_debug.h"
extern char * _kk_data_create(char *msgtype,const char *productCode,const char *deviceCode,const char *param);
extern int HAL_Execel_cmd(char * cmd,char * buf,int buf_len,int* ret_len);
static char s_ccuid[DEVICE_CODE_LEN] = {0};
int kk_lan_get_ccuid(_OU_ char *device_code)
......@@ -51,7 +51,50 @@ static int _setDevice_Code(_IN_ char *device_code,int len)
strncpy(s_ccuid, device_code, len);
return len;
}
extern int HAL_Execel_cmd(char * cmd,char * buf,int buf_len,int* ret_len);
char s_pid[PRODUCT_CODE_LEN] = {0};
static int kk_lan_pid_init(void)
{
#ifdef CONFIG_A133_PLATFORM
uint8_t data[128] = {0};
int data_len = 0;
uint8_t uuid[32] = {0};
char *pstart = NULL;
char *pEnd = NULL;
HAL_Execel_cmd(GET_CCUID_CMD,(char *)data,sizeof(data),&data_len);
printf("GET_CCUID_CMD:%s\n",data);
if(data_len > 0 && data_len <= 128){
pstart = data;
pEnd = strstr(data,"pid_");
if(pstart != NULL && pEnd != NULL){
memcpy(s_pid,pEnd+4,data_len-1-(pEnd-pstart+4));
INFO_PRINT("s_pid:%s\n",s_pid);
}else{
return -1;
}
}else{
return -1;
}
#else
char pid[PRODUCT_CODE_LEN] = {0};
int pid_len = 0;
HAL_Execel_cmd(GET_PRODUCTID_CMD,(char *)pid,sizeof(pid),&pid_len);
if(pid_len > 0 && pid_len <= PRODUCT_CODE_LEN){
memcpy(s_pid,pid,pid_len-1);
INFO_PRINT("s_pid:%s\n",s_pid);
}else{
return -1;
}
#endif
return 0;
}
int kk_lan_get_pid(_OU_ char *productId)
{
strncpy(productId, s_pid, strlen(s_pid));
printf("kk_lan_get_ccuid:%s\n",s_pid);
return strlen(s_pid);
}
static void kk_lan_ccuid_init(void)
{
uint8_t ccuid[DEVICE_CODE_LEN] = {0};
......@@ -168,11 +211,11 @@ int main(int argc, char* argv[])
struct sigaction sa;
/* setup alarm signal handler */
#ifdef CONFIG_NX5_PLATFORM
for(int i=1;i<32;i++){
signal(i, handler);
}
#endif
//signal(SIGPIPE, SIG_IGN);
......@@ -188,7 +231,7 @@ int main(int argc, char* argv[])
//debug_log(LOG_CRITICAL_LEVEL,"[%s]run singleton fail!\n",argv[0]);
//return -1;
//}
kk_lan_pid_init();
kk_lan_ccuid_init();
/*set the callback to get the device date to cloud*/
......@@ -197,8 +240,9 @@ int main(int argc, char* argv[])
kk_map_dev_init();
kk_login_init();
#ifdef VOICE_SUPPORT
kk_voice_panel_init(argc,argv);
#endif
//lan_queue_init();
kk_lan_db_node_init();
......
......@@ -3,7 +3,11 @@
#include "sqlite3.h"
#ifdef CONFIG_A133_PLATFORM
#define KK_LAN_NODE_DB_FILE "/data/local/kk/kk_lan_node.db"
#else
#define KK_LAN_NODE_DB_FILE "/data/kk/kk_lan_node.db"
#endif
typedef struct {
void *mutex;
......
......@@ -713,12 +713,12 @@ cJSON *kk_sync_ccu_version_to_sdk(cJSON *root,cJSON *data)
{
//todo:同步CCU版本信息
cJSON *ccu_version = cJSON_CreateObject();
cJSON *version = cJSON_GetObjectItem(data,"firmwareVersion");
if(version != NULL){
cJSON_AddStringToObject(ccu_version, "cur_ccu_version", version->valuestring);
}else{
cJSON_AddStringToObject(ccu_version, "cur_ccu_version", "1.0.0");
}
cJSON *version = cJSON_GetObjectItem(data,"firmwareVersion");
if(version != NULL){
cJSON_AddStringToObject(ccu_version, "cur_ccu_version", version->valuestring);
}else{
cJSON_AddStringToObject(ccu_version, "cur_ccu_version", "1.0.0");
}
cJSON_AddStringToObject(ccu_version, "downloaded_ccu_version", "1.0.0");
cJSON_AddItemToObject(root, "ccu_version", ccu_version);
......@@ -811,7 +811,7 @@ int kk_sync_guard_to_sdk(cJSON *root,cJSON *data)
int i,num;
cJSON *item = NULL;
char roomIdStr[16] = {0};
RoomIdsAry = cJSON_GetObjectItem(properties,"RoomIds");
RoomIdsAry = cJSON_GetObjectItem(properties,"ccuRoomIds");
if(RoomIdsAry==NULL||RoomIdsAry->type!=cJSON_Array){
return -1;
}
......
......@@ -13,7 +13,7 @@
#include "Serial.h"
#include "uart_proto.h"
#ifdef VOICE_SUPPORT
static pthread_mutex_t v_mux;
......@@ -503,7 +503,7 @@ int kk_voice_panel_init(int argc, char* argv[])
return 0;
}
#endif
......
......@@ -4,7 +4,7 @@
#include "cJSON.h"
#include "kk_voice_panel_cfg.h"
#include "kk_lan_sync.h"
#ifdef VOICE_SUPPORT
typedef cJSON *(*dev_handle_func)(int ep,uint8_t *arg,uint8_t arg_len,kk_map_dev_node_t *node);
typedef struct {
......@@ -1251,7 +1251,7 @@ int kk_lan_vp_control(uint8_t num,uint32_t nodeIdAry[],uint8_t *arg,uint8_t arg_
return err;
}
#endif
......
#include "kk_log.h"
#include "klist.h"
#include "kk_product.h"
#include "com_api.h"
#include "kk_opcode.h"
#include "kk_lan_ctrl.h"
#include "kk_data_mng.h"
#include "kk_newccu_msg.h"
#include "kk_product.h"
#include "kk_lan_node_db.h"
#include "kk_findccu_handle.h"
static pthread_mutex_t *mutex = NULL;
int kk_new_msg_init(void)
......@@ -89,10 +85,12 @@ extern int kk_lan_get_ccuid(_OU_ char *device_code);
cJSON *scene_payload_build(const char*method,const char *msgId,cJSON *params)
{
char ccuid[33] = {0};
char pid[33] = {0};
cJSON *payload=cJSON_CreateObject();
kk_lan_get_ccuid(ccuid);
cJSON_AddStringToObject(payload, "productCode",KK_CCU_PRODUCTID);
kk_lan_get_pid(pid);
cJSON_AddStringToObject(payload, "productCode",pid);
cJSON_AddStringToObject(payload, "deviceCode",ccuid);
cJSON_AddStringToObject(payload, "identity","executeScene");
......@@ -111,16 +109,18 @@ cJSON * scene_execute(const char *sceneId)
{
char msgId[32] = {0};
char ccuid[33] = {0};
char pid[33] = {0};
cJSON *root=cJSON_CreateObject();
cJSON *params=cJSON_CreateObject();
cJSON *info,*payload;
kk_lan_get_ccuid(ccuid);
kk_lan_get_pid(pid);
printf("[execute scene]sceneId=%s\n",sceneId);
kk_lan_get_msg_id_str(msgId,sizeof(msgId));
cJSON_AddStringToObject(params,"sceneId",sceneId);
info = property_info_build("/thing/service/executeScene",KK_CCU_PRODUCTID,ccuid);
info = property_info_build("/thing/service/executeScene",pid,ccuid);
payload = scene_payload_build("thing.service.executeScene",msgId,params);
cJSON_AddItemToObject(root,INFO_STRING,info);
......@@ -136,6 +136,7 @@ int kk_ipc_send_json(cJSON *root)
char *msg;
if(root==NULL){
//printf("----------------------------------------DEBUG-------------------------[%s][%d]\n",__FUNCTION__,__LINE__);
return -1;
}
......
......@@ -37,7 +37,7 @@
#define SWITCH_OPCODE "SWITCH"
#define GET_HISTORY_MSG_TYPE "/thing/service/historyAlarm"
#define DEL_HISTORY_MSG_TYPE "/thing/service/delAlarm"
#define GET_CCU_CLIENT_INFO "GET_CCU_CLIENT_INFO"
......
......@@ -3,15 +3,11 @@
#include <stdlib.h>
#include <string.h>
#include <pthread.h>
#include "kk_voice_panel_cfg.h"
#include "kk_ccu_msg.h"
#include "kk_lan_node_db.h"
#include "kk_voice_panel_handle.h"
#ifdef VOICE_SUPPORT
static _OUT int node_id_check(_IN cJSON *zbDevsAry,_IN const char *id);
......@@ -1250,7 +1246,7 @@ _OUT int kk_vp_syncinfo(_IN cJSON *payload,_IN int ver,_OUT cJSON **root)
return -1;
}
#endif
......
......@@ -12,6 +12,7 @@
#include "Serial.h"
#include "kk_oldccu_msg.h"
#include <ctype.h>
#ifdef VOICE_SUPPORT
#define MK_VERSION(x) ((*x<<24) | (*(x+1)<<16) | (*(x+2)<<8) | *(x+3))
#define MK_UINT32(x) ((*x<<24) | (*(x+1)<<16) | (*(x+2)<<8) | *(x+3))
......@@ -1930,7 +1931,7 @@ static void kk_voice_volume_handle(pro_data_t *pro_data)
int ver;
unsigned char status;
char vol[8] = {0};
if((err = pro_data->arg[0])==0) {
debug_log(LOG_DEBUG_LEVEL,"volume=%d\n",pro_data->arg[1]);
sprintf(vol,"%d",pro_data->arg[1]);
......@@ -1943,6 +1944,6 @@ static void kk_voice_volume_handle(pro_data_t *pro_data)
cJSON_Delete(root);
}
}
#endif
......@@ -2,10 +2,15 @@
#include <pthread.h>
#include "com_api.h"
#include "kk_log.h"
#ifdef CONFIG_A133_PLATFORM
#define APP2MID "ipc:///data/local/kk/etc/app2mid.ipc"
#define APP2MID_PUBSUB "ipc:///data/local/kk/etc/app2mid_pubsub.ipc"
#define PLAT2MID "ipc:///data/local/kk/etc/plat2mid.ipc"
#else
#define APP2MID "ipc:///tmp/app2mid.ipc"
#define APP2MID_PUBSUB "ipc:///tmp/app2mid_pubsub.ipc"
#define PLAT2MID "ipc:///tmp/plat2mid.ipc"
#endif
//#define GW2CCU_PIPE "tcp://%s:5555"
//#define GW2CCU_PUBSUB "tcp://%s:5557"
#define GW2CCU_PIPE "tcp://%s:35567"
......
......@@ -39,10 +39,12 @@ typedef enum {
#define MSG_INFO_STR "info"
#define MSG_INDENTIFIER_STR "identifier"
#define MSG_DATA_TYPE_STR "dataType"
#define MSG_DEVICE_IP "ip"
#define MSG_DEVICE_VERSION "version"
#define MSG_DEVICE_SERIALID "serialId"
#define MSG_DEVICE_DEVICEINFO "deviceInfo"
#define MSG_DEVICE_TYPE "type"
#define MSG_DEVICE_EXPAND "expand"
#define MSG_PARAMS_STR "params"
#define MSG_IOTClOUDSTATE_STR "IOTCloudState"
#define MSG_TOPO_CHANGE_TYPE_STR "changeType"
......@@ -52,6 +54,8 @@ typedef enum {
#define MSG_AREA_ADDROOM_DEVICENAME "name"
#define MSG_AREA_ADDROOM_ROOMNAME "roomName"
#define MSG_AREA_ROOM_ROOMID "roomId"
#define MSG_AREA_ROOM_CCUROOMIDS "ccuRoomIds"
#define MSG_AREA_ROOM_CCUROOMID "ccuRoomId"
#define MSG_AREA_ROOM_EPNUM "epNum"
#define MSG_AREA_ROOM_ACTION "action"
#define MSG_AREA_ADDROOM_NOTIFICATION "addRoomNotification"
......@@ -146,6 +150,7 @@ typedef enum {
#define BUFFER_SIZE 1024
#define MAX_LISTEN_NUM 10
#define MAX_IP_LEN 16
#define KK_DEVICE_SCREEN_MAX_SUPPORT 8
//#ifndef DEVICE_CODE_LEN
//#define DEVICE_CODE_LEN 33
//#endif
......
......@@ -8,6 +8,9 @@ ifeq ($(CONFIG_MODEL),x86)
else ifeq ($(CONFIG_MODEL),nx5)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_nx5
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_nx5
else ifeq ($(CONFIG_MODEL),a133)
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg_a133
LDFLAGS += -L$(TOP_DIR)/common/ev -lev_a133
else
LDFLAGS += -L$(TOP_DIR)/common/nanomsg -lnanomsg
LDFLAGS += -L$(TOP_DIR)/common/ev -lev
......
#ifndef CURLINC_CURLVER_H
#define CURLINC_CURLVER_H
#ifndef __CURL_CURLVER_H
#define __CURL_CURLVER_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
......@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
......@@ -26,20 +26,20 @@
a script at release-time. This was made its own header file in 7.11.2 */
/* This is the global package copyright */
#define LIBCURL_COPYRIGHT "1996 - 2020 Daniel Stenberg, <daniel@haxx.se>."
#define LIBCURL_COPYRIGHT "1996 - 2019 Daniel Stenberg, <daniel@haxx.se>."
/* This is the version number of the libcurl package from which this header
file origins: */
#define LIBCURL_VERSION "7.72.0"
#define LIBCURL_VERSION "7.65.3"
/* The numeric version number is also available "in parts" by using these
defines: */
#define LIBCURL_VERSION_MAJOR 7
#define LIBCURL_VERSION_MINOR 72
#define LIBCURL_VERSION_PATCH 0
#define LIBCURL_VERSION_MINOR 65
#define LIBCURL_VERSION_PATCH 3
/* This is the numeric version of the libcurl version number, meant for easier
parsing and comparisons by programs. The LIBCURL_VERSION_NUM define will
parsing and comparions by programs. The LIBCURL_VERSION_NUM define will
always follow this syntax:
0xXXYYZZ
......@@ -57,7 +57,7 @@
CURL_VERSION_BITS() macro since curl's own configure script greps for it
and needs it to contain the full number.
*/
#define LIBCURL_VERSION_NUM 0x074800
#define LIBCURL_VERSION_NUM 0x074103
/*
* This is the date and time when the full source package was created. The
......@@ -68,10 +68,10 @@
*
* "2007-11-23"
*/
#define LIBCURL_TIMESTAMP "2020-08-27"
#define LIBCURL_TIMESTAMP "2019-07-19"
#define CURL_VERSION_BITS(x,y,z) ((x)<<16|(y)<<8|(z))
#define CURL_AT_LEAST_VERSION(x,y,z) \
(LIBCURL_VERSION_NUM >= CURL_VERSION_BITS(x, y, z))
#endif /* CURLINC_CURLVER_H */
#endif /* __CURL_CURLVER_H */
#ifndef CURLINC_EASY_H
#define CURLINC_EASY_H
#ifndef __CURL_EASY_H
#define __CURL_EASY_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
......@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
......@@ -25,17 +25,6 @@
extern "C" {
#endif
/* Flag bits in the curl_blob struct: */
#define CURL_BLOB_COPY 1 /* tell libcurl to copy the data */
#define CURL_BLOB_NOCOPY 0 /* tell libcurl to NOT copy the data */
struct curl_blob {
void *data;
size_t len;
unsigned int flags; /* bit 0 is defined, the rest are reserved and should be
left zeroes */
};
CURL_EXTERN CURL *curl_easy_init(void);
CURL_EXTERN CURLcode curl_easy_setopt(CURL *curl, CURLoption option, ...);
CURL_EXTERN CURLcode curl_easy_perform(CURL *curl);
......
#ifndef CURLINC_MPRINTF_H
#define CURLINC_MPRINTF_H
#ifndef __CURL_MPRINTF_H
#define __CURL_MPRINTF_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
......@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
......@@ -47,4 +47,4 @@ CURL_EXTERN char *curl_mvaprintf(const char *format, va_list args);
}
#endif
#endif /* CURLINC_MPRINTF_H */
#endif /* __CURL_MPRINTF_H */
#ifndef CURLINC_MULTI_H
#define CURLINC_MULTI_H
#ifndef __CURL_MULTI_H
#define __CURL_MULTI_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
......@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
......@@ -72,8 +72,6 @@ typedef enum {
attempted to get added - again */
CURLM_RECURSIVE_API_CALL, /* an api function was called from inside a
callback */
CURLM_WAKEUP_FAILURE, /* wakeup is unavailable or failed */
CURLM_BAD_FUNCTION_ARGUMENT, /* function called with a bad parameter */
CURLM_LAST
} CURLMcode;
......@@ -156,9 +154,9 @@ CURL_EXTERN CURLMcode curl_multi_remove_handle(CURLM *multi_handle,
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN CURLMcode curl_multi_fdset(CURLM *multi_handle,
curl_fd_set *read_fd_set,
curl_fd_set *write_fd_set,
curl_fd_set *exc_fd_set,
fd_set *read_fd_set,
fd_set *write_fd_set,
fd_set *exc_fd_set,
int *max_fd);
/*
......@@ -175,29 +173,6 @@ CURL_EXTERN CURLMcode curl_multi_wait(CURLM *multi_handle,
int timeout_ms,
int *ret);
/*
* Name: curl_multi_poll()
*
* Desc: Poll on all fds within a CURLM set as well as any
* additional fds passed to the function.
*
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN CURLMcode curl_multi_poll(CURLM *multi_handle,
struct curl_waitfd extra_fds[],
unsigned int extra_nfds,
int timeout_ms,
int *ret);
/*
* Name: curl_multi_wakeup()
*
* Desc: wakes up a sleeping curl_multi_poll call.
*
* Returns: CURLMcode type, general multi error code.
*/
CURL_EXTERN CURLMcode curl_multi_wakeup(CURLM *multi_handle);
/*
* Name: curl_multi_perform()
*
......@@ -267,7 +242,7 @@ CURL_EXTERN CURLMsg *curl_multi_info_read(CURLM *multi_handle,
* value into the equivalent human readable error string. This is
* useful for printing meaningful error messages.
*
* Returns: A pointer to a null-terminated error message.
* Returns: A pointer to a zero-terminated error message.
*/
CURL_EXTERN const char *curl_multi_strerror(CURLMcode);
......@@ -344,56 +319,68 @@ CURL_EXTERN CURLMcode curl_multi_socket_all(CURLM *multi_handle,
CURL_EXTERN CURLMcode curl_multi_timeout(CURLM *multi_handle,
long *milliseconds);
#undef CINIT /* re-using the same name as in curl.h */
#ifdef CURL_ISOCPP
#define CINIT(name,type,num) CURLMOPT_ ## name = CURLOPTTYPE_ ## type + num
#else
/* The macro "##" is ISO C, we assume pre-ISO C doesn't support it. */
#define LONG CURLOPTTYPE_LONG
#define OBJECTPOINT CURLOPTTYPE_OBJECTPOINT
#define FUNCTIONPOINT CURLOPTTYPE_FUNCTIONPOINT
#define OFF_T CURLOPTTYPE_OFF_T
#define CINIT(name,type,number) CURLMOPT_/**/name = type + number
#endif
typedef enum {
/* This is the socket callback function pointer */
CURLOPT(CURLMOPT_SOCKETFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 1),
CINIT(SOCKETFUNCTION, FUNCTIONPOINT, 1),
/* This is the argument passed to the socket callback */
CURLOPT(CURLMOPT_SOCKETDATA, CURLOPTTYPE_OBJECTPOINT, 2),
CINIT(SOCKETDATA, OBJECTPOINT, 2),
/* set to 1 to enable pipelining for this multi handle */
CURLOPT(CURLMOPT_PIPELINING, CURLOPTTYPE_LONG, 3),
CINIT(PIPELINING, LONG, 3),
/* This is the timer callback function pointer */
CURLOPT(CURLMOPT_TIMERFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 4),
CINIT(TIMERFUNCTION, FUNCTIONPOINT, 4),
/* This is the argument passed to the timer callback */
CURLOPT(CURLMOPT_TIMERDATA, CURLOPTTYPE_OBJECTPOINT, 5),
CINIT(TIMERDATA, OBJECTPOINT, 5),
/* maximum number of entries in the connection cache */
CURLOPT(CURLMOPT_MAXCONNECTS, CURLOPTTYPE_LONG, 6),
CINIT(MAXCONNECTS, LONG, 6),
/* maximum number of (pipelining) connections to one host */
CURLOPT(CURLMOPT_MAX_HOST_CONNECTIONS, CURLOPTTYPE_LONG, 7),
CINIT(MAX_HOST_CONNECTIONS, LONG, 7),
/* maximum number of requests in a pipeline */
CURLOPT(CURLMOPT_MAX_PIPELINE_LENGTH, CURLOPTTYPE_LONG, 8),
CINIT(MAX_PIPELINE_LENGTH, LONG, 8),
/* a connection with a content-length longer than this
will not be considered for pipelining */
CURLOPT(CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE, CURLOPTTYPE_OFF_T, 9),
CINIT(CONTENT_LENGTH_PENALTY_SIZE, OFF_T, 9),
/* a connection with a chunk length longer than this
will not be considered for pipelining */
CURLOPT(CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE, CURLOPTTYPE_OFF_T, 10),
CINIT(CHUNK_LENGTH_PENALTY_SIZE, OFF_T, 10),
/* a list of site names(+port) that are blocked from pipelining */
CURLOPT(CURLMOPT_PIPELINING_SITE_BL, CURLOPTTYPE_OBJECTPOINT, 11),
/* a list of site names(+port) that are blacklisted from
pipelining */
CINIT(PIPELINING_SITE_BL, OBJECTPOINT, 11),
/* a list of server types that are blocked from pipelining */
CURLOPT(CURLMOPT_PIPELINING_SERVER_BL, CURLOPTTYPE_OBJECTPOINT, 12),
/* a list of server types that are blacklisted from
pipelining */
CINIT(PIPELINING_SERVER_BL, OBJECTPOINT, 12),
/* maximum number of open connections in total */
CURLOPT(CURLMOPT_MAX_TOTAL_CONNECTIONS, CURLOPTTYPE_LONG, 13),
CINIT(MAX_TOTAL_CONNECTIONS, LONG, 13),
/* This is the server push callback function pointer */
CURLOPT(CURLMOPT_PUSHFUNCTION, CURLOPTTYPE_FUNCTIONPOINT, 14),
CINIT(PUSHFUNCTION, FUNCTIONPOINT, 14),
/* This is the argument passed to the server push callback */
CURLOPT(CURLMOPT_PUSHDATA, CURLOPTTYPE_OBJECTPOINT, 15),
/* maximum number of concurrent streams to support on a connection */
CURLOPT(CURLMOPT_MAX_CONCURRENT_STREAMS, CURLOPTTYPE_LONG, 16),
CINIT(PUSHDATA, OBJECTPOINT, 15),
CURLMOPT_LASTENTRY /* the last unused */
} CURLMoption;
......@@ -427,14 +414,12 @@ CURL_EXTERN CURLMcode curl_multi_assign(CURLM *multi_handle,
* Name: curl_push_callback
*
* Desc: This callback gets called when a new stream is being pushed by the
* server. It approves or denies the new stream. It can also decide
* to completely fail the connection.
* server. It approves or denies the new stream.
*
* Returns: CURL_PUSH_OK, CURL_PUSH_DENY or CURL_PUSH_ERROROUT
* Returns: CURL_PUSH_OK or CURL_PUSH_DENY.
*/
#define CURL_PUSH_OK 0
#define CURL_PUSH_DENY 1
#define CURL_PUSH_ERROROUT 2 /* added in 7.72.0 */
#define CURL_PUSH_OK 0
#define CURL_PUSH_DENY 1
struct curl_pushheaders; /* forward declaration only */
......
#ifndef CURLINC_STDCHEADERS_H
#define CURLINC_STDCHEADERS_H
#ifndef __STDC_HEADERS_H
#define __STDC_HEADERS_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
......@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2016, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
......@@ -30,4 +30,4 @@ size_t fwrite(const void *, size_t, size_t, FILE *);
int strcasecmp(const char *, const char *);
int strncasecmp(const char *, const char *, size_t);
#endif /* CURLINC_STDCHEADERS_H */
#endif /* __STDC_HEADERS_H */
#ifndef CURLINC_SYSTEM_H
#define CURLINC_SYSTEM_H
#ifndef __CURL_SYSTEM_H
#define __CURL_SYSTEM_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
......@@ -7,7 +7,7 @@
* | (__| |_| | _ <| |___
* \___|\___/|_| \_\_____|
*
* Copyright (C) 1998 - 2019, Daniel Stenberg, <daniel@haxx.se>, et al.
* Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
*
* This software is licensed as described in the file COPYING, which
* you should have received as part of this distribution. The terms
......@@ -137,26 +137,15 @@
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__LCC__)
# if defined(__e2k__) /* MCST eLbrus C Compiler */
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# define CURL_TYPEOF_CURL_SOCKLEN_T socklen_t
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
# else /* Local (or Little) C Compiler */
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# define CURL_TYPEOF_CURL_SOCKLEN_T int
# endif
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__SYMBIAN32__)
# if defined(__EABI__) /* Treat all ARM compilers equally */
# if defined(__EABI__) /* Treat all ARM compilers equally */
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
......@@ -299,6 +288,7 @@
# define CURL_TYPEOF_CURL_SOCKLEN_T int
#elif defined(__TINYC__) /* also known as tcc */
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
......@@ -348,48 +338,6 @@
# define CURL_PULL_SYS_TYPES_H 1
# define CURL_PULL_SYS_SOCKET_H 1
#elif defined(FreeRTOS) /* Life on FreeRTOS */
#if (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \
(defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
#else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_FREERTOS_SOCKETS_H 1
# define CURL_TYPEOF_CURL_SOCKLEN_T uint32_t
# define CURL_AVOID_SYS_TYPES_H 1
# define CURL_AVOID_SYS_SOCKET_H 1
#elif defined(MICRIUM)
#if (defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 4) || \
(defined(__LONG_MAX__) && __LONG_MAX__ == 2147483647L)
# define CURL_TYPEOF_CURL_OFF_T long long
# define CURL_FORMAT_CURL_OFF_T "lld"
# define CURL_FORMAT_CURL_OFF_TU "llu"
# define CURL_SUFFIX_CURL_OFF_T LL
# define CURL_SUFFIX_CURL_OFF_TU ULL
#else
# define CURL_TYPEOF_CURL_OFF_T long
# define CURL_FORMAT_CURL_OFF_T "ld"
# define CURL_FORMAT_CURL_OFF_TU "lu"
# define CURL_SUFFIX_CURL_OFF_T L
# define CURL_SUFFIX_CURL_OFF_TU UL
# endif
# define CURL_TYPEOF_CURL_SOCKLEN_T CPU_INT32S
# define CURL_AVOID_SYS_TYPES_H 1
# define CURL_AVOID_SYS_SOCKET_H 1
# define CURL_AVOID_SYS_TIME_H 1
/* ===================================== */
/* KEEP MSVC THE PENULTIMATE ENTRY */
/* ===================================== */
......@@ -429,7 +377,6 @@
# define CURL_SUFFIX_CURL_OFF_TU ULL
# elif defined(__LP64__) || \
defined(__x86_64__) || defined(__ppc64__) || defined(__sparc64__) || \
defined(__e2k__) || \
(defined(__SIZEOF_LONG__) && __SIZEOF_LONG__ == 8) || \
(defined(__LONG_MAX__) && __LONG_MAX__ == 9223372036854775807L)
# define CURL_TYPEOF_CURL_OFF_T long
......@@ -472,40 +419,6 @@
# include <sys/types.h>
#endif
#ifdef CURL_FREERTOS_SOCKETS_H
# include <FreeRTOS.h>
# include <FreeRTOS_Sockets.h>
#include <stdint.h>
#include <stddef.h>
/* for the base type etc */
#include "portmacro.h"
#define curl_fd_set_typedefed
typedef SocketSet_t curl_fd_set;
#define curl_struct_sockaddr freertos_sockaddr
#define curl_setsockopt(a,b,c,d,e) FreeRTOS_setsockopt(a,b,c,d,e)
#define curl_connect(a,b,c) FreeRTOS_connect(a,b,c)
#define curl_bind(a,b,c) FreeRTOS_bind(a,b,c)
#define curl_recv(a,b,c,d) FreeRTOS_recv(a,b,c,d)
#define curl_socket(a,b,c) FreeRTOS_socket(a,b,c)
/* not quite socket-style API */
#define CURL_FD_SET(a,b,c) FreeRTOS_FD_SET(a,b,c)
/* struct sockaddr "fix" */
#define sa_family sin_family
/* use our private pollfd struct alternative */
#define curl_pollfd curl_waitfd
#elif defined(MICRIUM)
#include <net/include/net_bsd.h>
/* make use of the types from net_bsd.h */
typedef _size_t size_t;
typedef _time_t time_t;
#define curl_fd_set_typedefed
typedef struct fd_set curl_fd_set;
#endif
/* CURL_PULL_SYS_SOCKET_H is defined above when inclusion of header file */
/* sys/socket.h is required here to properly make type definitions below. */
#ifdef CURL_PULL_SYS_SOCKET_H
......@@ -555,58 +468,26 @@ typedef struct fd_set curl_fd_set;
#undef CURL_ISOCPP
#endif
/*
* For the standard systems
*/
#ifndef curl_struct_sockaddr
#define curl_struct_sockaddr sockaddr
#endif
#ifndef curl_fd_set_typedefed
#define curl_fd_set_typedefed
typedef fd_set curl_fd_set;
#endif
#ifndef curl_pollfd
#define curl_pollfd pollfd
#endif
#ifndef curl_setsockopt
#define curl_setsockopt(a,b,c,d,e) setsockopt(a,b,c,d,e)
#endif
#ifndef curl_bind
#define curl_bind(a,b,c) bind(a,b,c)
#endif
#ifndef curl_connect
#define curl_connect(a,b,c) connect(a,b,c)
#endif
#ifndef curl_recv
#define curl_recv(a,b,c,d) recv(a,b,c,d)
#endif
#ifndef curl_socket
#define curl_socket(a,b,c) socket(a,b,c)
#endif
#ifndef CURL_FD_SET
#define CURL_FD_SET(a,b,c) FD_SET(a,b)
#endif
/*
* Macros for minimum-width signed and unsigned curl_off_t integer constants.
*/
#if defined(__BORLANDC__) && (__BORLANDC__ == 0x0551)
# define CURLINC_OFF_T_C_HLPR2(x) x
# define CURLINC_OFF_T_C_HLPR1(x) CURLINC_OFF_T_C_HLPR2(x)
# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T)
# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val) ## \
CURLINC_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU)
# define __CURL_OFF_T_C_HLPR2(x) x
# define __CURL_OFF_T_C_HLPR1(x) __CURL_OFF_T_C_HLPR2(x)
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_T)
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val) ## \
__CURL_OFF_T_C_HLPR1(CURL_SUFFIX_CURL_OFF_TU)
#else
# ifdef CURL_ISOCPP
# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val ## Suffix
# else
# define CURLINC_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix
# define __CURL_OFF_T_C_HLPR2(Val,Suffix) Val/**/Suffix
# endif
# define CURLINC_OFF_T_C_HLPR1(Val,Suffix) CURLINC_OFF_T_C_HLPR2(Val,Suffix)
# define CURL_OFF_T_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T)
# define CURL_OFF_TU_C(Val) CURLINC_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU)
# define __CURL_OFF_T_C_HLPR1(Val,Suffix) __CURL_OFF_T_C_HLPR2(Val,Suffix)
# define CURL_OFF_T_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_T)
# define CURL_OFF_TU_C(Val) __CURL_OFF_T_C_HLPR1(Val,CURL_SUFFIX_CURL_OFF_TU)
#endif
#endif /* CURLINC_SYSTEM_H */
#endif /* __CURL_SYSTEM_H */
#ifndef CURLINC_URLAPI_H
#define CURLINC_URLAPI_H
#ifndef __CURL_URLAPI_H
#define __CURL_URLAPI_H
/***************************************************************************
* _ _ ____ _
* Project ___| | | | _ \| |
......@@ -77,8 +77,6 @@ typedef enum {
#define CURLU_URLENCODE (1<<7) /* URL encode on set */
#define CURLU_APPENDQUERY (1<<8) /* append a form style part */
#define CURLU_GUESS_SCHEME (1<<9) /* legacy curl-style guessing */
#define CURLU_NO_AUTHORITY (1<<10) /* Allow empty authority when the
scheme is unknown. */
typedef struct Curl_URL CURLU;
......@@ -122,4 +120,4 @@ CURL_EXTERN CURLUcode curl_url_set(CURLU *handle, CURLUPart what,
} /* end of extern "C" */
#endif
#endif /* CURLINC_URLAPI_H */
#endif
......@@ -273,27 +273,6 @@ int HAL_SetProduct_Type(_IN_ char *product_type)
return len;
}
int HAL_SetProduct_Code(_IN_ char *product_code)
{
int len = strlen(product_code);
if (len > PRODUCT_CODE_LEN) {
return -1;
}
memset(g_product_code, 0x0, PRODUCT_CODE_LEN);
strncpy(g_product_code, product_code, len);
return len;
}
int HAL_GetProduct_Code(_OU_ char *product_code)
{
strncpy(product_code, KK_CCU_PRODUCTID, strlen(KK_CCU_PRODUCTID));
product_code[strlen(KK_CCU_PRODUCTID)] = '\0';
return strlen(KK_CCU_PRODUCTID);
}
/*
* This need to be same with app version as in uOTA module (ota_version.h)
......@@ -392,7 +371,11 @@ void HAL_ThreadDelete(_IN_ void *thread_handle)
pthread_exit(0);
} else {
/*main thread delete child thread*/
#ifdef CONFIG_A133_PLATFORM
pthread_kill((pthread_t)thread_handle,SIGALRM);
#else
pthread_cancel((pthread_t)thread_handle);
#endif
pthread_join((pthread_t)thread_handle, 0);
}
}
......
......@@ -55,7 +55,11 @@ uintptr_t HAL_TCP_Establish(const char *host, uint16_t port)
hints.ai_family = AF_INET; /* only IPv4 */
hints.ai_socktype = SOCK_STREAM;
#ifdef CONFIG_A133_PLATFORM
hints.ai_protocol = 0;
#else
hints.ai_protocol = IPPROTO_TCP;
#endif
sprintf(service, "%u", port);
while(dns_retry++ < 8) {
......
......@@ -2,6 +2,7 @@
#ifndef __KK_HAL_H__
#define __KK_HAL_H__
#include <stdio.h>
#include <stdarg.h>
#include <sys/time.h>
#include <time.h>
#include "kk_product.h"
......@@ -42,8 +43,6 @@ int HAL_Get_SN(char sn[SN_ADDR_LEN]);
int HAL_Execel_cmd(char * cmd,char * buf,int buf_len,int* ret_len);
int HAL_SetProduct_Type(_IN_ char *product_type);
int HAL_SetProduct_Code(_IN_ char *product_code);
int HAL_GetProduct_Code(_OU_ char *product_code);
void HAL_Firmware_Persistence_Start(void* fileName);
int HAL_Firmware_Persistence_Write(_IN_ char *buffer, _IN_ uint32_t length);
int HAL_Firmware_Persistence_Stop(void);
......
......@@ -29,15 +29,35 @@
#define SN_ADDR_LEN (32+1)
#define PRODUCT_TPYE "kk"
#define CCU_LAN "eth0"
#define KK_CCU_ID "CCU_77771"
#define KK_CCU_PRODUCTID "ccu_n12"
#define KK_GW_PRODUCTID "gateway_2"
#define KK_CCU_RANDOM "0000000000"
#define KK_CCU_NAME "NEW_CCU"
#ifdef CONFIG_A133_PLATFORM
#define KK_DEVICESECRET_PATH "/data/local/kk/kk_deviceSecret.txt"
#define KK_TOKEN_PATH "/data/local/kk/kk_token.txt"
#define KK_DEVICE_MAP_FILE_PATH "/data/local/kk/map/device_%s.json"
#define GET_CCUID_CMD "getprop ro.ccuinfo"
#define GET_KEY_CMD "getprop ro.ccuinfo"
#define KK_DB_FILE "/data/local/kk/etc/kk_database.db"
#define TSL_SUBDEVICE_PATH_FILE "/data/local/kk/tsl/product_%s.json"
#define TSL_GATEWAY_PATH_FILE "/data/local/kk/tsl/gateway_%s.json"
#define TSL_CCU_PATH_FILE "/data/local/kk/tsl/ccu_%s.json"
#define TSL_SCENE_PATH_FILE "/data/local/kk/tsl/ccu_%s_scene.json"
#define OTA_IMG_PATH "/data/local/OTA/"
#define OTA_IMG_FILE "/data/local/OTA/app_squashfs.img"
#define OTA_IMG_FILE_MD5 "/data/local/OTA/app_squashfs.img.md5"
#define KK_CONFIG_FILE_PATH "/data/local/kk/kk_cloud_conf.json"
#define KK_DEFAULT_CONFIG_FILE_PATH "/data/local/kk/cloud_default_config.json"
#define KK_AUTH_CONFIG_FILE_PATH "/data/local/kk/auth_conf.json"
#else
#define KK_DEVICESECRET_PATH "/data/kk/kk_deviceSecret.txt"
#define KK_TOKEN_PATH "/data/kk/kk_token.txt"
#define KK_DEVICE_MAP_FILE_PATH "/data/kk/map/device_%s.json"
#define GET_CCUID_CMD "fw_printenv uuid -n"
#define GET_KEY_CMD "fw_printenv key -n"
#define GET_PRODUCTID_CMD "fw_printenv pid -n"
#define KK_DB_FILE "/data/kk/kk_database.db"
#define TSL_SUBDEVICE_PATH_FILE "/data/kk/tsl/product_%s.json"
#define TSL_GATEWAY_PATH_FILE "/data/kk/tsl/gateway_%s.json"
......@@ -46,8 +66,11 @@
#define OTA_IMG_PATH "/data/OTA/"
#define OTA_IMG_FILE "/data/OTA/app_squashfs.img"
#define OTA_IMG_FILE_MD5 "/data/OTA/app_squashfs.img.md5"
#define KK_DEVICESECRET_PATH "/data/kk/kk_deviceSecret.txt"
#define KK_TOKEN_PATH "/data/kk/kk_token.txt"
#define KK_CONFIG_FILE_PATH "/data/kk/kk_cloud_conf.json"
#define KK_DEFAULT_CONFIG_FILE_PATH "/app/ccuApps/config/cloud_default_config.json"
#define KK_AUTH_CONFIG_FILE_PATH "/tmp/auth_conf.json"
#endif
enum {
DEVICE_OFFLINE = 0,
DEVICE_ONLINE,
......
{
"lsc_entry": {
"port": 8079,
"proto": "tcp",
"host": "ddc.cloud.hijaytech.com"
},
"rsyslog_entry": {
"port": 514,
"host": "120.55.149.201"
},
"mqtt_entry": {
"port": 1883,
"proto": "tcp",
"host": "hub-mqtt.iot.ikonke.com"
},
"biz_entry": {
"port": 4481,
"proto": "https",
"host": "smarthome.ikonke.com"
},
"iot_ops_entry": {
"port": 8750,
"proto": "https",
"host": "iot-ops.ikonke.com"
},
"ops_entry": {
"port": 8563,
"proto": "https",
"host": "dev.ismartflat.com"
},
"mqtt_auth_entry": {
"port": 4436,
"proto": "https",
"host": "auth-iot.ikonke.com"
},
"ccu_upgrade_entry": {
"host": "upgrade.cloud.hijaytech.com"
}
}
\ No newline at end of file
......@@ -6,7 +6,7 @@
#include "cJSON.h"
#include "kk_dm_api.h"
#include "kk_dm_msg.h"
#include <curl/curl.h>
#include "../../common/curl/include/curl/curl.h"
#include "com_api.h"
#include "kk_log.h"
#include "kk_hal.h"
......@@ -24,7 +24,7 @@ int dm_ota_init(void)
dm_ota_ctx_t *ctx = _dm_ota_get_ctx();
memset(ctx, 0, sizeof(dm_ota_ctx_t));
HAL_GetProduct_Code(ctx->deviceCode);
kk_get_pid(ctx->deviceCode);
return SUCCESS_RETURN;
}
......@@ -186,7 +186,7 @@ int kk_publishProgress(int process,int state)
char productCode[PRODUCT_CODE_LEN] = {0};
char ccuID[PRODUCT_CODE_LEN] = {0};
char msgId[MSG_MAX_LEN] = {0};
HAL_GetProduct_Code(productCode);
kk_get_pid(productCode);
HAL_Get_ccuid(ccuID);
iotx_report_id(msgId);
cJSON *info = cJSON_CreateObject();
......
......@@ -594,6 +594,51 @@ static void _dm_mgr_destroy_devlist(void)
free(del_node);
}
}
char s_pid[PRODUCT_CODE_LEN] = {0};
static int kk_pid_init(void)
{
#ifdef CONFIG_A133_PLATFORM
uint8_t data[128] = {0};
int data_len = 0;
char *pstart = NULL;
char *pEnd = NULL;
HAL_Execel_cmd(GET_CCUID_CMD,(char *)data,sizeof(data),&data_len);
printf("---GET_CCUID_CMD:%s\n",data);
if(data_len > 0 && data_len <= 128){
pstart = data;
pEnd = strstr(data,"pid_");
if(pstart != NULL && pEnd != NULL){
memcpy(s_pid,pEnd+4,data_len-1-(pEnd-pstart+4));
INFO_PRINT("kk_cloud_pid_init s_pid:%s\n",s_pid);
}else{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT("KK_Ccuid_init get ccuid error\n");
return -1;
}
}else{
//_setDevice_Code(KK_CCU_ID,strlen(KK_CCU_ID));
INFO_PRINT("KK_Ccuid_init get ccuid error\n");
return -1;
}
#else
char pid[PRODUCT_CODE_LEN] = {0};
int pid_len = 0;
HAL_Execel_cmd(GET_PRODUCTID_CMD,(char *)pid,sizeof(pid),&pid_len);
if(pid_len > 0 && pid_len <= PRODUCT_CODE_LEN){
memcpy(s_pid,pid,pid_len-1);
INFO_PRINT("s_pid:%s\n",s_pid);
}else{
return -1;
}
#endif
return 0;
}
int kk_get_pid(char *productId)
{
strncpy(productId, s_pid, strlen(s_pid));
printf("kk_lan_get_ccuid:%s\n",s_pid);
return strlen(s_pid);
}
extern char *kk_sync_get_info();
int dm_mgr_init(void)
{
......@@ -614,12 +659,13 @@ int dm_mgr_init(void)
ctx->global_devid = 1;
kk_property_db_init();
HAL_Get_ccuid(ccuid);
kk_pid_init();
/* Init Device List */
INIT_LIST_HEAD(&ctx->dev_list);
HAL_Get_mac(mac);
kk_sync_init();
//kk_sync_get_info();
res = dm_mgr_device_create(KK_DM_DEVICE_CCU,KK_DM_CCU_DEVICE_PRODUCT_CODE,ccuid,mac,"",KK_DEV_UNKNOW,&devId,&heartbeat);
res = dm_mgr_device_create(KK_DM_DEVICE_CCU,s_pid,ccuid,mac,"",KK_DEV_UNKNOW,&devId,&heartbeat);
if (res != SUCCESS_RETURN) {
goto ERROR;
}
......@@ -1687,6 +1733,9 @@ int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN])
if(strcmp(node->productType,KK_DM_AIR_SWITCH_GATEWAY_TYPE) == 0){
kk_subAirSwitch_delete_by_dcode(deviceCode);
}
if(strcmp(node->productType,KK_DM_FRESHAIR_GATEWAY_TYPE) == 0){
kk_subFreshAir_delete_by_dcode(deviceCode);
}
if(node->dev_type == KK_DM_DEVICE_CCU){
ERROR_PRINT("ERROR [%s][%d]\n",__FUNCTION__,__LINE__);
return FAIL_RETURN;
......
......@@ -12,11 +12,11 @@
#define KK_MID_SYNC_DEFAULT_TIMEOUT_MS (200)
#define IDENTIFY_MAXLEN (64 + 1)
#define KK_DM_CCU_DEVICE_PRODUCT_TYPE "ccu"
#define KK_DM_CCU_DEVICE_PRODUCT_CODE KK_CCU_PRODUCTID
#define KK_DM_GW_DEVICE_PRODUCT_TYPE "gw"
#define KK_DM_GW_DEVICE_PRODUCT_CODE "2"
#define KK_DM_AIR_GATEWAY_TYPE "air conditioning gateway"
#define KK_DM_AIR_SWITCH_GATEWAY_TYPE "airswitch gateway"
#define KK_DM_FRESHAIR_GATEWAY_TYPE "freshAir Gateway"
#define KK_DM_DEVICE_CCU_DEVICEID (0x00)
#define MSG_MAX_LEN (64)
......@@ -123,5 +123,6 @@ int dm_mgr_subdev_create(int devtype,_IN_ char productCode[PRODUCT_CODE_MAXLEN],
int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN]);
int dm_msg_thing_property_post_all(char *deviceCode);
int dm_mgr_get_gw_deviceCode(_OU_ dm_mgr_dev_node_t **node);
void dm_mgr_resubscribe(void);
void dm_mgr_resubscribe(void);
int kk_get_pid(char *productId);
#endif
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
{
"productCode":"3094",
"operateType":"512",
"operateType":"501",
"channel":1,
"syn_type":1,
"syn_opcode":"DIMMABLE_LIGHT_STATUS",
......
This diff is collapsed.
......@@ -4,7 +4,7 @@
ccuApps="/app/ccuApps"
restart_process()
{
$ccuApps/killall.sh
$ccuApps/script/killall.sh
$ccuApps/onboot.sh
}
PIDS=`ps|grep kk_midware |grep -v grep | awk '{print $1}'`
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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