Gurux.DLMS.Objects.GXDLMSAssociationLogicalName.GetObjects C# (CSharp) Method

GetObjects() private method

Returns Association View.
private GetObjects ( GXDLMSSettings settings, ValueEventArgs e ) : GXByteBuffer
settings GXDLMSSettings
e ValueEventArgs
return GXByteBuffer
        private GXByteBuffer GetObjects(GXDLMSSettings settings, ValueEventArgs e)
        {
            GXByteBuffer data = new GXByteBuffer();
            //Add count only for first time.
            if (settings.Index == 0)
            {
                settings.Count = (UInt16)ObjectList.Count;
                data.SetUInt8((byte)DataType.Array);
                GXCommon.SetObjectCount(ObjectList.Count, data);
            }
            ushort pos = 0;
            foreach (GXDLMSObject it in ObjectList)
            {
                ++pos;
                if (!(pos <= settings.Index))
                {
                    data.SetUInt8((byte)DataType.Structure);
                    data.SetUInt8((byte)4); //Count
                    GXCommon.SetData(settings, data, DataType.UInt16, it.ObjectType); //ClassID
                    GXCommon.SetData(settings, data, DataType.UInt8, it.Version); //Version
                    GXCommon.SetData(settings, data, DataType.OctetString, it.LogicalName); //LN
                    GetAccessRights(settings, it, data); //Access rights.
                    ++settings.Index;
                    //If PDU is full.
                    if (!e.SkipMaxPduSize && data.Size >= settings.MaxPduSize)
                    {
                        break;
                    }
                }
            }
            return data;
        }