Skip to main content
Home
for DLMS smart meters
Open source solutions for DLMS smart metering

Main navigation

  • Home
  • Products
  • About us
  • Open Source
  • Community
  • Forum
  • Downloads
User account menu
  • Log in

Breadcrumb

  1. Home
  2. Forums
  3. PC Association Conformance Attribute Issue

PC Association conformance attribute issue

Forum Rules

Before commenting read Forum rules

Don't comment the topic if you have a new question.

You can create a new topic selecting correct category from Gurux Forum and then create a new topic selecting "New Topic" from the top left.

By Ashok_Chowdary , 22 February, 2021
Forums
General discussion

Hi Mikko,
In PC Association xDLMSContextInfo.conformance attribute i given ont GET but in the gurux client it is showing all.
please help me where is the problem

Profile picture for user Kurumi

Kurumi

5 years 3 months ago

Hi,

Hi,

I tested this and it worked as expected. First, make sure that you have the latest version. Then select device properties and select the "Supported services" -tab. Make sure that you have selected only Get-service.

BR,
Mikko

Ashok_Chowdary

5 years 3 months ago

Hi Mikko,

Hi Mikko,
Thanks for reply,
device properties and select the "Supported services" -tab get and remaining services also,But in Negotiated place has the services what we given in the code. for PC, I given Only GET.
Please clarify me where I am wrong?

Profile picture for user Kurumi

Kurumi

5 years 3 months ago

Hi,

Hi,

In the server side:
Set proposed service. Negotiated service will tell what services the client and server are negotiated to use. It's updated every time when a client makes a new connection.

BR,
Mikko

Ashok_Chowdary

5 years 3 months ago

Hi Mikko,

Hi Mikko,
I checked with another DLMS meter there it is working fine.
please check below screen shot

Image
Profile picture for user Kurumi

Kurumi

5 years 3 months ago

Hi,

Hi,

Proposed conformance is set for the association view. In that way, each association view might offer different services.
Check that your association is defined like this:
associationX.xDLMSContextInfo.conformance = DLMS_CONFORMANCE_GET;

Don't set the Negotiated service directly.

BR,
Mikko

Ashok_Chowdary

5 years 3 months ago

Hi Mikko,

Hi Mikko,
In my PC Association i given as like below
ref: associationNone.xDLMSContextInfo.conformance = DLMS_CONFORMANCE_GET;

Ashok_Chowdary

5 years 3 months ago

Hi Mikko, Any update on this?

Hi Mikko,
Any update on this?

Profile picture for user Kurumi

Kurumi

5 years 3 months ago

Hi,

Hi,

This is checked and it's working like expected. I believe that you have made some changes that are breaking this. Can you try with the default server example?

BR,
Mikko

rajacms

5 years 3 months ago

Hi Mikko

Hi Mikko

i using DLMS c new version but i same issue based please help me
modified
associationNone.xDLMSContextInfo.conformance = (DLMS_CONFORMANCE)(DLMS_CONFORMANCE_GET| DLMS_CONFORMANCE_BLOCK_TRANSFER_WITH_GET_OR_READ);

int addAssociationNone()
{
int ret;
const unsigned char ln[6] = { 0, 0, 40, 0, 1, 255 };
if ((ret = INIT_OBJECT(associationNone, DLMS_OBJECT_TYPE_ASSOCIATION_LOGICAL_NAME, ln)) == 0)
{
//All objects are shown also without authentication.
OA_ATTACH(associationNone.objectList, ALL_OBJECTS);
//Uncomment this if you want to show only part of the objects without authentication.
//OA_ATTACH(associationNone.objectList, NONE_OBJECTS);
associationNone.authenticationMechanismName.mechanismId = DLMS_AUTHENTICATION_NONE;
associationNone.clientSAP = 0x10;
//Max PDU is half of PDU size. This is for demonstration purposes only.
associationNone.xDLMSContextInfo.maxSendPduSize = associationNone.xDLMSContextInfo.maxReceivePduSize = PDU_BUFFER_SIZE / 2;
associationNone.xDLMSContextInfo.conformance = (DLMS_CONFORMANCE)(DLMS_CONFORMANCE_GET| DLMS_CONFORMANCE_BLOCK_TRANSFER_WITH_GET_OR_READ);
}
return ret;
}

13:34:19 Send SNRM request.
TX: 7E A0 07 03 21 93 0F 01 7E
13:34:19
RX: 7E A0 1E 21 03 73 C3 7A 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3B 7E
13:34:19 Send AARQ request.
TX: 7E A0 2B 03 21 10 FB AF E6 E6 00 60 1D A1 09 06 07 60 85 74 05 08 01 01 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF C5 E4 7E
13:34:19
RX: 7E A0 37 21 03 30 6C 7C E6 E7 00 61 29 A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 00 A3 05 A1 03 02 01 00 BE 10 04 0E 08 00 06 5F 1F 04 00 00 1E 1D 02 00 00 07 7A ED 7E

Ashok_Chowdary

5 years 3 months ago

Hi Mikko,

Hi Mikko,
I did not changed gurux stack.
Actually as per stack ANSI-C library,
what we are selected in the proposed services those are getting in the negotiated services.
by my Question is In negotiated service -> what we are given in the association
For PC: associationNone.xDLMSContextInfo.conformance =
(DLMS_CONFORMANCE)(DLMS_CONFORMANCE_GET);

For MR: lowAssociation.xDLMSContextInfo.conformance = (DLMS_CONFORMANCE)(DLMS_CONFORMANCE_BLOCK_TRANSFER_WITH_GET_OR_READ |
DLMS_CONFORMANCE_SELECTIVE_ACCESS |
DLMS_CONFORMANCE_GET);
For US: highAssociation.xDLMSContextInfo.conformance = (DLMS_CONFORMANCE)(DLMS_CONFORMANCE_BLOCK_TRANSFER_WITH_ACTION |
DLMS_CONFORMANCE_BLOCK_TRANSFER_WITH_SET_OR_WRITE |
DLMS_CONFORMANCE_BLOCK_TRANSFER_WITH_GET_OR_READ |
DLMS_CONFORMANCE_SET |
DLMS_CONFORMANCE_SELECTIVE_ACCESS |
DLMS_CONFORMANCE_ACTION |
DLMS_CONFORMANCE_GET|
DLMS_CONFORMANCE_DATA_NOTIFICATION|
DLMS_CONFORMANCE_GENERAL_BLOCK_TRANSFER);
has to come instead of all services which are selected in the proposed Services.

Profile picture for user Kurumi

Kurumi

5 years 3 months ago

Hi,

Hi,

There was one row missing from the example server. That is now updated. Get the latest version.
Search this line. It'll fix this.
settings->proposedConformance = a->xDLMSContextInfo.conformance;

BR,
Mikko

Ashok_Chowdary

5 years 3 months ago

Hi Mikko,

Hi Mikko,
now it is working fine with PC&MR associations but, I am getting problem with US association.
as per IS15959 sheet I given conformance services for US is:
highAssociation.xDLMSContextInfo.conformance = (DLMS_CONFORMANCE)(DLMS_CONFORMANCE_BLOCK_TRANSFER_WITH_ACTION |
DLMS_CONFORMANCE_BLOCK_TRANSFER_WITH_SET_OR_WRITE |
DLMS_CONFORMANCE_BLOCK_TRANSFER_WITH_GET_OR_READ |
DLMS_CONFORMANCE_SET |
DLMS_CONFORMANCE_SELECTIVE_ACCESS |
DLMS_CONFORMANCE_ACTION |
DLMS_CONFORMANCE_GET|
DLMS_CONFORMANCE_DATA_NOTIFICATION|
DLMS_CONFORMANCE_GENERAL_BLOCK_TRANSFER);
but when i selected GENERAL_BLOCK_TRANSFER in proposed services of Gurux Client. it is updating at negotiated service and establishing the connection, but problem is after connection establish I gave Refresh then it throwing error as : get Objects failed.Access Error:No long set or write in the progress.
I am attached screen shot please check it.
please help me why it is showing like this?

Image
Profile picture for user Kurumi

Kurumi

5 years 3 months ago

Hi,

Hi,

GBT expects that all the data is read for the memory before data is starting to send. It might be possible to use GBT if you have enough memory, but if you want to read example association view or profile generic the amount might be huge. For this reason, GBT is not set in default for ANSI C.

BR,
Mikko

Ashok_Chowdary

5 years 3 months ago

Hi Mikko,

Hi Mikko,
T_APPL_OPEN_1 CTT Failed for MR Association
0/1, ServerSAP = 1, ClientSAP = 32, LONG_NAMES, LOW_LEVEL_SECURITY
1.Establish an AA using the parameters declared
FAILED(Unexpected response to AssociationRequest)

In _CTI Config file For MR Associaton as

Association [1] =
{
Enabled = TRUE
ClientSAP = 0x20
ApplicationContextName = LONG_NAMES
AuthenticationMechanismName = LOW_LEVEL_SECURITY
ConformanceBlock = [GET,BLOCK_TRANSFER_WITH_GET_OR_READ,SELECTIVE_ACCESS]
Secret = "\XXXXXXXXXXXXXXXX"
}
Previously we have problem with :: lowAssociation.xDLMSContextInfo.conformance not showing services which are given in code at negotiated services. because of that this test failed?
please help me why it is failed?

Profile picture for user Kurumi

Kurumi

5 years 3 months ago

Hi Ashok ,

Hi Ashok ,

Check this:
https://www.gurux.fi/Gurux.DLMS.Conformance

BR,
Mikko

Ashok_Chowdary

5 years 3 months ago

Hi Mikko,

Hi Mikko,
The IS15959 standared says that for US Association GBT is required conformance Service. if we not given this it may be fail?

Image
Profile picture for user Kurumi

Kurumi

5 years 3 months ago

Hi,

Hi,

No, you define conformance in the settings file. GBT and ciphering are a bad combination. If you are using GBT and ciphering you must read all data to the memory. Then you need to encrypt it and then send encrypted data using GBT.

For this reason, GBT is only available for push messages in Indian standards because there is a max size of push messages and it's possible to encrypt them. This is not possible if the client app is reading example profile generic buffer.

BR,
Mikko

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Tue, 06/09/2026 - 11:16
    gurux.dlms.java 4.0.95
  • Tue, 06/09/2026 - 10:03
    Gurux.DLMS.Python 1.0.199
  • Mon, 06/08/2026 - 13:39
    gurux.dlms.cpp 9.0.2606.0801
  • Mon, 06/01/2026 - 10:15
    gurux.dlms.cpp 9.0.2606.0101
  • Thu, 05/28/2026 - 16:06
    gurux.dlms.java 4.0.94

New forum topics

  • Error reading L&G Meter
  • Pass a TCP Client to GXNet
  • Australian EDMI Mk10D (Essential Energy area)
  • Strange mix of data notificiation vs get response
  • DLMS Connection
More

Who's new

  • Tuanhgg
  • Adel
  • charnon
  • Paddles
  • Miguel Ángel
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin