public override void Initial(MIPCControlHandler mipcControl, AlarmHandler alarmHandler, SafetySensorData config) { this.alarmHandler = alarmHandler; this.mipcControl = mipcControl; Config = config; device = MethodInfo.GetCurrentMethod().ReflectedType.Name; }
private void ReadInputAndSafetyLevel(ref SafetySensorData temp, XmlElement element) { foreach (XmlNode item in element.ChildNodes) { ReadInputDataXML(ref temp, (XmlElement)item); } }
private void ReadInputDataXML(ref SafetySensorData temp, XmlElement element) { bool a = true; bool readLevel = false; EnumSafetyLevel level = EnumSafetyLevel.Normal; bool readTag = false; string tag = ""; foreach (XmlNode item in element.ChildNodes) { switch (item.Name) { case "MIPCTagName": if (localData.MIPCData.AllDataByMIPCTagName.ContainsKey(item.InnerText)) { tag = item.InnerText; readTag = true; } else { WriteLog(1, "", String.Concat("Tag : ", item.InnerText, " not find in AllDataByMIPCTagName")); } break; case "SafetyLevel": if (Enum.TryParse(item.InnerText, out level)) { readLevel = true; } else { WriteLog(3, "", String.Concat("無此SafetyLevel : ", item.InnerText)); } break; case "AB": if (item.InnerText == "B") { a = false; } break; default: break; } } if (readTag && readLevel) { temp.InputSafetyLevelList.Add(level); temp.MIPCTagNmaeInput.Add(tag); temp.ABList.Add(a); } }
private void ReadSafetySensorXML(XmlElement element) { SafetySensorData temp = new SafetySensorData(); foreach (XmlNode item in element.ChildNodes) { switch (item.Name) { case "Device": temp.Device = item.InnerText; break; case "Type": EnumSafetySensorType type; if (Enum.TryParse(item.InnerText, out type)) { temp.Type = type; } else { WriteLog(1, "", String.Concat("Device : ", temp.Device, ", Type TypeParse Fail : ", item.InnerText)); } break; case "DeviceType": EnumDeviceType deviceType; if (Enum.TryParse(item.InnerText, out deviceType)) { temp.DeviceType = deviceType; } else { WriteLog(1, "", String.Concat("Device : ", temp.Device, ", DeviceType TypeParse Fail : ", item.InnerText)); } break; case "BeamSensorDircetion": if (temp.Type == EnumSafetySensorType.BeamSensor || temp.Type == EnumSafetySensorType.Bumper) { EnumMovingDirection beamSensorDircetion; if (Enum.TryParse(item.InnerText, out beamSensorDircetion)) { temp.BeamSensorDircetion = beamSensorDircetion; } else { WriteLog(1, "", String.Concat("Device : ", temp.Device, " BeamSensorDircetion Read Fail")); } } else { WriteLog(1, "", String.Concat("Device : ", temp.Device, " type != BeamSensor 不應該有BeamSensorDircetion")); } break; case "MIPCTagNameOutput": if (temp.Type == EnumSafetySensorType.AreaSensor) { temp.MIPCTagNameOutput = ReadTagList((XmlElement)item); } else { WriteLog(1, "", String.Concat("Device : ", temp.Device, " type != AreaSensor 不應該有MIPCTagNmaeInput")); } break; case "MIPCTagNmaeInput": ReadInputAndSafetyLevel(ref temp, (XmlElement)item); break; case "AreaSensorChangeDircetion": if (temp.Type == EnumSafetySensorType.AreaSensor) { temp.AreaSensorChangeDircetion = ReadMovingDirectionXML((XmlElement)item, temp.MIPCTagNmaeInput.Count); } else { WriteLog(1, "", String.Concat("Device : ", temp.Device, " type != AreaSensor 不應該有AreaSensorChangeDircetion")); } break; default: break; } } config.SafetySensorList.Add(temp); }
public virtual void Initial(MIPCControlHandler mipcControl, AlarmHandler alarmHandler, SafetySensorData config) { }