From a40848272e33822f72a7fe0310f079717bf73f23 Mon Sep 17 00:00:00 2001
From: wxr <wxr@hdlchina.com.cn>
Date: 星期五, 18 十月 2024 16:21:39 +0800
Subject: [PATCH] 修复金茂科技系统,金茂光伏问题

---
 HDL_ON/DAL/DriverLayer/Control_Udp.cs |   77 ++++++++++++++------------------------
 1 files changed, 29 insertions(+), 48 deletions(-)

diff --git a/HDL_ON/DAL/DriverLayer/Control_Udp.cs b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
index 5008602..3dceeb3 100644
--- a/HDL_ON/DAL/DriverLayer/Control_Udp.cs
+++ b/HDL_ON/DAL/DriverLayer/Control_Udp.cs
@@ -104,7 +104,7 @@
             try
             {
                 //璐﹀彿娌$櫥褰曚笉鍥炲
-                if ( UserInfo.Current == null || ! UserInfo.Current.IsLogin)
+                if ( UserInfo.Current == null )///|| ! UserInfo.Current.IsLogin)
                 {
                     return;
                 }
@@ -197,7 +197,7 @@
                             }
                             break;
                         case SPK.AcStandard:
-                        case SPK.HvacAC:
+                        case SPK.HvacAC:case SPK.HvacAcPanel:
                             AC acTemp = new AC();
                             byte onoff = 0;
                             byte mode = 0;
@@ -609,9 +609,8 @@
                         }
                         break;
                     case SPK.AcStandard:
-                    case SPK.HvacAC:
+                    case SPK.HvacAC:case SPK.HvacAcPanel:
                         var ac = new AC();
-
                         byte onoff = 0;
                         onoff = function.trait_on_off.curValue.ToString() == "on" ? (byte)1 : (byte)0;
                         byte mode = 0;
@@ -621,28 +620,34 @@
                         byte sanfan = 0;
                         byte temp = 16;
                         temp = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.SetTemp));
+                        byte coolTemp = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.CoolTemperatrue));
+                        byte heatTemp = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.HeatTemperatrue));
+                        byte autoTemp = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.AutoTemperatrue));
+                        byte dehumiTemp = Convert.ToByte(function.GetAttrState(FunctionAttributeKey.DehumiTemperatrue));
                         foreach (var dic in commandDictionary)
                         {
                             switch (dic.Key)
                             {
                                 case FunctionAttributeKey.OnOff:
                                     onoff = dic.Value == "on" ? (byte)1 : (byte)0;
-                                    //ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID,
-                                    //    new byte[] { 3, onoff, function.bus.LoopId });
                                     break;
                                 case "mode":
                                     switch (dic.Value)
                                     {
                                         case "auto":
                                             mode = 3;
+                                            temp = autoTemp;
                                             break;
                                         case "cool":
                                             mode = 0;
+                                            temp = coolTemp;
                                             break;
                                         case "heat":
                                             mode = 1;
+                                            temp = heatTemp;
                                             break;
                                         case "dry":
+                                            temp = dehumiTemp;
                                             mode = 4;
                                             break;
                                         case "fan":
@@ -652,8 +657,6 @@
                                             mode = 0;
                                             break;
                                     }
-                                    //ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID,
-                                    //    new byte[] { 6, mode, function.bus.LoopId });
                                     break;
                                 case "fan":
                                     switch (dic.Value)
@@ -674,8 +677,6 @@
                                             fan = 0;
                                             break;
                                     }
-                                    //ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID,
-                                    //    new byte[] { 5, fan, function.bus.LoopId });
                                     break;
                                 case FunctionAttributeKey.SetTemp:
                                     try
@@ -686,28 +687,6 @@
                                     {
                                         temp = 16;
                                     }
-                                    //byte modeKey = 4;
-                                    //switch (ac.GetModeIndex(function))
-                                    //{
-                                    //    case 3:
-                                    //        modeKey = 8;
-                                    //        break;
-                                    //    case 0:
-                                    //        modeKey = 4;
-                                    //        break;
-                                    //    case 1:
-                                    //        modeKey = 7;
-                                    //        break;
-                                    //    case 4:
-                                    //        modeKey = 19;
-                                    //        break;
-                                    //    case 2:
-                                    //        modeKey = 2;
-                                    //        break;
-                                    //}
-                                    
-                                    //ControlBytesSend(Command.InstructionPanelKey, function.bus.SubnetID, function.bus.DeviceID, new byte[] {
-                                    //            modeKey, temp, function.bus.LoopId });
                                     break;
                                 case FunctionAttributeKey.Swing:
                                     //sanfan
@@ -717,22 +696,23 @@
                                     break;
                             }
                         }
-                        /// 璁剧疆绌鸿皟妯″潡鍛戒护
-                        /// 1绌鸿皟鍙�(1-128) 
-                        ///2娓╁害妯″紡(鎽勬皬Celsius:0锛屽崕姘廎ahrenheit:1)                                     
-                        ///3鐜娓╁害 (鎽勬皬0-40锛屽崕姘�32-99)    
-                        ///4鍒跺喎鎺у埗娓╁害(鎽勬皬0-30锛屽崕姘�32-86)    
-                        ///5鍒剁儹鎺у埗娓╁害(鎽勬皬0-30锛屽崕姘�32-86)
-                        ///6鑷姩鎺у埗娓╁害(鎽勬皬0-30锛屽崕姘�32-86)                                                                                           
-                        ///7闄ゆ箍鎺у埗娓╁害(鎽勬皬0-30锛屽崕姘�32-86)
-                        ///8妞掔饥鍋堝浣裤伔楂?  楂�4bit妯″紡(0 鍒跺喎锛�1鍒剁儹锛�2閫氶)  浣�4bit椋庨��(0 鑷姩锛�1楂橀?椋庯紝3浣庨)
-                        ///9绌鸿皟寮�鍏�                 (1寮�0鍏�)           
-                        ///10璁剧疆妯″紡               0 鍒跺喎1鍒剁儹锛�2閫氶锛�3鑷姩锛�4闄ゆ箍
-                        ///11璁剧疆椋庨��                0 鑷姩锛�1楂橀2涓锛�3浣庨          
-                        ///12宸ヤ綔妯℃帶鍒舵俯鑲氭幃鎽勬皬0-30锛屽崕姘�32-86)         
-                        ///13鎵妯″紡锛氶珮4bit(瀹為檯鎵鐘舵�侊細0涓嶆壂椋庯紝1鎵)锛屼綆4bit(璁剧疆鎵妯″紡锛�0涓嶆壂椋庯紝1鎵)
+                        switch (mode)
+                        {
+                            case 0:
+                                coolTemp = temp;
+                                break;
+                            case 1:
+                                heatTemp = temp;
+                                break;
+                            case 3:
+                                autoTemp = temp;
+                                break;
+                            case 4:
+                                dehumiTemp = temp;
+                                break;
+                        }
                         ControlBytesSend(Command.SetACMode, function.bus.SubnetID, function.bus.DeviceID, new byte[] { function.bus.LoopId,
-                        0,0,0,0,0,0,0,onoff,mode,fan,temp,sanfan});
+                        0,0,coolTemp,heatTemp,autoTemp,dehumiTemp,0,onoff,mode,fan,temp,sanfan});
 
                         break;
                     case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:case SPK.HvacFloorHeatPanel:
@@ -957,7 +937,7 @@
                         ControlBytesSend(Command.ReadCurtainStatus, subnetId, deviceId, new byte[] { function.bus.LoopId });
                         break;
                     case SPK.AcStandard:
-                    case SPK.HvacAC:
+                    case SPK.HvacAC:case SPK.HvacAcPanel:
                         ControlBytesSend(Command.ReadACMode, subnetId, deviceId, new byte[] { function.bus.LoopId });
                         break;
                     case SPK.HvacFloorHeat:case SPK.FloorHeatStandard:case SPK.HvacFloorHeatPanel:
@@ -1218,6 +1198,7 @@
         /// </summary>
         public void SearchLocalGateway(bool broadcast = false)
         {
+            //MainPage.Log("SearchLocalGateway");
             try
             {
                 var sendJob = new JObject { { "id", Control.Ins.msg_id.ToString() }, { "time_stamp", Utlis.GetTimestamp ()} };

--
Gitblit v1.8.0