1
wxr
2021-07-01 0c6057a603d1ce44ffe7ccbcecc2cf6cae5675f5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
using System;
using System.Collections.Generic;
namespace HDL_ON.UI.UI2.Intelligence.Automation
{
    /// <summary>
    /// 逻辑存储数据对象
    /// </summary>
    public class Logic
    {
 
        /// <summary>
        /// 逻辑列表
        /// </summary>
        public static List<Logic> LogicList = new List<Logic>();
        /// <summary>
        /// 当前逻辑
        /// </summary>
        public static Logic currlogic;
        /// <summary>
        /// 云端唯一id
        /// </summary>
        public string userLogicId = "";
        /// <summary>
        /// 逻辑唯一标识
        /// </summary>
        public string sid = "";
        /// <summary>
        /// 逻辑名称
        /// </summary>
        public string name = "自动化";
        /// <summary>
        /// 逻辑条件关系(与and:,或:or)
        /// </summary>
        public string relation = "and";
        /// <summary>
        /// 逻辑状态(true,false)
        /// </summary>
        public string enable = "true";
        /// <summary>
        /// 逻辑执行循环周期(执行一次,每天,每月,星期)
        /// </summary>
        public Cycle cycle = new Cycle();
        /// <summary>
        /// 逻辑输入条件数组
        /// </summary>
        public List<Input> input = new List<Input>();
        /// <summary>
        /// 逻辑输出目标数组
        /// </summary>
        public List<Output> output = new List<Output>();
        /// <summary>
        /// 通知配置
        /// </summary>
        public NoticeConfig noticeConfig = new NoticeConfig();
        /// <summary>
        /// 推送配置
        /// </summary>
        public List<PushConfigs> pushConfigs = new List<PushConfigs>();
 
 
    }
    /// <summary>
    /// 执行周期对象
    /// </summary>
    public class Cycle
    {
        /// <summary>
        /// 时间类型
        /// (执行一次:once,每天:day,每月:mon,星期:week,日期段:date_to_date)
        /// </summary>
        public string type = "day";
        public List<string> value = new List<string>();
    }
    /// <summary>
    /// 输入条件对象
    /// </summary>
    public class Input
    {
        /// <summary>
        /// 逻辑输入条件唯一标识
        /// </summary>
        public string sid = "";
        /// <summary>
        /// 逻辑输入条件类型
        /// 时间点条件=1;
        /// 时间段条件=2;
        /// 设备状态变化条件=3;
        /// 环境信息条件=4;
        /// 安防条件=5;
        /// 云端天气条件=6;
        /// 某个逻辑/场景的输出条件=7;
        /// 地理围栏=8;
        /// </summary>
        public string condition_type = "";
        public List<Dictionary<string, string>> condition = new List<Dictionary<string, string>>();
    }
    /// <summary>
    /// 输出目标对象
    /// </summary>
    public class Output
    {
        /// <summary>
        /// 逻辑输出目标唯一标识
        /// </summary>
        public string sid = "";
        /// <summary>
        /// 逻辑输出目标延时间(单位用秒)
        /// </summary>
        public string delay = "0";
        /// <summary>
        /// 逻辑输出目标类型
        /// 设备=1;
        /// 场景=2;
        /// 延时=3;
        /// </summary>
        public string target_type = "";
        public List<Dictionary<string, string>> status = new List<Dictionary<string, string>>();
    }
    /// <summary>
    /// 地理围栏配置
    /// </summary>
    [Serializable]
    public class Fence
    {
        /// <summary>
        /// 经度
        /// </summary>
        public string longitude = string.Empty;
        /// <summary>
        /// 纬度
        /// </summary>
        public string latitude = string.Empty;
        /// <summary>
        /// 单位米
        /// </summary>
        public string radius = string.Empty;
    }
    /// <summary>
    /// 通知配置
    /// </summary>
    [Serializable]
    public class NoticeConfig
    {
        /// <summary>
        /// 是否开启通知
        /// </summary>
        public bool enable = false;
        /// <summary>
        /// 通知内容
        /// </summary>
        public string noticeContent = "自动化已经执行";//string.Empty;
    }
    /// <summary>
    /// 推送配置
    /// </summary>
    [Serializable]
    public class PushConfigs
    {
        /// <summary>
        /// 推送方式(APP/SMS)
        /// </summary>
        public string pushMethod = "APP";
        /// <summary>
        /// 推送内容
        /// </summary>
        //public string pushContent = string.Empty;
        /// <summary>
        /// 推送目标
        /// </summary>
        public List<string> pushTarget = new List<string> {};
    }
 
}