From f718d23a262a5a8e1241fdeaeb4153399f95e79d Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期二, 21 四月 2020 09:19:05 +0800
Subject: [PATCH] 20200421

---
 HDL_ON/DAL/Net/CommonPage.cs |  178 ++++++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 157 insertions(+), 21 deletions(-)

diff --git a/HDL_ON/DAL/Net/CommonPage.cs b/HDL_ON/DAL/Net/CommonPage.cs
index fb27540..c8d3b65 100644
--- a/HDL_ON/DAL/Net/CommonPage.cs
+++ b/HDL_ON/DAL/Net/CommonPage.cs
@@ -106,37 +106,173 @@
                         {
                             if (function.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
                             {
-                                if (function.functionCategory == FunctionType.Light)
+                                if (function.functionCategory == FunctionCategory.Light&& function.functionType != FunctionType.RGB)
                                 {
                                     var light = function as Light;
-                                    if (receiveBytes[2] == 0 && light.state == 0)
+                                    //if (receiveBytes[2] == 0 && light.on_off == "off")
+                                    //{
+                                    //    break;
+                                    //}
+                                    //if (function.functionType == "Relay")
+                                    //{
+                                    //    var relay = function as Light;
+                                    //    relay.on_off = receiveBytes[2] == 0 ? "off" : "on";
+                                    //    HomePage.UpdataLightView(relay);
+                                    //}
+                                    //else if (function.functionType == "Dimmer")
+                                    //{
+                                    //var light = function as Light;
+                                    light.on_off = receiveBytes[2] == 0 ? "off" : "on";
+                                    if (light.on_off == "on")
                                     {
-                                        break;
+                                        light.brightness = receiveBytes[2];
+                                        light.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%";
                                     }
-                                    if (receiveBytes[2] == 100 && light.state == 1)
+                                    HomePage.UpdataFunctionStates(light);
+                                    RoomPage.UpdataStates(light);
+                                    FunctionPage.UpdataStates(light);
+                                    ClassificationPage.UpdataInfo(light);
+                                    switch (light.functionType)
                                     {
-                                        break;
+                                        case FunctionType.Relay:
+                                            RelayPage.UpdataState(light);
+                                            break;
+                                        case FunctionType.Dimmer:
+                                            DimmerPage.UpdataStates(light);
+                                            break;
                                     }
-                                    if (function.functionType == "Relay")
-                                    {
-                                        var relay = function as Light;
-                                        relay.state = receiveBytes[2] == 0 ? 0 : 1;
-                                        HomePage.UpdataLightView(relay);
-                                    }
-                                    else if (function.functionType == "brightness")
-                                    {
-                                        var dimmer = function as Light;
-                                        dimmer.state = receiveBytes[2] == 0 ? 0 : 1;
-                                        dimmer.dicPropert["brightness"] = receiveBytes[1];
-                                        //dimmer.brightness = receiveBytes[1];
-                                        if (receiveBytes[2] > 0)
-                                            dimmer.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[2] + "%";
-                                        HomePage.UpdataLightView(dimmer);
-                                    }
+                                    //}
                                 }
                             }
                         }
                         break;
+                    case Command.SetLogicLoopColorACK:
+                    case Command.ReadLogicLoopColorACK:
+                        foreach (var rgb in DB_ResidenceData.residenceData.functionList.lights)
+                        {
+                            if (rgb.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
+                            {
+                                if (rgb.functionType == FunctionType.RGB)
+                                {
+                                    rgb.on_off = receiveBytes[1] > 0 ? "on" : "off";
+                                    if (receiveBytes[1] >0)
+                                    {
+                                        rgb.brightness = receiveBytes[1];
+                                        rgb.lastState = Language.StringByID(StringId.Brightness) + " : " + receiveBytes[1] + "%";
+                                    }
+                                    rgb.redColor = receiveBytes[6];
+                                    rgb.greenColor = receiveBytes[7];
+                                    rgb.blueColor = receiveBytes[8];
+
+                                    HomePage.UpdataFunctionStates(rgb);
+                                    RoomPage.UpdataStates(rgb);
+                                    FunctionPage.UpdataStates(rgb);
+                                    ClassificationPage.UpdataInfo(rgb);
+                                    RGBPage.UpdataStates(rgb);
+                                }
+                            }
+                        }
+                        break;
+                    case Command.SetCurtainModelStutasACK:
+                    case Command.ReadCurtainStutasACK:
+                        foreach (var curtain in DB_ResidenceData.residenceData.functionList.curtains)
+                        {
+                            if (curtain.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
+                            {
+                                switch(receiveBytes[1])
+                                {
+                                    case 0:
+                                        curtain.on_off = "stop";
+                                        break;
+                                    case 1:
+                                        curtain.on_off = "on";
+                                        curtain.lastState = Language.StringByID(StringId.Open);
+                                        break;
+                                    case 2:
+                                        curtain.on_off = "off";
+                                        curtain.lastState = Language.StringByID(StringId.Close);
+                                        break;
+                                    default:
+                                        if (receiveBytes[1] > 1)
+                                        {
+                                            curtain.on_off = "on";
+                                        }
+                                        else
+                                        {
+                                            curtain.on_off = "off";
+                                        }
+                                        curtain.openLevel = receiveBytes[1];
+                                        curtain.lastState = Language.StringByID(StringId.Open) + curtain.openLevel + "%";
+                                        break;
+                                }
+                                RoomPage.UpdataStates(curtain);
+                                FunctionPage.UpdataStates(curtain);
+                                HomePage.UpdataFunctionStates(curtain);
+                                ClassificationPage.UpdataInfo(curtain);
+                                switch (curtain.functionType)
+                                {
+                                    case FunctionType.Curtain:
+                                        CurtainModulePage.UpdataState(curtain);
+                                        break;
+                                }
+                            }
+                        }
+                        break;
+                    case Command.SetACModeACK:
+                    case Command.ReadACModeACK:
+                        foreach (var ac in DB_ResidenceData.residenceData.functionList.aCs)
+                        {
+                            if (ac.GetBusId() == subnetID + "_" + deviceID + "_" + receiveBytes[0])
+                            {
+                                ac.curTempType = receiveBytes[1];
+                                ac.indoorTemp = receiveBytes[2];
+                                ac.on_off = receiveBytes[8] == 1 ? "on" : "off";
+                                ac.curModeIndex = receiveBytes[9];
+                                ac.curFanIndex = receiveBytes[10];
+                                ac.curTemp = receiveBytes[11];
+                                ac.lastState = "";
+                                switch (ac.curMode)
+                                {
+                                    case "cool":
+                                        ac.lastState = Language.StringByID(StringId.Cool);
+                                        break;
+                                    case "heat":
+                                        ac.lastState = Language.StringByID(StringId.Heat);
+                                        break;
+                                    case "dry":
+                                        ac.lastState = Language.StringByID(StringId.Dry);
+                                        break;
+                                    case "auto":
+                                        ac.lastState = Language.StringByID(StringId.Auto);
+                                        break;
+                                    case "fan":
+                                        ac.lastState = Language.StringByID(StringId.AirSupply);
+                                        break;
+                                }
+                                switch (ac.curFan)
+                                {
+                                    case "high":
+                                        ac.lastState += " " + Language.StringByID(StringId.HighWindSpeed);
+                                        break;
+                                    case "medium":
+                                        ac.lastState += " " + Language.StringByID(StringId.MiddleWindSpeed);
+                                        break;
+                                    case "low":
+                                        ac.lastState += " " + Language.StringByID(StringId.LowWindSpeed);
+                                        break;
+                                    case "auto":
+                                        ac.lastState += " " + Language.StringByID(StringId.Auto);
+                                        break;
+                                }
+                                ac.lastState += " " + ac.curTemp + "掳C";
+                                RoomPage.UpdataStates(ac);
+                                FunctionPage.UpdataStates(ac);
+                                HomePage.UpdataFunctionStates(ac);
+                                ClassificationPage.UpdataInfo(ac);
+                                ACPage.UpdataStates(ac);
+                            }
+                        }
+                        break;
                 }
             }
             catch (Exception ex)

--
Gitblit v1.8.0