| | |
| | | } |
| | | |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public Trait trait_brightness; |
| | | Trait trait_brightness; |
| | | /// <summary> |
| | | /// 亮度值 |
| | | /// </summary> |
| | |
| | | } |
| | | |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | Trait trait_fadeTime; |
| | | /// <summary> |
| | | /// 亮度值 |
| | | /// </summary> |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public int fadeTime |
| | | { |
| | | get |
| | | { |
| | | if (trait_fadeTime == null) |
| | | { |
| | | trait_fadeTime = function.Find((obj) => obj.name == "fade_time"); |
| | | //找不到属性需要声明一个,防止报错闪退 |
| | | if (trait_fadeTime == null) |
| | | { |
| | | trait_fadeTime = new Trait() |
| | | { |
| | | name = "fade_time", |
| | | value_key = new List<string> { "up", "down" }, |
| | | max = 10, |
| | | min = 0, |
| | | }; |
| | | trait_fadeTime.value = 0; |
| | | function.Add(trait_fadeTime); |
| | | } |
| | | } |
| | | int result = 0; |
| | | int.TryParse(trait_fadeTime.value.ToString(), out result); |
| | | return result; |
| | | } |
| | | set |
| | | { |
| | | try |
| | | { |
| | | if (trait_fadeTime == null) |
| | | { |
| | | trait_fadeTime = function.Find((obj) => obj.name == "fade_time"); |
| | | //找不到属性需要声明一个,防止报错闪退 |
| | | if (trait_fadeTime == null) |
| | | { |
| | | trait_fadeTime = new Trait() |
| | | { |
| | | name = "fade_time", |
| | | value_key = new List<string> { "up", "down" }, |
| | | max = 100, |
| | | min = 0, |
| | | }; |
| | | trait_fadeTime.value = 0; |
| | | function.Add(trait_fadeTime); |
| | | } |
| | | } |
| | | trait_fadeTime.value = value; |
| | | } |
| | | catch |
| | | { |
| | | } |
| | | } |
| | | } |
| | | |
| | | [Newtonsoft.Json.JsonIgnore] |
| | | public Trait trait_color; |
| | | /// <summary> |
| | | /// RGB颜色 |
| | |
| | | name = "color", |
| | | value_key = new List<string> { "FFFFFF" }, |
| | | max = 0xFFFFFF, |
| | | min = 0x000000, |
| | | min = 0x00000F, |
| | | }; |
| | | } |
| | | trait_color.value = trait_color.min; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | /// <summary> |
| | | /// 拼接、获取A协议操作数据 |
| | | /// </summary> |
| | | public override JObject GetSendJObject(CommandType_A command ) |
| | | { |
| | | var sendJob = new JObject(); |
| | | if (command == CommandType_A.write) |
| | | { |
| | | sendJob = new JObject { { "vendor_code", vendor_code }, { "command", command.ToString() }, { "type", "device" } }; |
| | | JObject data = new JObject { { "sid", sid } }; |
| | | sendJob.Add("objects", data); |
| | | List<ControlData> controlData = new List<ControlData>(); |
| | | switch (functionType) |
| | | { |
| | | case FunctionType.Relay: |
| | | controlData.Add(new ControlData() |
| | | { |
| | | name = "on_off", |
| | | data_type = "Bool", |
| | | value = trait_on_off.value.ToString() |
| | | }); |
| | | break; |
| | | case FunctionType.Dimmer: |
| | | controlData.Add(new ControlData() |
| | | { |
| | | name = "on_off", |
| | | data_type = "Bool", |
| | | value = trait_on_off.value.ToString() |
| | | }); |
| | | controlData.Add(new ControlData() |
| | | { |
| | | name = "brightness", |
| | | data_type = "int", |
| | | value = brightness.ToString(), |
| | | }); |
| | | break; |
| | | case FunctionType.RGB: |
| | | controlData.Add(new ControlData() |
| | | { |
| | | name = "on_off", |
| | | data_type = "Bool", |
| | | value = trait_on_off.value.ToString() |
| | | }); |
| | | controlData.Add(new ControlData() |
| | | { |
| | | name = "brightness", |
| | | data_type = "int", |
| | | value = brightness.ToString(), |
| | | }); |
| | | controlData.Add(new ControlData() |
| | | { |
| | | name = "color", |
| | | data_type = "int", |
| | | value = color.ToString(), |
| | | }); |
| | | break; |
| | | } |
| | | |
| | | AProtocolEntity ape = new AProtocolEntity() |
| | | { |
| | | command = command.ToString(), |
| | | vendor_code = vendor_code, |
| | | type = "device_sid", |
| | | }; |
| | | ape.ControlFunction(sid, controlData); |
| | | sendJob = JObject.FromObject(ape); |
| | | |
| | | } |
| | | else if (command == CommandType_A.read) |
| | | { |
| | | sendJob = new JObject { { "vendor_code", vendor_code }, { "command", command.ToString() }, { "type", "device" } }; |
| | | var data = new JObject {{ "sid", sid } }; |
| | | sendJob.Add("objects", data); |
| | | } |
| | | return sendJob; |
| | | } |
| | | } |
| | | |
| | | } |