Exemple #1
0
        public virtual void Read(BCFApplication bcfApp, string eqObjIDCate, string eq_id)
        {
            List <ValueRead> listVR = new List <ValueRead>();

            foreach (FieldInfo info in fieldInfos)
            {
                ValueRead  vr      = null;
                PLCElement element = getPLCElementAttr(info);
                if (bcfApp.tryGetReadValueEventstring(eqObjIDCate, EQ_ID, element.ValueName, out vr))
                {
                    if (info.FieldType == typeof(Int32))
                    {
                        info.SetValue(this, Convert.ToInt32(vr.getText()));
                    }
                    else
                    {
                        info.SetValue(this, vr.getText());
                    }
                    listVR.Add(vr);
                }
                else
                {
                }
            }
            if (listVR.Count > 0)
            {
                BCFUtility.writeEquipmentLog(eq_id, listVR);
            }
        }
Exemple #2
0
        public FieldInfo[] GetPLCElementFields(Type type)
        {
            List <FieldInfo> rtnList = new List <FieldInfo>();

            FieldInfo[] tmpFieldAry = null;
            tmpFieldAry = type.GetFields(BindingFlags.Instance | BindingFlags.Public);

            foreach (FieldInfo field in tmpFieldAry)
            {
                if (field.FieldType.IsInterface)
                {
                    continue;
                }
                PLCElement attr = getPLCElementAttr(field);
                if (attr == null)
                {
                    continue;
                }
                if (attr.IsHandshakeProp)
                {
                    HandshakePropName = attr.ValueName;
                }
                else if (attr.IsIndexProp)
                {
                    IndexPropName = attr.ValueName;
                }
                rtnList.Add(field);
            }
            return(rtnList.ToArray());
        }
Exemple #3
0
        private void Write(BCFApplication bcfApp, string eqObjIDCate, string eq_id, out ValueWrite vw_handshake)
        {
            vw_handshake = null;
            EQ_ID        = eq_id;
            List <ValueWrite> listVW = new List <ValueWrite>();

            foreach (FieldInfo info in fieldInfos)
            {
                PLCElement element = getPLCElementAttr(info);

                string   value       = string.Empty;
                UInt16[] ivalueArray = null;
                object   valueObj    = info.GetValue(this);
                if (valueObj is Enum)
                {
                    value = ((int)valueObj).ToString();
                }
                else if (valueObj is bool)
                {
                    value = ((bool)valueObj) ? "1" : "0";
                }
                else if (valueObj is UInt16[])
                {
                    ivalueArray = valueObj as UInt16[];
                }
                else
                {
                    object obj = info.GetValue(this);
                    if (obj != null)
                    {
                        value = info.GetValue(this).ToString();
                    }
                }

                ValueWrite vw = null;
                vw = bcfApp.getWriteValueEvent(eqObjIDCate, eq_id, element.ValueName);
                if (valueObj is UInt16[])
                {
                    vw.setWriteValue(ivalueArray);
                }
                else
                {
                    vw.setWriteValue(value);
                }
                if (element.IsHandshakeProp ||
                    element.IsIndexProp)
                {
                    vw_handshake = vw;
                }
                else
                {
                    ISMControl.writeDeviceBlock(bcfApp, vw);
                }
                listVW.Add(vw);
            }
            if (listVW.Count > 0)
            {
                BCFUtility.writeEquipmentLog(eq_id, listVW);
            }
        }
Exemple #4
0
        public PLCElement getPLCElementAttr(FieldInfo fieldInfo)
        {
            System.Attribute[] attrs = System.Attribute.GetCustomAttributes(fieldInfo);
            PLCElement         attr  = null;

            foreach (System.Attribute a in attrs)
            {
                if (a is PLCElement)
                {
                    attr = (PLCElement)a;
                    break;
                }
            }
            return(attr);
        }
Exemple #5
0
        public virtual void Read(BCFApplication bcfApp, string eqObjIDCate, string eq_id, int index)
        {
            List <ValueRead> listVR = new List <ValueRead>();

            foreach (FieldInfo info in fieldInfos)
            {
                ValueRead  vr         = null;
                PLCElement element    = getPLCElementAttr(info);
                string     value_name = $"{element.ValueName}{index}";
                if (bcfApp.tryGetReadValueEventstring(eqObjIDCate, EQ_ID, value_name, out vr))
                {
                    info.SetValue(this, vr.getText());
                    listVR.Add(vr);
                }
                else
                {
                }
            }
            if (listVR.Count > 0)
            {
                BCFUtility.writeEquipmentLog(eq_id, listVR);
            }
        }