Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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);
 }
Exemplo n.º 4
0
 /// <summary>
 /// Constructor.
 /// </summary>
 public GXObisCode()
 {
     Attributes = new GXAttributeCollection();
     Attributes.Parent = this;
 }
Exemplo n.º 5
0
 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;
 }