Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
k-sdk
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈伟灿
k-sdk
Commits
6a2ebf0e
Commit
6a2ebf0e
authored
Apr 01, 2022
by
陈伟灿
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'cwc' into 'master'
【修改内容】1,增加SOS取消报警的下发 See merge request chenweican/k-sdk!219
parents
11f453c2
e51f3ec5
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
139 additions
and
81 deletions
+139
-81
application/klansdk/kk_lan_ctrl.c
application/klansdk/kk_lan_ctrl.c
+66
-1
application/klansdk/kk_lan_node_db.c
application/klansdk/kk_lan_node_db.c
+3
-2
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+18
-2
midware/midware/dm/kk_property_get_handle.c
midware/midware/dm/kk_property_get_handle.c
+0
-75
midware/midware/dm/kk_sub_db.c
midware/midware/dm/kk_sub_db.c
+49
-0
midware/midware/dm/kk_sub_db.h
midware/midware/dm/kk_sub_db.h
+1
-0
midware/tsl/tsl_handle/kk_tsl_common.h
midware/tsl/tsl_handle/kk_tsl_common.h
+2
-1
No files found.
application/klansdk/kk_lan_ctrl.c
View file @
6a2ebf0e
...
...
@@ -341,6 +341,69 @@ int kk_lan_ctrl_ack(cJSON * nodeId,cJSON * opcode,cJSON * arg)
return
0
;
}
static
int
kk_get_node_args_handle
(
cJSON
*
arg
)
{
cJSON
*
root
,
*
argAck
,
*
app_args
,
*
item
,
*
app_mode
,
*
itemMode
;
char
deviceCode
[
33
]
=
{
0
};
int
ret
=
0
;
kk_map_dev_node_t
*
dev
;
if
(
arg
==
NULL
){
return
-
1
;
}
cJSON
*
nodeId
=
cJSON_GetObjectItem
(
arg
,
"node_id"
);
if
(
nodeId
==
NULL
){
return
-
1
;
}
cJSON
*
operateId
=
cJSON_GetObjectItem
(
arg
,
"operate_id"
);
if
(
operateId
==
NULL
){
return
-
1
;
}
ret
=
kk_lan_db_deviceCode_get
(
nodeId
->
valueint
,
deviceCode
);
if
(
ret
!=
0
){
return
-
1
;
}
app_mode
=
cJSON_CreateArray
();
itemMode
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
itemMode
,
"name"
,
"明亮模式"
);
cJSON_AddNumberToObject
(
itemMode
,
"brightness"
,
100
);
cJSON_AddNumberToObject
(
itemMode
,
"color_temp"
,
100
);
cJSON_AddItemToArray
(
app_mode
,
itemMode
);
itemMode
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
itemMode
,
"name"
,
"黄昏模式"
);
cJSON_AddNumberToObject
(
itemMode
,
"brightness"
,
30
);
cJSON_AddNumberToObject
(
itemMode
,
"color_temp"
,
10
);
cJSON_AddItemToArray
(
app_mode
,
itemMode
);
itemMode
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
itemMode
,
"name"
,
"月光模式"
);
cJSON_AddNumberToObject
(
itemMode
,
"brightness"
,
10
);
cJSON_AddNumberToObject
(
itemMode
,
"color_temp"
,
80
);
cJSON_AddItemToArray
(
app_mode
,
itemMode
);
itemMode
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
itemMode
,
"name"
,
"清晨模式"
);
cJSON_AddNumberToObject
(
itemMode
,
"brightness"
,
80
);
cJSON_AddNumberToObject
(
itemMode
,
"color_temp"
,
60
);
cJSON_AddItemToArray
(
app_mode
,
itemMode
);
app_args
=
cJSON_CreateArray
();
item
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
item
,
"arg_type"
,
"shortcut_modes"
);
cJSON_AddItemToObject
(
item
,
"arg"
,
app_mode
);
cJSON_AddItemToArray
(
app_args
,
item
);
argAck
=
cJSON_CreateObject
();
cJSON_AddNumberToObject
(
argAck
,
"node_id"
,
nodeId
->
valueint
);
cJSON_AddNumberToObject
(
argAck
,
"operate_id"
,
operateId
->
valueint
);
cJSON_AddItemToObject
(
argAck
,
"app_args"
,
app_args
);
root
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
root
,
"nodeid"
,
"*"
);
cJSON_AddStringToObject
(
root
,
"opcode"
,
"GET_NODE_APP_ARGS"
);
cJSON_AddStringToObject
(
root
,
"status"
,
"success"
);
cJSON_AddItemToObject
(
root
,
"arg"
,
argAck
);
send_msg_to_module
(
root
);
cJSON_Delete
(
root
);
return
0
;
}
int
kk_ccu_opcode_handle
(
cJSON
*
root
)
{
cJSON
*
msg
;
...
...
@@ -364,7 +427,7 @@ int kk_ccu_opcode_handle(cJSON *root)
return
-
1
;
}
if
(
requester
!=
NULL
){
WARNING_PRINT
(
"[
requester]%s
\n
"
,
requester
->
valuestring
);
WARNING_PRINT
(
"[
opcode]%s[requester]%s
\n
"
,
opcode
->
valuestring
,
requester
->
valuestring
);
if
(
strcmp
(
requester
->
valuestring
,
"HJ_CentralAC"
)
==
0
&&
strcmp
(
opcode
->
valuestring
,
"CENTRAL_AC_INDOOR_UNIT_SETTING"
)
==
0
){
int
channel
=
-
1
;
...
...
@@ -391,6 +454,8 @@ int kk_ccu_opcode_handle(cJSON *root)
kk_get_client_info_handle
(
arg
);
return
0
;
}
}
else
if
(
strcmp
(
opcode
->
valuestring
,
"GET_NODE_APP_ARGS"
)
==
0
){
kk_get_node_args_handle
(
arg
);
}
}
...
...
application/klansdk/kk_lan_node_db.c
View file @
6a2ebf0e
...
...
@@ -353,7 +353,7 @@ int kk_lan_db_node_get(const char *deviceCode,int channel)
int
kk_lan_db_get_item_by_node
(
int
node
,
char
*
deviceCode
,
int
*
channel
)
{
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
int
rc
=
-
1
;
char
*
zErrMsg
=
0
;
sqlite3_stmt
*
stmt
;
kk_lan_node_db_ctx_t
*
ctx
=
_kk_lan_node_db_get_ctx
();
...
...
@@ -371,12 +371,13 @@ int kk_lan_db_get_item_by_node(int node,char *deviceCode,int *channel)
if
(
channel
!=
NULL
){
*
channel
=
sqlite3_column_int
(
stmt
,
LAN_DB_CHANNEL
);
}
rc
=
0
;
}
sqlite3_free
(
sqlCmd
);
_kk_lan_node_db_unlock
();
sqlite3_finalize
(
stmt
);
return
0
;
return
rc
;
}
int
kk_lan_db_channel_get
(
int
node
,
int
*
channel
)
...
...
midware/midware/dm/kk_linkkit.c
View file @
6a2ebf0e
...
...
@@ -2082,7 +2082,18 @@ static int _kk_cancel_warning_handle(char *deviceCode){
kk_msg_execute_property_set
(
node
->
productCode
,
node
->
deviceCode
,
param
,
node
->
fatherDeviceCode
);
return
SUCCESS_RETURN
;
}
static
int
_kk_cancel_SOS_handle
(
char
*
deviceCode
){
int
res
=
0
;
dm_mgr_dev_node_t
*
node
=
NULL
;
res
=
dm_mgr_get_device_by_devicecode
(
deviceCode
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"ERROR [%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
return
FAIL_RETURN
;
}
const
char
*
param
=
"{
\"
SosState
\"
:0,
\"
epNum
\"
:
\"
1
\"
}"
;
kk_msg_execute_property_set
(
node
->
productCode
,
node
->
deviceCode
,
param
,
node
->
fatherDeviceCode
);
return
SUCCESS_RETURN
;
}
...
...
@@ -2187,7 +2198,7 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
}
cJSON
*
cancelWarning
=
cJSON_GetObjectItem
(
paramStr
,
KK_TSL_CCU_CANCEL_WARNING
);
if
(
cancelWarning
!=
NULL
&&
cancelWarning
->
valueint
==
1
){
int
numberSiren
=
0
,
kcount
=
0
;
int
numberSiren
=
0
,
kcount
=
0
,
sosNum
=
0
;
DeviceCode_t
*
pList
=
(
DeviceCode_t
*
)
malloc
(
sizeof
(
DeviceCode_t
)
*
24
);
if
(
pList
!=
NULL
){
memset
(
pList
,
0x0
,
sizeof
(
DeviceCode_t
)
*
24
);
...
...
@@ -2195,6 +2206,11 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
for
(
kcount
=
0
;
kcount
<
numberSiren
;
kcount
++
){
_kk_cancel_warning_handle
(
pList
[
kcount
].
deviceCode
);
}
memset
(
pList
,
0x0
,
sizeof
(
DeviceCode_t
)
*
24
);
sosNum
=
kk_subDev_getSOSDeviceCodes
(
pList
);
for
(
kcount
=
0
;
kcount
<
sosNum
;
kcount
++
){
_kk_cancel_SOS_handle
(
pList
[
kcount
].
deviceCode
);
}
free
(
pList
);
pList
=
NULL
;
}
...
...
midware/midware/dm/kk_property_get_handle.c
View file @
6a2ebf0e
...
...
@@ -155,81 +155,6 @@ static int kk_property_LightProperty_handle(char *deviceCode,int epNum,char *msg
kk_service_get_reply
(
deviceCode
,
node
->
productCode
,
msgid
,
ColorTempSwitch
,
-
1
,
-
1
,
epNum
,
"ColorTempSwitch"
);
return
SUCCESS_RETURN
;
}
static
int
kk_property_AirSwitchConfig_handle
(
char
*
deviceCode
,
int
epNum
,
char
*
msgid
)
{
int
res
=
0
;
int
mutiDev
=
0
;
int
OverloadCurrent
=
0
;
int
ExcessiveTemperature
=
0
;
int
SwitchEnable
=
0
;
int
BreakTime
=
0
;
int
RatedVoltage
=
0
;
int
RatedCurrent
=
0
;
char
propertiesTmp
[
64
]
=
{
0
};
dm_mgr_dev_node_t
*
node
=
NULL
;
res
=
dm_mgr_get_device_by_devicecode
((
char
*
)
deviceCode
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"ERROR [%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
return
FAIL_RETURN
;
}
mutiDev
=
kk_check_muti_device
(
node
);
if
(
mutiDev
){
memset
(
propertiesTmp
,
0x0
,
sizeof
(
propertiesTmp
));
sprintf
(
propertiesTmp
,
"OverloadCurrent_%d"
,
epNum
);
kk_property_db_get_value
(
deviceCode
,
propertiesTmp
,
&
OverloadCurrent
);
memset
(
propertiesTmp
,
0x0
,
sizeof
(
propertiesTmp
));
sprintf
(
propertiesTmp
,
"ExcessiveTemperature_%d"
,
epNum
);
kk_property_db_get_value
(
deviceCode
,
propertiesTmp
,
&
ExcessiveTemperature
);
memset
(
propertiesTmp
,
0x0
,
sizeof
(
propertiesTmp
));
sprintf
(
propertiesTmp
,
"SwitchEnable_%d"
,
epNum
);
kk_property_db_get_value
(
deviceCode
,
propertiesTmp
,
&
SwitchEnable
);
memset
(
propertiesTmp
,
0x0
,
sizeof
(
propertiesTmp
));
sprintf
(
propertiesTmp
,
"BreakTime_%d"
,
epNum
);
kk_property_db_get_value
(
deviceCode
,
propertiesTmp
,
&
BreakTime
);
memset
(
propertiesTmp
,
0x0
,
sizeof
(
propertiesTmp
));
sprintf
(
propertiesTmp
,
"RatedVoltage_%d"
,
epNum
);
kk_property_db_get_value
(
deviceCode
,
propertiesTmp
,
&
RatedVoltage
);
memset
(
propertiesTmp
,
0x0
,
sizeof
(
propertiesTmp
));
sprintf
(
propertiesTmp
,
"RatedCurrent_%d"
,
epNum
);
kk_property_db_get_value
(
deviceCode
,
propertiesTmp
,
&
RatedCurrent
);
}
else
{
kk_property_db_get_value
(
deviceCode
,
"OverloadCurrent"
,
&
OverloadCurrent
);
kk_property_db_get_value
(
deviceCode
,
"ExcessiveTemperature"
,
&
ExcessiveTemperature
);
kk_property_db_get_value
(
deviceCode
,
"SwitchEnable"
,
&
SwitchEnable
);
kk_property_db_get_value
(
deviceCode
,
"BreakTime"
,
&
BreakTime
);
kk_property_db_get_value
(
deviceCode
,
"RatedVoltage"
,
&
RatedVoltage
);
kk_property_db_get_value
(
deviceCode
,
"RatedCurrent"
,
&
RatedCurrent
);
}
cJSON
*
info
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
info
,
MSG_TYPE_STR
,
KK_THING_SERVICE_PROPERTY_GET_REPLY
);
cJSON_AddStringToObject
(
info
,
MSG_DEVICE_CODE_STR
,
deviceCode
);
cJSON_AddStringToObject
(
info
,
MSG_PRODUCT_CODE_STR
,
node
->
productCode
);
char
*
infff
=
cJSON_Print
(
info
);
cJSON
*
payload
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
payload
,
"desc"
,
"success"
);
cJSON_AddStringToObject
(
payload
,
"version"
,
"1.0"
);
cJSON_AddStringToObject
(
payload
,
"code"
,
"0"
);
cJSON_AddStringToObject
(
payload
,
"msgId"
,
msgid
);
cJSON
*
paramInfo
=
cJSON_CreateObject
();
cJSON_AddNumberToObject
(
paramInfo
,
"OverloadCurrent"
,
OverloadCurrent
);
cJSON_AddNumberToObject
(
paramInfo
,
"ExcessiveTemperature"
,
ExcessiveTemperature
);
cJSON_AddNumberToObject
(
paramInfo
,
"SwitchEnable"
,
SwitchEnable
);
cJSON_AddNumberToObject
(
paramInfo
,
"BreakTime"
,
BreakTime
);
cJSON_AddNumberToObject
(
paramInfo
,
"RatedVoltage"
,
RatedVoltage
);
cJSON_AddNumberToObject
(
paramInfo
,
"RatedCurrent"
,
RatedCurrent
);
cJSON_AddStringToObject
(
paramInfo
,
"DevModel"
,
"UNKNOWN"
);
cJSON_AddStringToObject
(
paramInfo
,
"DevVersion"
,
"1.0.0"
);
cJSON_AddNumberToObject
(
paramInfo
,
"epNum"
,
epNum
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramInfo
);
char
*
payload11
=
cJSON_Print
(
payload
);
kk_sendData2app
(
infff
,
payload11
,
0
);
free
(
payload11
);
free
(
infff
);
cJSON_Delete
(
payload
);
cJSON_Delete
(
info
);
return
SUCCESS_RETURN
;
}
static
int
kk_property_sendtogw_handle
(
cJSON
*
payload
,
cJSON
*
info_root
,
char
*
deviceCode
)
{
...
...
midware/midware/dm/kk_sub_db.c
View file @
6a2ebf0e
...
...
@@ -1206,7 +1206,56 @@ int kk_subDev_getDeviceCodes_byProductType(DeviceCode_t *list,char *type)
sqlite3_free
(
sqlCmd
);
return
count
;
}
char
*
g_SOSDev
[]
=
{
(
char
*
){
"3015"
},
(
char
*
){
"3016"
},
(
char
*
){
"3054"
},
(
char
*
){
"3124"
},
};
static
int
_kk_check_SOSDev
(
const
char
*
productCode
)
{
int
i
=
0
,
num
=
0
;
num
=
sizeof
(
g_SOSDev
)
/
sizeof
(
char
*
);
for
(
i
=
0
;
i
<
num
;
i
++
){
if
(
strcmp
(
productCode
,
g_SOSDev
[
i
])
==
0
){
return
1
;
}
}
return
0
;
}
int
kk_subDev_getSOSDeviceCodes
(
DeviceCode_t
*
list
)
{
char
*
sqlCmd
=
NULL
;
const
char
*
searchCmd
=
"select * from SubDeviceInfo WHERE productType= '%s'"
;
char
*
zErrMsg
=
0
;
sqlite3_stmt
*
stmt
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
char
*
pDeviceCode
=
NULL
;
char
*
pProductCode
=
NULL
;
dm_mgr_dev_node_t
*
node
=
NULL
;
int
currentValue
=
0
;
int
count
=
0
;
//printf("kk_subDev_getSensors_reply----------------------start\n");
_kk_subDb_lock
();
sqlCmd
=
sqlite3_mprintf
(
searchCmd
,
"sensor"
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
//printf("kk_subDev_getSensors_reply----------------------num\n");
pProductCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_PRODUCTCODE
);
if
(
_kk_check_SOSDev
(
pProductCode
)
==
1
){
pDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_DEVICECODE
);
memcpy
(
list
[
count
].
deviceCode
,
pDeviceCode
,
strlen
(
pDeviceCode
));
count
++
;
}
}
//printf("kk_subDev_getSensors_reply----------------------end\n");
sqlite3_finalize
(
stmt
);
_kk_subDb_unlock
();
sqlite3_free
(
sqlCmd
);
return
count
;
}
/************************************************************
*功能描述:检查屏类设备是否有重复
*输入参数:deviceCode:设备deviceCode
...
...
midware/midware/dm/kk_sub_db.h
View file @
6a2ebf0e
...
...
@@ -61,6 +61,7 @@ int kk_get_LockUser_list(LockKeyInfo_t *list,const char *deviceCode);
int
kk_delete_LockUser_info
(
const
char
*
deviceCode
);
int
kk_delete_LockUser_info_byId
(
const
char
*
id
);
int
kk_get_product_type_table_size
(
void
);
int
kk_subDev_getSOSDeviceCodes
(
DeviceCode_t
*
list
);
extern
productype_map_s
producTypeMap
[];
enum
{
DB_SUB_IDX
=
0
,
...
...
midware/tsl/tsl_handle/kk_tsl_common.h
View file @
6a2ebf0e
...
...
@@ -111,9 +111,10 @@ typedef enum
DEVICE_NOT_RESPONSE
=
10106
,
DEVICE_PARAM_ERR
=
10001
,
DEVICE_TIMEOUR
=
10003
,
DEVICE_CTRL_OFTEN
=
1071
2
,
DEVICE_CTRL_OFTEN
=
1071
1
,
DEVICE_SCENE_TOO_MUSH
=
13001
,
}
kk_to_cloud_code_t
;
typedef
enum
{
DEVICE_HEARTBEAT_TIMEOUT
=
-
15
,
TSL_ALREADY_EXIST
=
-
14
,
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment