Ejemplo n.º 1
0
        private void SetBackNetValue()
        {
            myBcakNet.otherInfo = new List <BacNet.OtherInfo>();
            for (int i = 0; i < DgvList.RowCount; i++)
            {
                BacNet.OtherInfo temp = new BacNet.OtherInfo();
                temp.ID           = Convert.ToByte(i + 1);
                temp.BackNetIDAry = new byte[4];
                int intTmp = Convert.ToInt32(DgvList[2, i].Value.ToString(), 16);
                temp.BackNetIDAry[0] = Convert.ToByte((intTmp & 0xFF));
                temp.BackNetIDAry[1] = Convert.ToByte((intTmp & 0xFFFF) / 256);
                temp.BackNetIDAry[2] = Convert.ToByte((intTmp / 0xFFFF) & 256);
                temp.BackNetIDAry[2] = Convert.ToByte((intTmp & 0xFFFF) / 256);

                int    typeTmp = cbtype.Items.IndexOf(DgvList[3, i].Value.ToString());
                string strFist = DgvList[6, i].Value.ToString();
                if (strFist.Contains("("))
                {
                    strFist = strFist.Split('(')[0];
                }
                string strSencond = DgvList[7, i].Value.ToString();
                if (strSencond.Contains("("))
                {
                    strSencond = strSencond.Split('(')[0];
                }
                switch (typeTmp)
                {
                case 0:
                    temp.Type = 0;
                    break;

                case 1:    //场景
                    temp.Type   = 0x000C;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 9:     // 广播场景
                    temp.Type   = 0x000C;
                    temp.Param1 = 255;
                    break;

                case 2:    //序列
                    temp.Type   = 0xE014;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 3:    //通用开关
                    temp.Type   = 0xE018;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 4:    //单路调节
                    temp.Type = 0x0033;
                    int intTmp2 = Convert.ToInt32(HDLPF.GetTimeFromString(strSencond, ':'));
                    temp.Param1 = Convert.ToByte(Convert.ToInt32(strFist));
                    temp.Param2 = Convert.ToByte(intTmp2 / 256);
                    temp.Param3 = Convert.ToByte(intTmp2 % 256);
                    break;

                case 10:    // 广播回路
                    temp.Type = 0x0033;
                    int intTmpTime = Convert.ToInt32(HDLPF.GetTimeFromString(strSencond, ':'));
                    temp.Param1 = 255;
                    temp.Param2 = Convert.ToByte(intTmpTime / 256);
                    temp.Param3 = Convert.ToByte(intTmpTime % 256);
                    break;

                case 5:    //时间开关
                    temp.Type   = 0xF112;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 6:    //窗帘开关
                    temp.Type = 0xE3E2;
                    if (strFist == CsConst.mstrInvalid)
                    {
                        strFist = CsConst.CurtainModes[1];
                    }
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 7:    //GPRS控制
                    temp.Type   = 0xE3D6;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 8:    //面板控制
                    temp.Type   = 0xE3DA;
                    temp.Param1 = Convert.ToByte(cbpam1PanelControl.Items.IndexOf(strFist));
                    if (temp.Param1 == 15 || temp.Param1 == 16 || temp.Param1 == 17 || temp.Param1 == 18)
                    {
                        temp.Param2 = Convert.ToByte(strSencond);
                    }
                    break;

                case 11:    //消防模块
                    temp.Type   = 0x011E;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 12:    //通用控制
                    temp.Type   = 0x16A4;
                    temp.Param1 = Convert.ToByte(strFist);
                    temp.Param2 = Convert.ToByte(strSencond);
                    break;

                case 13:    //干接点
                    temp.Type   = 0x15CE;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 14:    //模拟值输出
                    temp.Type   = 0xE440;
                    temp.Param1 = Convert.ToByte(cbpam1Analog.Items.IndexOf(strFist));
                    break;

                case 15:    //温度读取(1 byte)
                    temp.Type   = 0xE3E7;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 16:    //温度读取(4 byte)
                    temp.Type   = 0x1948;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 17:    //读取DALI灯状态
                    temp.Type   = 0xA008;
                    temp.Param1 = Convert.ToByte(strFist);
                    break;

                case 18:    //模拟量设置
                    temp.Type   = 0xE444;
                    temp.Param1 = Convert.ToByte(cbpam1Analog.Items.IndexOf(strFist));
                    break;
                }
                if (DgvList[8, i].Value == null)
                {
                    temp.Remark = "";
                }
                else
                {
                    temp.Remark = DgvList[8, i].Value.ToString();
                }
                temp.strDevName = Convert.ToByte(DgvList[4, i].Value.ToString()) + "/" + Convert.ToByte(DgvList[5, i].Value.ToString());
                myBcakNet.otherInfo.Add(temp);
            }
        }
Ejemplo n.º 2
0
        private void showBackNetSetupInfo()
        {
            try
            {
                if (myBcakNet.otherInfo == null)
                {
                    return;
                }
                if (myBcakNet.otherInfo.Count <= 0)
                {
                    return;
                }
                DgvList.Rows.Clear();
                #region
                for (int i = 0; i < myBcakNet.otherInfo.Count; i++)
                {
                    BacNet.OtherInfo temp = myBcakNet.otherInfo[i];
                    int    intValue       = ((((temp.BackNetIDAry[3] * 256 + temp.BackNetIDAry[2]) & 0x7FF) * 65536 + temp.BackNetIDAry[1] * 256 + temp.BackNetIDAry[0]) & 0x7FFFFFF);
                    string strID          = "";
                    string strhexID       = "";
                    if (intValue >= 0 && intValue <= 0x3FFFFF)
                    {
                        strID = CsConst.BackNetIDString[0] + ":" + Convert.ToString(intValue);
                    }
                    else if (intValue >= 0x400000 && intValue <= 0x7FFFFF)
                    {
                        strID = CsConst.BackNetIDString[1] + ":" + Convert.ToString(intValue - 0x400000);
                    }
                    else if (intValue >= 0x800000 && intValue <= 0xBFFFFF)
                    {
                        strID = CsConst.BackNetIDString[2] + ":" + Convert.ToString(intValue - 0x800000);
                    }
                    else if (intValue >= 0xC00000 && intValue <= 0xFFFFFF)
                    {
                        strID = CsConst.BackNetIDString[3] + ":" + Convert.ToString(intValue - 0xC00000);
                    }
                    else if (intValue >= 0x1000000 && intValue <= 0x13FFFFF)
                    {
                        strID = CsConst.BackNetIDString[4] + ":" + Convert.ToString(intValue - 0x1000000);
                    }
                    else if (intValue >= 0x1400000 && intValue <= 0x17FFFFF)
                    {
                        strID = CsConst.BackNetIDString[5] + ":" + Convert.ToString(intValue - 0x1400000);
                    }
                    else if (intValue >= 0x3400000 && intValue <= 0x37FFFFF)
                    {
                        strID = CsConst.BackNetIDString[6] + ":" + Convert.ToString(intValue - 0x3400000);
                    }
                    else if (intValue >= 0x3800000 && intValue <= 0x3BFFFFF)
                    {
                        strID = CsConst.BackNetIDString[7] + ":" + Convert.ToString(intValue - 0x3800000);
                    }
                    else if (intValue >= 0x4C00000 && intValue <= 0x4FFFFFF)
                    {
                        strID = CsConst.BackNetIDString[8] + ":" + Convert.ToString(intValue - 0x4C00000);
                    }
                    else
                    {
                        strID = CsConst.BackNetIDString[9] + ":" + Convert.ToString(intValue);
                    }
                    strhexID = "0x" + GlobalClass.AddLeftZero(Convert.ToString(intValue, 16), 8);
                    string strType   = "";
                    string stFirst   = "";
                    string strSecond = "";
                    switch (temp.Type)
                    {
                    case 0x000C:
                        if (temp.Param1 == 255)    ///广播场景
                        {
                            strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00010", "");
                            stFirst = CsConst.WholeTextsList[2566].sDisplayName;
                        }
                        else    ////场景控制
                        {
                            strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00002", "");
                            stFirst = temp.Param1.ToString() + "(" + CsConst.WholeTextsList[2510].sDisplayName + ")";
                        }
                        break;

                    case 0xE014:    ///序列控制
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00003", "");
                        stFirst = temp.Param1.ToString() + "(" + CsConst.WholeTextsList[2510].sDisplayName + ")";
                        break;

                    case 0xE018:    ////通用开关
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00004", "");
                        stFirst = temp.Param1.ToString() + "(" + CsConst.WholeTextsList[2513].sDisplayName + ")";
                        break;

                    case 0x0033:
                        if (temp.Param1 == 255)    ////广播回路
                        {
                            strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00011", "");
                            stFirst = CsConst.WholeTextsList[2567].sDisplayName;
                        }
                        else    ///单路调节
                        {
                            strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00005", "");
                            stFirst = temp.Param1.ToString() + "(" + CsConst.WholeTextsList[934].sDisplayName + ")";
                        }
                        int intTime = temp.Param2 * 256 + temp.Param3;
                        intTime   = intTime % 3659;
                        strSecond = Convert.ToString(intTime / 60) + ":" + Convert.ToString(intTime % 60);
                        break;

                    case 0xF112:    ///时间开关
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00006", "");
                        stFirst = temp.Param1.ToString() + "(" + CsConst.mstrINIDefault.IniReadValue("public", "99921", "") + ")";
                        break;

                    case 0xE3E2:    ////窗帘开关
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00007", "");
                        stFirst = temp.Param1.ToString() + "(" + CsConst.mstrINIDefault.IniReadValue("public", "99844", "") + ")";
                        break;

                    case 0xE3D6:    ///GPRS控制
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00008", "");
                        stFirst = temp.Param1.ToString() + "(" + CsConst.mstrINIDefault.IniReadValue("public", "99845", "") + ")";
                        break;

                    case 0xE3DA:    ///面板控制
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00009", "");
                        if (temp.Param1 > 28 || temp.Param1 < 0)
                        {
                            temp.Param1 = 0;
                        }
                        stFirst = HDLSysPF.selectNoteResultFromDB("tmpAirControlTypeForPanelControl", Convert.ToInt32(temp.Param1));
                        switch (temp.Param1)
                        {
                        case 15:
                        case 17:
                        case 18:
                            strSecond = temp.Param2.ToString() + "(" + CsConst.mstrINIDefault.IniReadValue("public", "99846", "") + ")";
                            break;

                        case 16:
                            strSecond = temp.Param2.ToString() + "(" + CsConst.mstrINIDefault.IniReadValue("public", "99847", "") + ")";
                            break;
                        }
                        break;

                    case 0x011E:    ///消防模块
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00012", "");
                        //if (Param1 > 8 || Param1 < 1) Param1 = 1;
                        stFirst = Convert.ToString(temp.Param1) + "(" + CsConst.WholeTextsList[2510].sDisplayName + ")";
                        break;

                    case 0x16A4:    ///通用控制
                        strType   = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00013", "");
                        stFirst   = Convert.ToString(temp.Param2);
                        strSecond = Convert.ToString(temp.Param1);
                        break;

                    case 0x15CE:    ///干接点
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00014", "");
                        stFirst = Convert.ToString(temp.Param1);
                        break;

                    case 0xE440:    ///模拟量输出
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00015", "");
                        stFirst = cbpam1Analog.Items[0].ToString();
                        break;

                    case 0xE3E7:    ///温度读取 1byte
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00016", "");
                        stFirst = Convert.ToString(temp.Param1) + "(" + CsConst.mstrINIDefault.IniReadValue("public", "99921", "") + ")";
                        break;

                    case 0x1948:    ///温度读取 4byte
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00017", "");
                        stFirst = Convert.ToString(temp.Param1) + "(" + CsConst.mstrINIDefault.IniReadValue("public", "99921", "") + ")";
                        break;

                    case 0xA008:    ///读取DALI灯状态
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00018", "");
                        stFirst = Convert.ToString(temp.Param1);
                        break;

                    case 0xE444:    ///模拟量设置
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00019", "");
                        stFirst = cbpam1Analog.Items[0].ToString();
                        break;
                    }
                    if (strType == "")
                    {
                        strType = CsConst.mstrINIDefault.IniReadValue("KeyFunType", "00001", "");
                        stFirst = "N/A";
                    }
                    if (strSecond == "")
                    {
                        strSecond = "N/A";
                    }
                    object[] obj = new object[] { temp.ID.ToString(), strID, strhexID, strType, temp.strDevName.Split('/')[0].ToString(),
                                                  temp.strDevName.Split('/')[1].ToString(), stFirst, strSecond, temp.Remark };
                    DgvList.Rows.Add(obj);
                }
                #endregion
            }
            catch
            {
            }
            isReading = false;
        }