1
wei
2021-01-21 62d098cb78296feaa6f786a20748921338db838c
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
//
//  TuyaSmartSceneDPModel.h
//  TuyaSmartSceneKit
//
//  Copyright (c) 2014-2021 Tuya Inc. (https://developer.tuya.com)
 
#import <CoreLocation/CoreLocation.h>
 
/// The seven types of datapoint display style.
typedef enum : NSUInteger {
    /// The normal style, indicates display numeric UI.
    SceneDisplayNormal = 1,
    /// The first percent style, indicates the content show numeric UI and the unit show percent. The datapoint minimum value is 0.
    SceneDisplayPercent = (1 << 1),
    /// The second percent style, indicates the content show numeric UI and the unit show percent. The datapoint minimum value is 1.
    SceneDisplayNewPercent = (1 << 2),
    /// The first countdown style, indicates the content only shows hours and minutes.
    SceneDisplayCountDown = (1 << 3),
    /// The brightness value style, indicates the content shows a color slider and you can select value as the brightness value. For example, brightness value is 500.
    SceneDisplayBrightness = (1 << 4),
    /// The warm cold value style, indicates the content shows a color slider and you can select value as the warm cold value. For example, warm cold value is 500.
    SceneDisplayTemp = (1 << 5),
    /// The second countdown style, indicates The content shows hours, minutes and seconds.
    SceneDisplayCountDown1 = (1<< 6)
} SceneDisplayType;
 
@class TuyaSmartSchemaModel;
 
/// @brief TuyaSmartSceneDPModel provides more attributes for developers to implement the datapoint of device.
///
/// @note It is mainly used to describe the detail information of the device's data-points.
@interface TuyaSmartSceneDPModel : NSObject
 
/// The dp id, it maybe condition id or device id.
@property (nonatomic, assign) NSInteger dpId;
 
/// The product ID.This property represent the product's id this data-points belongs to. Only device's datapoints has this value.
@property (nonatomic, strong) NSString *entityId;
 
/// The entity name, it maybe condition name or datapoint name of device.
@property (nonatomic, strong) NSString *entityName;
 
/// The entity type, device as condition it will be NSInteger 1, 3 for meteorological condition, 6 for timer condition, 7 for human body detector condition, 10 for  geofencing condition.
@property (nonatomic, assign) NSInteger entityType;
 
/// The icon URL of condition.
@property (nonatomic, strong) NSString *iconUrl;
 
/// Condition's or device's data point' value range, like "value:{"unit":"","min":10,"max":1000,"scale":0,"step":1,"type":"value"}"
@property (nonatomic, strong) NSArray *valueRangeJson;
 
/// Properties of device, like {"id":1,"desc":"","name":"Switch","property":{"type":"bool"},"attr":3,"code":"switch_on","type":"obj","mode":"rw"}
@property (nonatomic, strong) NSString *actDetail;
 
/// Description of data point and selected value.
@property (nonatomic, strong) TuyaSmartSchemaModel *dpModel;
 
/// The operation description, operators like "["=="]".
@property (nonatomic, strong) NSString *operators;
 
/// The condition name, code, properties. For details check the dpModel property.
@property (nonatomic, strong) NSDictionary *property;
 
/// The entity sub id of condition or datapoint of device, condition's subId like @"humidity", device data point's subId like "1".
@property (nonatomic, strong) NSString *entitySubId;
 
/// Multi control information, value is nil if not belong to any multi control group, format:[{"id":123,"groupName":"more control group 1"}]
@property (nonatomic, strong) NSArray *mcGroups;
 
/// Extra information about dp value's calculate type and other extra information, calType's range is ["sum","average","max","min","count","duration"].
@property (nonatomic, strong) NSDictionary *condCalExtraInfo;
 
 
#pragma mark - Logic properties blow can be ignored.
/*******Properties below are used to store user selected value, you can ignore.********/
 
/// The selected row, -1 means haven't selected, set by you.
@property (nonatomic, assign) NSInteger selectedRow;
 
/// The selected operator, -1 means haven't selected, set by you.
@property (nonatomic, assign) NSInteger selectedOperationRow;
 
/// The device Id,set by you.
@property (nonatomic, strong) NSString *devId;
 
/// The displayType of this datapoint‘s value.
@property (nonatomic, assign) SceneDisplayType displayType;
 
#pragma mark - Deprecated
 
/// Expression, eg:(("$humidity","==","comfort"), (“$dp1”,“==”,“1”), ...), set by you.
@property (nonatomic, strong) NSArray *expr __deprecated;
 
/// The city Id, set by you.
@property (nonatomic, strong) NSString *cityId __deprecated;
 
/// The city name, set by you.
@property (nonatomic, strong) NSString *cityName __deprecated;
 
/// The city's latitude, set by you.
@property (nonatomic, assign) CLLocationDegrees cityLatitude __deprecated;
 
/// The city's longitude, set by you.
@property (nonatomic, assign) CLLocationDegrees cityLongitude __deprecated;
 
/// The deprecated property.
@property (nonatomic, assign) NSInteger sceneDPId __deprecated;
 
/// The percent datapoint information.
@property (nonatomic, strong) NSDictionary *percentDp __deprecated;
 
@end