黄学彪
2020-04-28 e22fdb94322e6cec38e5e4a9aec13d431a133fde
ZigbeeApp/Shared/Phone/ZigBee/Device/Panel.cs
@@ -155,6 +155,7 @@
        /// <para>304:CurtainDownstop,窗帘下降停</para>
        /// </summary>
        public List<int> privateFuncThirdLevelList = new List<int>();
        #region 获取面板的私有信息.
        /// <summary>
        ///获取面板的私有信息
@@ -1402,7 +1403,7 @@
        ///<summary >
        /// 配置按键指示灯面板节能模式
        /// <para>modeEnable:节能模式使能</para>
        /// <para>modeTime:无操作进入节能模式时间 0-ff</para>
        /// <para>modeTime:无操作进入节能模式时间 0-ffff</para>
        /// <para>节能模式亮度:0-100</para>
        /// </summary>
        public async System.Threading.Tasks.Task<ResponseAllData> SetKeyModeAsync(bool modeEnable, int modeTime, int level)
@@ -1509,11 +1510,11 @@
        string SetPanelModeModeData(bool modeEnable, int modeTime, int modelevel)
        {
            string data = "";
            string dataLength = "07";
            string dataLength = "08";
            string dataComand1 = "03";
            string dataComand2 = "04";
            string dataSerialNum = "01";
            string addDataLength = "03";
            string addDataLength = "04";
            string mode = "";
            string time = "";
            string level = "";
@@ -1527,17 +1528,30 @@
                {
                    mode = "00";
                }
                var sbString1 = new System.Text.StringBuilder();
                string temp = Convert.ToString(modeTime, 16);
                switch (temp.Length)
                if (modeTime == -1)
                {
                    case 1:
                        time = "0" + temp;
                        break;
                    case 2:
                        time = temp;
                        break;
                    //当节能模式没有给时间,默认给60秒
                    modeTime = 60;
                }
                var tempBytes = new byte[2];
                for (int i = 0; i < 2; i++)
                {
                    tempBytes[i] = (byte)(modeTime >> (i * 8) & 0xff);
                }
                var time1 = Convert.ToString(tempBytes[0], 16);
                var time2 = Convert.ToString(tempBytes[1], 16);
                if (time1.Length == 1)
                {
                    time1 = "0" + time1;
                }
                if (time2.Length == 1)
                {
                    time2 = "0" + time2;
                }
                time = (time1 + time2).ToUpper();
                var sbString2 = new System.Text.StringBuilder();
                string temp2 = Convert.ToString(modelevel, 16);
@@ -1551,10 +1565,9 @@
                        break;
                }
                sbString1.Append(time.ToUpper());
                sbString2.Append(level.ToUpper());
                data = dataLength + dataComand1 + dataComand2 + dataSerialNum + addDataLength +
                   mode + sbString1 + sbString2;
                   mode + time + sbString2;
            }
            catch { };
@@ -2153,7 +2166,7 @@
                            if (gatewayTemp.clientDataPassthroughResponseData?.PassData != null)
                            {
                                var data = gatewayTemp.clientDataPassthroughResponseData.PassData;
                                if (data.Length == 16)
                                if (data.Length == 18)
                                {
                                    var command = data[4].ToString() + data[5].ToString() + data[2].ToString() + data[3].ToString();
                                    if (command == "0409")
@@ -2167,8 +2180,8 @@
                                        {
                                            tempR.enable = false;
                                        }
                                        tempR.time = Convert.ToInt32(data[12].ToString() + data[13].ToString(), 16);
                                        tempR.level = Convert.ToInt32(data[14].ToString() + data[15].ToString(), 16);
                                        tempR.time = Convert.ToInt32(data[14].ToString() + data[15].ToString() + data[12].ToString() + data[13].ToString(), 16);
                                        tempR.level = Convert.ToInt32(data[16].ToString() + data[17].ToString(), 16);
                                        panelSaveEnergyModeInfo = tempR;
                                        result = new PanelSwitchLevelResponInfo { panelSaveEnergyModeInfo = tempR };
                                        System.Console.WriteLine($"UI收到通知后的主题_command:0408_{ topic}");