Documentation

Documentation

Includes

tuya_cloud_types.h

#include "tuya_cloud_types.h"
#include "tuya_cloud_types.h"

tuya_cloud_com_defs.h

#include "tuya_cloud_com_defs.h"
#include "tuya_cloud_com_defs.h"

action.h

#include "action.h"
#include "action.h"

Macros

Marco __SCENE_LINKAGE_H

#define __SCENE_LINKAGE_H


      

Marco __SCENE_LINKAGE_EXT

#define __SCENE_LINKAGE_EXT


      

Marco __SCENE_LINKAGE_EXT

#define __SCENE_LINKAGE_EXT extern


      

Marco LINKAGE_RULE_LOCAL

#define LINKAGE_RULE_LOCAL    		0 
//��https://wiki.tuya-inc.com:7799/pages/viewpage.action?pageId=22086410

Marco LINKAGE_RULE_LAN

#define LINKAGE_RULE_LAN    		1 


      

Marco RULE_TYPE_LOCAL_2_PROTOCOL(local)

#define RULE_TYPE_LOCAL_2_PROTOCOL(local) ((local) + 1)


      

Marco RULE_TYPE_PROTOCOL_2_LOCAL(pro)

#define RULE_TYPE_PROTOCOL_2_LOCAL(pro) ((pro) - 1) 


      

Marco LINKAGE_RULE_NUM

#define LINKAGE_RULE_NUM    		2 


      

Marco LINKAGE_RULE_NUM

#define LINKAGE_RULE_NUM    		1 

      

Functions

Func secne_linkage_parse_alarm

OPERATE_RET secne_linkage_parse_alarm(IN CHAR_T *alarmed_mode, OUT CHAR_T **id_list);


      

Func scene_linkage_reg_on_exe_dp_issue

OPERATE_RET scene_linkage_reg_on_exe_dp_issue(IN SCENE_LINKAGE_ON_EXE_DP_ISSUE on_exe_func);

      

Vars

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
OPERATE_RET scene_linkage_module_init(VOID);
/***********************************************************
*  Function: scene_linkage_module_init
*  Input: none
*  Output: none
*  Return: OPERATE_RET
*  Note:
***********************************************************/

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
VOID scene_linkage_module_uninit(VOID);
/***********************************************************
*  Function: scene_linkage_module_uninit
*  Input: none
*  Output: none
*  Return: none
*  Note:
***********************************************************/

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
VOID scene_linkage_update_from_server(LINKAGE_RULE_TYPE_T linkage_type, INT_T delaymS);


      

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
VOID scene_linkage_scene_exe(CHAR_T *sceneId);


      

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
OPERATE_RET scene_linkage_scene_exe_by_name(const CHAR_T *scene_name);
//否则返回不存在 OPRT_NOT_FOUND

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
OPERATE_RET dp_condition_detect(IN CONST CHAR_T *id,IN CONST CHAR_T *dp_cmd, IN CONST CHAR_T *gw_id, IN LINKAGE_RULE_TYPE_T rule_type);
// dp_cmd:{"cid":"xxxxxx",dps:{"1":2,"2":"111"}} or {"devid":"xxxxxx",dps:{"1":2,"2":"111"}}

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
OPERATE_RET scene_linkage_reg_lan_action(IN LAN_ACTION_SET_EXECUTE func);


      

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
OPERATE_RET scene_linkage_reg_lan_toggle_action(IN LAN_TOGGLE_ACTION_EXECUTE func);


      

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
OPERATE_RET scene_linkage_reg_lan_scene_action(LAN_SCENE_EXECUTE func);


      

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
OPERATE_RET scene_linkage_reg_lan_local_scene_action(LAN_LOCAL_SCENE_EXECUTE func);


      

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
OPERATE_RET scene_linkage_reg_lan_dpstep_action(IN LAN_DPSTEP_ACTION_EXECUTE func);


      

Variable __SCENE_LINKAGE_EXT

__SCENE_LINKAGE_EXT \
OPERATE_RET scene_linkage_reg_lan_group_action(IN LAN_GROUP_ACTION_EXECUTE func);

      

Consts

Types

Typedefs

Typedef LINKAGE_RULE_TYPE_T

typedef BYTE_T LINKAGE_RULE_TYPE_T;
/***********************************************************
*************************micro define***********************
***********************************************************/

Typedef LAN_ACTION_SET_EXECUTE

typedef OPERATE_RET (*LAN_ACTION_SET_EXECUTE)(IN CONST CHAR_T *gw_id, IN CONST CHAR_T *dp_cmd, IN BOOL_T check, OUT BOOL_T *is_local);


      

Typedef LAN_TOGGLE_ACTION_EXECUTE

typedef OPERATE_RET (*LAN_TOGGLE_ACTION_EXECUTE)(IN CONST ACTION_S *action, OUT BOOL_T *is_local);


      

Typedef LAN_SCENE_EXECUTE

typedef OPERATE_RET (*LAN_SCENE_EXECUTE)(IN CONST ACTION_S *action, OUT BOOL_T *is_local);


      

Typedef LAN_LOCAL_SCENE_EXECUTE

typedef OPERATE_RET (*LAN_LOCAL_SCENE_EXECUTE)(IN CONST ACTION_S *action, OUT BOOL_T *is_local);


      

Typedef LAN_DPSTEP_ACTION_EXECUTE

typedef OPERATE_RET (*LAN_DPSTEP_ACTION_EXECUTE)(IN CONST ACTION_S *action, OUT BOOL_T *is_local);


      

Typedef LAN_GROUP_ACTION_EXECUTE

typedef OPERATE_RET (*LAN_GROUP_ACTION_EXECUTE)(IN CONST ACTION_S *action, OUT BOOL_T *is_local);


      

Typedef SCENE_LINKAGE_ON_EXE_COND_S;

typedef struct {
 CHAR_T *cid;
 BYTE_T dp_id;
}SCENE_LINKAGE_ON_EXE_COND_S;
//如果条件或动作是网关本身的,cid为网关的虚拟ID,否则为子设备node_id。调用者需要拷贝内容

Typedef SCENE_LINKAGE_ON_EXE_ACT_DP_ISSUE_S;

typedef struct {
 CHAR_T *cid;
 BYTE_T dp_id;
}SCENE_LINKAGE_ON_EXE_ACT_DP_ISSUE_S;


      

Typedef SCENE_LINKAGE_ON_EXE_DP_ISSUE

typedef VOID (*SCENE_LINKAGE_ON_EXE_DP_ISSUE)(IN CONST SCENE_LINKAGE_ON_EXE_COND_S *cond, IN CONST SCENE_LINKAGE_ON_EXE_ACT_DP_ISSUE_S *act_dp);
//动作如果有多个,会回调多次