Gurux.DLMS.Objects.GXDLMSAssociationShortName.GetObjects C# (CSharp) Méthode

GetObjects() private méthode

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