Hi,
Tell me, please, I launched the simulator with a template, in which there is object ProfileGeneric with data. I'm trying to read data from this object - it returns an empty array.
And second, is it possible to make object 1 dynamically filled with data every day that can be read?
Thank you!
Object with data from the template:
<GXDLMSProfileGeneric>
<LN>1.0.99.1.0.255</LN>
<Version>1</Version>
<Description>Ch. 0 Load profile with recording period 1 #1</Description>
<Access>11311111</Access>
<MethodAccess>10</MethodAccess>
<Buffer>
<Row>
<Cell Type="10">20.11.2023 0:00:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
<Row>
<Cell Type="10">19.11.2023 23:30:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
<Row>
<Cell Type="10">19.11.2023 23:00:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
<Row>
<Cell Type="10">19.11.2023 22:30:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
<Row>
<Cell Type="10">19.11.2023 22:00:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
<Row>
<Cell Type="10">19.11.2023 21:30:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
<Row>
<Cell Type="10">19.11.2023 21:00:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
<Row>
<Cell Type="10">19.11.2023 20:30:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
<Row>
<Cell Type="10">19.11.2023 20:00:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
<Row>
<Cell Type="10">19.11.2023 19:30:00</Cell>
<Cell Type="17">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
</Row>
</Buffer>
<CaptureObjects>
<Item>
<ObjectType>8</ObjectType>
<LN>0.0.1.0.0.255</LN>
<Attribute>2</Attribute>
<Data>0</Data>
</Item>
<Item>
<ObjectType>1</ObjectType>
<LN>0.0.96.10.5.255</LN>
<Attribute>2</Attribute>
<Data>0</Data>
</Item>
<Item>
<ObjectType>3</ObjectType>
<LN>1.0.1.29.0.255</LN>
<Attribute>2</Attribute>
<Data>0</Data>
</Item>
<Item>
<ObjectType>3</ObjectType>
<LN>1.0.2.29.0.255</LN>
<Attribute>2</Attribute>
<Data>0</Data>
</Item>
<Item>
<ObjectType>3</ObjectType>
<LN>1.0.3.29.0.255</LN>
<Attribute>2</Attribute>
<Data>0</Data>
</Item>
<Item>
<ObjectType>3</ObjectType>
<LN>1.0.4.29.0.255</LN>
<Attribute>2</Attribute>
<Data>0</Data>
</Item>
</CaptureObjects>
<CapturePeriod>1800</CapturePeriod>
<SortMethod>2</SortMethod>
<SortObject>
<ObjectType>8</ObjectType>
<LN>0.0.1.0.0.255</LN>
</SortObject>
<EntriesInUse>6144</EntriesInUse>
<ProfileEntries>6144</ProfileEntries>
</GXDLMSProfileGeneric>
An error occurs when reading…
An error occurs when reading another object ProfileGeneric:
"Insufficient memory to continue the execution of the program" when calling the "client.UpdateValue" function.
Hi, Insufficient memory…
Hi,
Insufficient memory error means that all the data is not available. I can't help you with that because you didn't tell me what attribute you read.
You can fill the profile generic buffer as you want to. It's not read from the meter, because it's old data and there is no use after a while. It's quite common that client applications want to read the last day.
BR,
Mikko
Thank you for your reply. I…
Thank you for your reply.
I found the cause of the problem, but I don't know how to fix it.
Template xml contains data, I read it from a real device and saved it in Director to file xml using function "Save Values As".
The error occurs in file GxCommon when trying to parse date type DateTime.
If the timestamp in file xml is changed to hexadecimal representation of type DateTime, then the data is successfully read.
<Row>
<Cell Type="10">07 E7 0B 0A FF 00 00 00 00 80 00 FF</Cell>
<Cell Type="6">61464998</Cell>
<Cell Type="24" UIType="24">23578.78</Cell>
<Cell Type="24" UIType="24">11821.1</Cell>
<Cell Type="24" UIType="24">5220.07</Cell>
<Cell Type="24" UIType="24">3246.76</Cell>
<Cell Type="24" UIType="24">11821.1</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">112353.37</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">3290.85</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">0</Cell>
<Cell Type="24" UIType="24">49969.22</Cell>
<Cell Type="24" UIType="24">31276.36</Cell>
<Cell Type="24" UIType="24">12695.97</Cell>
<Cell Type="24" UIType="24">18411.82</Cell>
<Cell Type="18">0</Cell>
</Row>
How can this problem be solved?
The problem occurs when…
The problem occurs when trying to read data, attribute 2.
Hi, GXDLMSDirector data…
Hi,
GXDLMSDirector data format is different than the simulator and for that reason, you can't use GXDLMSDirector to save simulator data.
You can modify the simulator to generate rows for your needs.
BR,
Mikko
Thank you for your reply…
Thank you for your reply.
Can I read ProfileGeneric from the simulator using reading ReadRowsByRange, at the moment there is an error
"Access Error : Device reports Read-Write denied"?
Hi, First, check that you…
Hi,
First, check that you have enough access rights to read this value.
Can you invoke "Capture" from the GXDLMSDirector? It will save a new for for the buffer. Check that you have saved the data in the correct format.
BR,
Mikko
thank you for your help. Let…
thank you for your help.
Let me ask you one more question. I have a template in which the association is with level high and password. I'm running an emulator
Gurux.DLMS.Simulator.Net.dll -p 1000 -x Templates/sim.xml -t Verbose -N 2 -a High -P pass1
DLMS HDLC Logical Name simulator start in ports 1000-1001.
Waiting 00:50:10 before next execution.
Server address: 1
Associations:
++++++++++++++++++++++++++++
Client address: 48 High authentication, password pass1
Conformance:
BlockTransferWithGetOrRead, BlockTransferWithSetOrWrite, Get, Set, SelectiveAccess, Action
MaxReceivePduSize: 1024 MaxSendPduSize: 1024
Security suite: Suite0
Security policy: None
Authentication key: D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF
Block cipher key: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
Broadcast block cipher key: 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F
I can connect to a device with port 1000, but I can’t connect to the rest, error "Device reports Read-Write denied" occurs while
"client.GetApplicationAssociationRequest".
Please tell me, I can’t use a password connection in the emulator?
Hi, I believe that you have…
Hi,
I believe that you have read this device template with some other authentication level than high authentication. Now when you try to establish the high level authentication it's not allowed.
You can allow all access if you modify GetMethodAccess to return MethodAccessMode.Access and GetAttributeAccess to AccessMode.ReadWrite.
BR,
Mikko
Thank you for your help! Let…
Thank you for your help!
Let me ask you one more question.
I ran the emulator on 1000 devices using one address and 1000 ports. Started reading the serial number. I came across the fact that error 1 occurs. The same error occurs when starting 50 devices.
Tell me, please, what could be the reason?
Read package error: Message - Exception has been thrown by the target of an invocation.. InnerException - System.Exception: LLC bytes are missing from the message.
Hi, Only one instance is…
Hi,
Only one instance is allowed at the time for the one meter.
Make also sure that no other application is using that port.
BR,
Mikko