protected GXDLMSAttributeSettings GetAttribute(int index, GXAttributeCollection attributes) { GXDLMSAttributeSettings att = this.Attributes.Find(index); if (att == null) { att = new GXDLMSAttributeSettings(index); //LN is read only. if (index == 1) { att.Access = AccessMode.Read; } if (attributes != null) { attributes.Add(att); } } return(att); }
protected GXDLMSAttributeSettings GetAttribute(int index, GXAttributeCollection attributes) { GXDLMSAttributeSettings att = this.Attributes.Find(index); if (att == null) { att = new GXDLMSAttributeSettings(index); //LN is read only. if (index == 1) { att.Access = AccessMode.Read; } if (attributes != null) { attributes.Add(att); } } return att; }
/// <summary> /// /// </summary> /// <param name="values"></param> public override void UpdateDefaultValueItems(GXAttributeCollection attributes) { GXAttribute att = new GXAttribute(); att.Index = 3; att.Values.Add(new GXObisValueItem(0, "300")); att.Values.Add(new GXObisValueItem(1, "600")); att.Values.Add(new GXObisValueItem(2, "1200")); att.Values.Add(new GXObisValueItem(3, "2400")); att.Values.Add(new GXObisValueItem(4, "4800")); att.Values.Add(new GXObisValueItem(5, "9600")); att.Values.Add(new GXObisValueItem(6, "19200")); att.Values.Add(new GXObisValueItem(7, "38400")); att.Values.Add(new GXObisValueItem(8, "57600")); att.Values.Add(new GXObisValueItem(9, "115200")); attributes.Add(att); att = new GXAttribute(); att.Index = 4; att.Values.Add(new GXObisValueItem(0, "300")); att.Values.Add(new GXObisValueItem(1, "600")); att.Values.Add(new GXObisValueItem(2, "1200")); att.Values.Add(new GXObisValueItem(3, "2400")); att.Values.Add(new GXObisValueItem(4, "4800")); att.Values.Add(new GXObisValueItem(5, "9600")); att.Values.Add(new GXObisValueItem(6, "19200")); att.Values.Add(new GXObisValueItem(7, "38400")); att.Values.Add(new GXObisValueItem(8, "57600")); att.Values.Add(new GXObisValueItem(9, "115200")); attributes.Add(att); }
/// <summary> /// Constructor. /// </summary> public GXObisCode() { Attributes = new GXAttributeCollection(); Attributes.Parent = this; }
List<byte> GetAccessRights(GXDLMSObject item) { GXAttributeCollection attribs = new GXAttributeCollection(); attribs.AddRange(item.Attributes); PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(item); foreach (PropertyDescriptor it in pdc) { GXDLMSAttribute att = it.Attributes[typeof(GXDLMSAttribute)] as GXDLMSAttribute; if (att != null && attribs.Find(att.Index) == null) { attribs.Add(att); } } List<byte> data = new List<byte>(); data.Add((byte)DataType.Structure); data.Add(2); data.Add((byte)DataType.Array); data.Add((byte)attribs.Count); foreach (GXDLMSAttributeSettings att in attribs) { data.Add((byte)DataType.Structure); //attribute_access_item data.Add(3); GXCommon.SetData(data, DataType.Int8, att.Index); GXCommon.SetData(data, DataType.Enum, att.Access); GXCommon.SetData(data, DataType.None, 0); } data.Add((byte)DataType.Array); data.Add((byte)item.MethodAttributes.Count); foreach (GXDLMSAttributeSettings it in item.MethodAttributes) { data.Add((byte)DataType.Structure); //attribute_access_item data.Add(2); GXCommon.SetData(data, DataType.Int8, it.Index); GXCommon.SetData(data, DataType.Enum, it.MethodAccess); } return data; }