protected override void ReadAttribute(string key, string value) { switch (key) { case "Region": this.Region = (ERegionType)value.ToInt32(); break; case "Affect": this.Affect = (EAffect)value.ToInt32(); break; case "LifeTime": this.LifeTime = value.ToFloat(); break; case "MaxCount": this.MaxCount = value.ToInt32(); break; case "JudgeName": this.JudgeName = value; break; } }
private string GetDataArrayFromRegion(ERegionType eType, List <List <ushort> > listlistRegion, ref bool[] regionData) { List <short[]> listData = new List <short[]>(); foreach (var listT in listlistRegion) { for (int j = 0; j < listT.Count; j = j + 5) { ushort num; if (((listT.Count - j) * 16) > 80) { num = 80; } else { num = (ushort)((listT.Count - j) * 16); } bool[] bData; try { switch (eType) { case ERegionType.Region_DI: { Thread.Sleep(5); bData = master.ReadInputs( (ushort)(CT2.ECT2Descrites.RegionDI + (listT[j]) * 16), (ushort)num); bData.CopyTo(regionData, listT[j] * 16); break; } case ERegionType.Region_DO: { Thread.Sleep(5); bData = master.ReadCoils( (ushort)(CT2.ECT2Coils.RegionDO + (listT[j]) * 16), (ushort)num); bData.CopyTo(regionData, listT[j] * 16); break; } case ERegionType.Region_AO: case ERegionType.Region_AI: default: break; } } catch (Exception e) { return(e.Message); //throw; } } } return("NO_ERR"); }
private string GetDataArrayFromRegion(ERegionType eType, List <List <ushort> > listlistRegion, ref ushort[] regionData) { List <short[]> listData = new List <short[]>(); foreach (var listT in listlistRegion) { for (int j = 0; j < listT.Count; j = j + 100) { ushort num; if ((listT.Count - j) > 100) { num = 100; } else { num = (ushort)(listT.Count - j); } ushort[] regs; try { switch (eType) { case ERegionType.Region_AO: { Thread.Sleep(10); regs = master.ReadHoldingRegisters( (ushort)(CT2.ECT2HoldReg.RegionAO + listT[j] * 1), (ushort)num); regs.CopyTo(regionData, listT[j]); break; } case ERegionType.Region_AI: { Thread.Sleep(10); regs = master.ReadInputRegisters( (ushort)(CT2.ECT2InputReg.RegionAI + listT[j] * 1), (ushort)num); regs.CopyTo(regionData, listT[j]); break; } case ERegionType.Region_DI: case ERegionType.Region_DO: default: break; } } catch (Exception e) { return(e.Message); } } } return("NO_ERR"); }
private void WriteDataFromRegionToNode(ERegionType eType, ref List <CT2.CIoNode> list, bool[] regionData) { foreach (var IoNode in list) { switch (eType) { case ERegionType.Region_DI: { if (IoNode.CheckIfExistDI()) { IoNode.m_DataDI.Clear(); for (int i = IoNode.m_DI_AddrStart * 8; i < (IoNode.m_DI_AddrEnd + 1) * 8; i++) { IoNode.m_DataDI.Add(regionData[i]); } } break; } case ERegionType.Region_DO: { if (IoNode.CheckIfExistDO()) { IoNode.m_DataDO.Clear(); for (int i = IoNode.m_DO_AddrStart * 8; i < (IoNode.m_DO_AddrEnd + 1) * 8; i++) { IoNode.m_DataDO.Add(regionData[i]); } } break; } case ERegionType.Region_AO: case ERegionType.Region_AI: default: break; } } }
private void WriteDataFromRegionToNode(ERegionType eType, ref List <CT2.CIoNode> list, ushort[] regionData) { foreach (var IoNode in list) { switch (eType) { case ERegionType.Region_DI: break; case ERegionType.Region_AI: if (IoNode.CheckIfExistAI()) { IoNode.m_DataAI.Clear(); for (int i = ((IoNode.m_AI_AddrStart - 200) / 2); i <= ((IoNode.m_AI_AddrEnd - 200) / 2); i++) { IoNode.m_DataAI.Add(regionData[i]); } } break; case ERegionType.Region_DO: break; case ERegionType.Region_AO: if (IoNode.CheckIfExistAO()) { IoNode.m_DataAO.Clear(); for (int i = ((IoNode.m_AO_AddrStart - 200) / 2); i <= ((IoNode.m_AO_AddrEnd - 200) / 2); i++) { IoNode.m_DataAO.Add(regionData[i]); } } break; default: break; } } }