wei
2021-07-09 068c68295cad1967f7aafb4e5e951260ef03d4ce
HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -52,6 +52,15 @@
        /// </summary>
        public void ControlBytesSend(Command command, byte subnetID, byte deviceID, byte[] gatewayBytes, int sendCount = 3)
        {
#if DEBUG
            string ddd = "";
            foreach (var bb in gatewayBytes)
            {
                ddd += bb + ",";
            }
            MainPage.Log($"发送bus命令:" + ((int)command).ToString("X").PadLeft(4,'0') + " : 数据:" + ddd);
#endif
            var control = new Control_Udp();
            control.Send(new Target()
            {
@@ -429,13 +438,16 @@
                        {
                            case SPK.LightCCT:
                                byte b0 = 100;//开关操作依据on_off字段,实际开关值依据brightness,当on_off为打开,brightness不能为0
                                if (function.trait_on_off.curValue.ToString() == "off")
                                if(commandDictionary.ContainsKey(FunctionAttributeKey.OnOff))
                                {
                                    b0 = 0;
                                    if (function.trait_on_off.state.ToString() == "off")
                                    {
                                        b0 = 0;
                                    }
                                }
                                else
                                {
                                    b0 = Convert.ToByte( function.GetAttrState(FunctionAttributeKey.Brightness)) == 0 ? (byte)100 : Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                                    b0 = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));// == 0 ? (byte)100 : Convert.ToByte(function.GetAttrState(FunctionAttributeKey.Brightness));
                                }
                                var bytes0 = new byte[] { function.bus.LoopId,
                                            b0,
@@ -448,7 +460,7 @@
                                break;
                            case SPK.LightRGB:
                                byte b = 100;//开关操作依据on_off字段,实际开关值依据brightness,当on_off为打开,brightness不能为0
                                if (function.trait_on_off.curValue.ToString() == "off")
                                if (function.trait_on_off.state.ToString() == "off")
                                {
                                    b = 0;
                                }
@@ -476,7 +488,7 @@
                                break;
                            case SPK.LightDimming:
                                byte b1 = 100;
                                if (function.trait_on_off.curValue.ToString() == "off")
                                if (function.trait_on_off.state.ToString() == "off")
                                {
                                    b1 = 0;
                                }
@@ -498,7 +510,7 @@
                                            0, Convert.ToByte(function.GetAttrState(FunctionAttributeKey.FadeTime)) });
                                break;
                            case SPK.LightSwitch:
                                ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, function.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 });
                                ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, function.trait_on_off.state.ToString() == "on" ? (byte)100 : (byte)0, 0, 0 });
                                break;
                        }
                        break;
@@ -507,11 +519,11 @@
                        {
                            case SPK.CurtainSwitch:
                                byte b1 = 0;
                                if (function.trait_on_off.curValue.ToString() == "stop")
                                if (function.trait_on_off.state.ToString() == "stop")
                                {
                                    b1 = 0;
                                }
                                else if (function.trait_on_off.curValue.ToString() == "on")
                                else if (function.trait_on_off.state.ToString() == "on")
                                {
                                    b1 = 1;
                                }
@@ -523,7 +535,7 @@
                                break;
                            case SPK.CurtainTrietex:
                            case SPK.CurtainRoller:
                                if (function.trait_on_off.curValue.ToString() == "stop")
                                if (function.trait_on_off.state.ToString() == "stop")
                                {
                                    ControlBytesSend(Command.SetCurtainModelStutas, subnetId, deviceId, new byte[] { function.bus.LoopId, 0 });
                                }
@@ -548,7 +560,7 @@
                                    switch (dic.Key)
                                    {
                                        case FunctionAttributeKey.OnOff:
                                            ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 3, function.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, function.bus.LoopId });
                                            ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 3, function.trait_on_off.state.ToString() == "on" ? (byte)1 : (byte)0, function.bus.LoopId });
                                            break;
                                        case "mode":
                                            ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 6, ac.GetModeIndex(function), function.bus.LoopId });
@@ -602,7 +614,7 @@
                                            switch (dic.Key)
                                            {
                                                case FunctionAttributeKey.OnOff:
                                                    ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 20, function.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0, function.bus.LoopId });
                                                    ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 20, function.trait_on_off.state.ToString() == "on" ? (byte)1 : (byte)0, function.bus.LoopId });
                                                    break;
                                                case "mode":
                                                    ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] { 21, fhTemp.GetModeIndex(function), function.bus.LoopId });
@@ -635,7 +647,7 @@
                                    }
                                    else
                                    {
                                        var onoffString = function.trait_on_off.curValue.ToString();
                                        var onoffString = function.trait_on_off.state.ToString();
                                        byte b1 = 1;
                                        if (onoffString == "off")
                                        {
@@ -680,7 +692,7 @@
                        switch (function.spk)
                        {
                            case SPK.ElectricFan:
                                if (function.trait_on_off.curValue.ToString() == "on")
                                if (function.trait_on_off.state.ToString() == "on")
                                {
                                    ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, Convert.ToByte(function.GetAttrState(FunctionAttributeKey.OpenLevel)) });
                                }
@@ -689,7 +701,7 @@
                                }
                                break;
                            case SPK.ElectricSocket:
                                ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, function.trait_on_off.curValue.ToString() == "on" ? (byte)100 : (byte)0 });
                                ControlBytesSend(Command.SetSingleLight, subnetId, deviceId, new byte[] { function.bus.LoopId, function.trait_on_off.state.ToString() == "on" ? (byte)100 : (byte)0 });
                                break;
                        }
                        break;