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. Read Profile ACE6000

Read Profile ACE6000

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 saberm , 3 August, 2016
Forums
Gurux.DLMS

Hi
I want to read profile(without parse) of ACE6000 meter, I followed the example code in:
https://github.com/Gurux/Gurux.DLMS.cpp/blob/master/GuruxDLMSClientExam…
but i was not successful.
I wrote this code:

std::string value;
std::string str;
std::string ln;
std::vector<std::pair<CGXDLMSObject*, unsigned char> > list;
CGXDLMSObjectCollection Objects;
if ((ret = GetObjects(Objects)) != 0)
{
TRACE("Initialize Connection failed %s.\r\n", CGXDLMSConverter::GetErrorMessage(ret));
return 1;
}
// Read scalers and units from the device.
for(std::vector<CGXDLMSObject*>::iterator it = Objects.begin(); it != Objects.end(); ++it)
{
if ((*it)->GetObjectType() == DLMS_OBJECT_TYPE_REGISTER ||
(*it)->GetObjectType() == DLMS_OBJECT_TYPE_EXTENDED_REGISTER)
{
list.push_back(std::make_pair(*it, 3));
}
else if ((*it)->GetObjectType() == DLMS_OBJECT_TYPE_DEMAND_REGISTER)
{
list.push_back(std::make_pair(*it, 4));
}
}

if ((ret = ReadList(list)) != 0)
{
//If readlist is not supported read in old way.
for(std::vector<CGXDLMSObject*>::iterator it = Objects.begin(); it != Objects.end(); ++it)
{
if ((*it)->GetObjectType() == DLMS_OBJECT_TYPE_REGISTER ||
(*it)->GetObjectType() == DLMS_OBJECT_TYPE_EXTENDED_REGISTER)
{
(*it)->GetLogicalName(ln);
TRACE("%s\r\n", ln.c_str());
if ((ret = Read(*it, 3, value)) != 0)
{
TRACE("Err! Failed to read register: %s", CGXDLMSConverter::GetErrorMessage(ret));
//Continue reading.
continue;
}
}
else if ((*it)->GetObjectType() == DLMS_OBJECT_TYPE_DEMAND_REGISTER)
{
(*it)->GetLogicalName(ln);
TRACE("%s\r\n", ln.c_str());
if ((ret = Read(*it, 4, value)) != 0)
{
TRACE("Err! Failed to read demand register: %s", CGXDLMSConverter::GetErrorMessage(ret));
//Continue reading.
continue;
}
}
}
}

But i cant read the profile. can you help me where is my mistake?
Thanks

Profile picture for user Kurumi

Kurumi

9 years 11 months ago

Read Profile ACE6000

Hi,

We do not have ACE 6000 in our office and I can't check this right now, but there are some issues with it.
Try to read your meter without using ReadList. Reading scalers and units will take longer when you read them one by one, but it should work with ACE 6000.

BR,

Mikko

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Mon, 07/27/2026 - 12:37
    gurux.dlms.cpp 9.0.2607.2701
  • Thu, 07/23/2026 - 16:19
    gurux.dlms.java 4.0.96
  • Thu, 07/09/2026 - 14:34
    Gurux.DLMS.Python 1.0.201
  • Fri, 06/26/2026 - 16:32
    Gurux.Service 3.0.2606.2601
  • Wed, 06/24/2026 - 08:36
    Gurux.DLMS.Python 1.0.200

New forum topics

  • T_APPL_DATA_LN_N1 subtest 3 fails on an LN-only server regardless of the response to a non-existing-object GET
  • Version mismatch between Gurux.DLMS 9.x and Gurux.Common/Gurux.Serial 8.x
  • Service not known error on gprs communication
  • Help Needed: Interfacing Saral 100 Energy Meter with Microcontroller via RS232
  • Connecting Meter to Agent via serial
More

Who's new

  • software_P
  • eloisedc16
  • OlegVoiva
  • Martaepili
  • Vegazone-Alini
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin