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