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);
        }
Exemple #5
0
 public virtual void Initial(MIPCControlHandler mipcControl, AlarmHandler alarmHandler, SafetySensorData config)
 {
 }