object IGXDLMSBase.GetValue(GXDLMSSettings settings, ValueEventArgs e)
{
if (e.Index == 1)
{
return this.LogicalName;
}
GXByteBuffer buff = new GXByteBuffer();
if (e.Index == 2)
{
buff.SetUInt8(DataType.Array);
GXCommon.SetObjectCount(PushObjectList.Count, buff);
foreach (KeyValuePair<GXDLMSObject, GXDLMSCaptureObject> it in PushObjectList)
{
buff.SetUInt8(DataType.Structure);
buff.SetUInt8(4);
GXCommon.SetData(settings, buff, DataType.UInt16, it.Key.ObjectType);
GXCommon.SetData(settings, buff, DataType.OctetString, it.Key.LogicalName);
GXCommon.SetData(settings, buff, DataType.Int8, it.Value.AttributeIndex);
GXCommon.SetData(settings, buff, DataType.UInt16, it.Value.DataIndex);
}
return buff.Array();
}
if (e.Index == 3)
{
buff.SetUInt8(DataType.Structure);
buff.SetUInt8(3);
GXCommon.SetData(settings, buff, DataType.UInt8, Service);
if (Destination != null)
{
GXCommon.SetData(settings, buff, DataType.OctetString, Destination);
}
else
{
GXCommon.SetData(settings, buff, DataType.OctetString, null);
}
GXCommon.SetData(settings, buff, DataType.UInt8, Message);
return buff.Array();
}
if (e.Index == 4)
{
buff.SetUInt8(DataType.Array);
GXCommon.SetObjectCount(CommunicationWindow.Count, buff);
foreach (KeyValuePair<GXDateTime, GXDateTime> it in CommunicationWindow)
{
buff.SetUInt8(DataType.Structure);
buff.SetUInt8(2);
GXCommon.SetData(settings, buff, DataType.OctetString, it.Key);
GXCommon.SetData(settings, buff, DataType.OctetString, it.Value);
}
return buff.Array();
}
if (e.Index == 5)
{
return RandomisationStartInterval;
}
if (e.Index == 6)
{
return NumberOfRetries;
}
if (e.Index == 7)
{
return RepetitionDelay;
}
e.Error = ErrorCode.ReadWriteDenied;
return null;
}