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); } }
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; }