Beispiel #1
0
        /// <summary>
        /// 获取所有设备的状态
        /// </summary>
        public static void GetDeviceDatas_Redis()
        {
            string devGuid = " ";
            byte   brightness;
            string StrStatus;

            datasLamp = RedisController.Get_Datas_Lamp_Redis(devGuid);       // 获取缓存的灯光状态

            datasCurtain = RedisController.Get_Datas_Curtain_Redis(devGuid); //获取缓存的窗帘状态

            datasAir   = RedisController.Get_Datas_Air_Redis(devGuid);       //获取缓存的空调状态
            brightness = datasLamp.LampBrightness;
            if (LampStatusEnum.Off == datasLamp.LampStatus)
            {
                StrStatus = "01 00 80";
            }
            if (LampStatusEnum.On == datasLamp.LampStatus)
            {
                StrStatus = "01 00 81";
            }
        }
Beispiel #2
0
 /**
  *
  * @api {Class Method} / BUS驱动的窗帘状态上报
  * @apiName bus curtain device status report
  * @apiGroup 驱动接口
  * @apiVersion 1.0.1
  * @apiDescription
  *
  * 函数接口,跟HttpRequest请求的接口调用方法不一样,需要引用DLL文件直接调用
  * HDLCommon.dll、HDLApiEntity.dll 驱动接口的DLL库文件
  *
  * 状态上报调用的函数
  *
  * public static void Bus_Device_Status_Report_Curtain(DatasCurtain deviceStatusObj)
  *
  * 函数接口请忽略下面的URL前缀地址
  *
  * @apiParam {DatasCurtain} deviceStatusObj 窗帘状态对象
  *
  */
 /// <summary>
 /// 窗帘,设备状态上报
 /// </summary>
 /// <param name="deviceStatusObj">窗帘数据上报对象</param>
 public static void Bus_Device_Status_Report_Curtain(DatasCurtain deviceStatusObj)
 {
     redisReport.PublishAsync(RedisThemeType.Bus_Device_Report_Curtain.ToString(), JsonConvert.SerializeObject(deviceStatusObj));
 }
Beispiel #3
0
        /// <summary>
        /// 打印接收到的数据
        /// </summary>
        /// <param name=""></param>
        /// <returns></returns>
        void ShowData()
        {
            try
            {
                Receive.receiveItems RciveTtem = new Receive.receiveItems();
                byte[] receivemess             = null;
                string changebuf   = null;
                string straddress1 = null;
                //string straddress2 = null;
                string Databuff   = null;
                string Srcaddress = null;
                if (Receive.receiveBuff.Count != 0)
                {
                    receivemess = Receive.receiveBuff.Dequeue();
                    for (int i = 0; i < receivemess.Length; i++)
                    {
                        changebuf += receivemess[i].ToString("X2") + " ";
                    }

                    //straddress1 = receivemess[12].ToString("X2") +" "+ receivemess[13].ToString("X2");
                    //straddress2 = receivemess[13].ToString();
                    //int address = Convert.ToInt32(straddress1, 16) * 256 + Convert.ToInt32(straddress2, 16);

                    //Srcaddress = receivemess[10].ToString("X2") + " " + receivemess[11].ToString("X2");

                    straddress1          = ExchangeDesaddr(receivemess[12], receivemess[13]);
                    Srcaddress           = "1.1." + receivemess[11].ToString();
                    RciveTtem.dstAddress = straddress1;
                    RciveTtem.SrcAddress = Srcaddress;
                    if (receivemess.Length == 17)
                    {
                        RciveTtem.StrMessage = ExchangeMess(receivemess[16].ToString("X2"));
                    }
                    else if (receivemess.Length == 18)
                    {
                        RciveTtem.StrMessage = ExchangeMess(receivemess[17].ToString("X2"));
                    }
                    else if (receivemess.Length == 19)
                    {
                        RciveTtem.StrMessage = ExchangeMess(receivemess[18].ToString("X2"));
                    }
                    //RciveTtem.StrMessage = receivemess[14].ToString("X2") +" " +receivemess[15].ToString("X2") + " " + receivemess[16].ToString("X2");


                    Databuff = DateTime.Now.ToShortTimeString() + "   源地址: " + RciveTtem.SrcAddress + "   目的地址:"
                               + RciveTtem.dstAddress + "   相关信息:" + RciveTtem.StrMessage + "\n";

                    if (RciveTtem.StrMessage.Contains("|"))
                    {
                        richTextBox1.Text = richTextBox1.Text.Insert(0, Databuff);
                    }

                    //richTextBox1.AppendText(changebuf.ToString());
                    //richTextBox1.AppendText(Environment.NewLine);
                    if (receivemess[12] == 10)
                    {
                        DatasLamp datasLamp = new DatasLamp();
                        if (receivemess[16] == 128)
                        {
                            datasLamp.LampStatus     = LampStatusEnum.Off;
                            datasLamp.LampBrightness = 0;
                        }
                        else if (receivemess[16] == 129)
                        {
                            datasLamp.LampStatus     = LampStatusEnum.On;
                            datasLamp.LampBrightness = 100;
                        }
                        myknx.LampStatusList.Add(datasLamp);
                    }

                    else if (receivemess[12] == 18 || receivemess[12] == 20)
                    {
                        DatasCurtain datasCurtain = new DatasCurtain();
                        if (receivemess[16] == 128 && receivemess[12] == 18)
                        {
                            datasCurtain.CurtainStatus    = CurtainStatusEnum.Close;
                            datasCurtain.CutainPercentage = 0;
                        }
                        else if (receivemess[16] == 129 && receivemess[12] == 18)
                        {
                            datasCurtain.CurtainStatus    = CurtainStatusEnum.Open;
                            datasCurtain.CutainPercentage = 100;
                        }
                        else if (receivemess[16] == 128 && receivemess[12] == 20)
                        {
                            datasCurtain.CurtainStatus = CurtainStatusEnum.Stop;
                            //datasCurtain.CutainPercentage = 100;
                        }
                        myknx.CurtainStatusList.Add(datasCurtain);
                    }
                    else if (receivemess[11] == 26)
                    {
                        DatasAir datasAir = new DatasAir();
                        if (receivemess[17].ToString("X2") == "55")
                        {
                            datasAir.SetupSpeed = AirSpeedEnum.Low;
                        }
                        else if (receivemess[17].ToString("X2") == "AA")
                        {
                            datasAir.SetupSpeed = AirSpeedEnum.Middle;
                        }
                        else if (receivemess[17].ToString("X2") == "FF")
                        {
                            datasAir.SetupSpeed = AirSpeedEnum.High;
                        }
                        else if (receivemess[12] == 29 && receivemess[13] == 6)
                        {
                            datasAir.SetupSpeed = AirSpeedEnum.Auto;
                        }
                        else if (receivemess[12] == 29 && receivemess[13] == 1)
                        {
                            datasAir.SetupMode = AirModeEnum.Cold;
                        }
                        else if (receivemess[12] == 29 && receivemess[13] == 2)
                        {
                            datasAir.SetupMode = AirModeEnum.Hot;
                        }
                        else if (receivemess[12] == 29 && receivemess[13] == 4)
                        {
                            datasAir.SetupMode = AirModeEnum.Fan;
                        }
                        else if (receivemess[12] == 29 && receivemess[13] == 5)
                        {
                            datasAir.SetupMode = AirModeEnum.Auto;
                        }
                        else if (receivemess[18].ToString("X2") == "1A")
                        {
                            datasAir.ActualTemp = 21;
                        }
                        else if (receivemess[18].ToString("X2") == "4C")
                        {
                            datasAir.ActualTemp = 22;
                        }
                        else if (receivemess[18].ToString("X2") == "7E")
                        {
                            datasAir.ActualTemp = 23;
                        }
                        else if (receivemess[18].ToString("X2") == "B0")
                        {
                            datasAir.ActualTemp = 24;
                        }
                        else if (receivemess[18].ToString("X2") == "E2")
                        {
                            datasAir.ActualTemp = 25;
                        }
                        else if (receivemess[18].ToString("X2") == "14")
                        {
                            datasAir.ActualTemp = 26;
                        }
                        else if (receivemess[18].ToString("X2") == "46")
                        {
                            datasAir.ActualTemp = 27;
                        }
                        else if (receivemess[18].ToString("X2") == "78")
                        {
                            datasAir.ActualTemp = 28;
                        }
                        else if (receivemess[18].ToString("X2") == "AA")
                        {
                            datasAir.ActualTemp = 29;
                        }
                        else if (receivemess[18].ToString("X2") == "DC ")
                        {
                            datasAir.ActualTemp = 30;
                        }

                        myknx.AirStatusList.Add(datasAir);
                    }
                }
            }

            catch (Exception ex)
            { MessageBox.Show(ex.Message); }
        }