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"

mem_pool.h

#include "mem_pool.h"
#include "mem_pool.h"

ty_cJSON.h

#include "ty_cJSON.h"
#include "ty_cJSON.h"

Macros

Marco __ACTION_H

#define __ACTION_H


      

Marco __ACTION_EXT

#define __ACTION_EXT


      

Marco __ACTION_EXT

#define __ACTION_EXT extern


      

Marco RULE_ID_LEN

#define RULE_ID_LEN 20
/***********************************************************
*************************micro define***********************
***********************************************************/

Functions

Func actions_set_gw_vid

OPERATE_RET actions_set_gw_vid(IN CHAR_T *gw_vid);

      

Vars

Variable __ACTION_EXT

__ACTION_EXT \
OPERATE_RET actions_parse(IN ty_cJSON *root,OUT ACTION_SET_S **act_set);
/***********************************************************
*  Function: actions_parse
*  Input: root
*  Output: cond_set 
*  Return: OPERATE_RET
***********************************************************/

Variable __ACTION_EXT

__ACTION_EXT \
VOID free_action_set(INOUT ACTION_SET_S *action_set);
/***********************************************************
*  Function: free_action_set
*  Input: action_set
*  Output: action_set 
*  Return: OPERATE_RET
***********************************************************/

Variable __ACTION_EXT

__ACTION_EXT \
VOID actions_dump_print(ACTION_SET_S *p_act_set);


      

Variable __ACTION_EXT

__ACTION_EXT \
OPERATE_RET actions_check_gw_id(IN CONST ty_cJSON *root, IN ACTION_CHECK_GW_ID_FUNC check_func);

      

Consts

Types

Typedefs

Typedef ACTION_TP_T

typedef BYTE_T ACTION_TP_T;
#define AT_DP      1 // dp issue
#define AT_RULE    2 // rule trigger
#define AT_DELAY   3 // delay event
#define AT_MULTI   4 // multi event
#define AT_TOGGLE  5 // toggle event
#define AT_SECURE_MODE 6 //secure mode 
#define AT_DP_STEP 7 // dp step event
#define AT_GROUP   8  //group 



      

Typedef AT_DP_SID_GID_S;

typedef struct {
   CHAR_T *gid;
   CHAR_T *sid;
}AT_DP_SID_GID_S;


      

Typedef AT_DP_ISSUE_S;

typedef struct {
   CHAR_T *mlk_dp_cmd; // {"cid":"xxx",dps:{"1":true,"2":100}}
#if defined(LOCAL_SCENE) && (LOCAL_SCENE==1)
   BOOL_T is_gs;//gid ,sid
   AT_DP_SID_GID_S gs_id;
#endif
}AT_DP_ISSUE_S;
// dp issue

Typedef AT_RULE_TRIGGER_S;

typedef struct {
   CHAR_T id[RULE_ID_LEN+1]; //后续改成指针,外部复制
}AT_RULE_TRIGGER_S;
// rule trigger

Typedef AT_DELAY_S;

typedef struct {
   UINT_T msecond;
}AT_DELAY_S;
// delay event

Typedef ACTION_VAL_U;

typedef union {
   BOOL_T bl;
   INT_T val; // notice:bitmap dp maxlen <= 31
   CHAR_T *str;
}ACTION_VAL_U;


      

Typedef AT_MULTI_S;

typedef struct {
   CHAR_T cid[DEV_ID_LEN+1];
   CHAR_T dp_id;
   ACTION_VAL_U dp_val;
   INT_T type;
   CHAR_T flag;// first
}AT_MULTI_S;
// multi event

Typedef AT_TOGGLE_S;

typedef struct {
   CHAR_T cid[DEV_ID_LEN+1]; // device id
   BYTE_T dp_id;
}AT_TOGGLE_S;
// toggle event

Typedef AT_SECURE_MODE_S;

typedef struct {
   //CHAR_T cid[DEV_ID_LEN+1]; // device id
   INT_T mode;
}AT_SECURE_MODE_S;


      

Typedef DP_STEP_TYPE_E;

typedef enum {
 DP_STEP_TYPE_LOW,
 DP_STEP_TYPE_HIGH,
}DP_STEP_TYPE_E;


      

Typedef AT_DPSTEP_S;

typedef struct {
 CHAR_T cid[DEV_ID_LEN+1];
 BYTE_T dp_id;
 INT_T min;
 INT_T max;
 INT_T step;
 DP_STEP_TYPE_E type;
}AT_DPSTEP_S;


      

Typedef AT_GROUP_S;

typedef struct {
   CHAR_T *mlk_dp_cmd; // {"cid":"000d6ffffe6d7101","ctype":2,"dps":{"3":false},"mbid":"10020"}
}AT_GROUP_S;


      

Typedef ACTION_U;

typedef union {
   AT_DP_ISSUE_S dp_isu;
   AT_RULE_TRIGGER_S rule_trig;
   AT_DELAY_S delay;
   AT_MULTI_S multi;
   AT_TOGGLE_S dp_toggle;
   AT_SECURE_MODE_S secure_mode;
   AT_GROUP_S group;
   AT_DPSTEP_S dp_step;
}ACTION_U;


      

Typedef ACTION_S;

typedef struct {
   ACTION_TP_T ac_tp;
   ACTION_U ac;
   BOOL_T is_check;   //检查状态是否跟设置的一样,双控环路检查
#if defined(ENABLE_LAN_LINKAGE_MASTER) && (ENABLE_LAN_LINKAGE_MASTER==1) 
 CHAR_T *gw_id;			//当局域网联动时不为空,Malloc出来,记录网关ID或WIFI设备的虚拟ID
 DP_PROP_TP_E dp_tp; 		//多控关联时,需要记录dp点的类型
   DP_PROP_ENUM_S prop_enum;	//类型是枚举时,枚举值
#endif   
}ACTION_S;


      

Typedef ACTION_SET_S;

typedef struct s_action {
   INT_T ruleType;
   USHORT_T num;
   ACTION_S action[0];
}ACTION_SET_S;
// action set 

Typedef DELAY_ACTION_SET_S;

typedef struct{
   INT_T ruleType;
   UINT_T index;
   //ACTION_SET_S *action_set;
   CHAR_T rule_id[RULE_ID_LEN+1];
   BYTE_T ruleTypeLocal; //LINKAGE_RULE_LOCAL or LINKAGE_RULE_LAN
 USHORT_T seq_no;	//rule seqno
}DELAY_ACTION_SET_S;


      

Typedef ACTION_CHECK_GW_ID_FUNC

typedef OPERATE_RET (*ACTION_CHECK_GW_ID_FUNC)(IN CONST CHAR_T *gw_id);