I'm working on secure meter, I ported the Atmel embedded c code to msp432e401y, I'm able to read all the data and register values from the device.
like that only, I am trying to read the profile generic also. connection, association, scalar,read_profilegeneric_column(),readvalues, readprofile generic all functions successfully reading .
hope this function will give the data " ret = com_read(&con, &profile_g.base, 3);
com_readRowsByEntry(&con,&profile_g,0,3);" I don't know how to take the obis codes and their corresponding values.
Single profile will give many obis code and many values, in that how to take the data. please help me.
What you need to do is this:
1. Read Capture objects from attribute #3. You have done that.
2. Read data using com_readRowsByEntry or com_readRowsByRange.
First, you need to check is your meter supporting readRowsByEntry. All the meters don't support it.
Also start index is 1 based, not zero.
When you have read the buffer, you can loop rows and columns. You can check obj_rowsToString. I hope it helps you.
Thanks for your input, now I'm reading the profile generic parameters.
While reading the data of billing period(1.0.98.1.0.255), I'm getting the error code id 260 which means not enough memory available. Then I changed the value of maxPduSize to 1024 then also same result, what may be the problem?.
And also I want the logical name for each of the profile generic parameter values, how do I get the logical name?
Please help me to solve these problems.
Reading DLMS meter without malloc is causing some extra work. The easiest way is if you parse data without saving it to the buffer. I'll make a small example fro this later today.
I'll post a reply when it's ready.
In Profile generic, when I try to read the BLOCK_LOAD_PROFILE and DAILY_LOAD_PROFILE I'm receiving an error message as ReadObject failed Access Error: Other Reason.
Can you please explain what that means and How to resolve that?
Hi Manovikas,
Hi Manovikas,
Profile generics are not easy, especially with C.
What you need to do is this:
1. Read Capture objects from attribute #3. You have done that.
2. Read data using com_readRowsByEntry or com_readRowsByRange.
First, you need to check is your meter supporting readRowsByEntry. All the meters don't support it.
Also start index is 1 based, not zero.
When you have read the buffer, you can loop rows and columns. You can check obj_rowsToString. I hope it helps you.
BR,
Mikko
Hi Mikko,
Hi Mikko,
Thanks for your input, now I'm reading the profile generic parameters.
While reading the data of billing period(1.0.98.1.0.255), I'm getting the error code id 260 which means not enough memory available. Then I changed the value of maxPduSize to 1024 then also same result, what may be the problem?.
And also I want the logical name for each of the profile generic parameter values, how do I get the logical name?
Please help me to solve these problems.
Hi,
Hi,
Are you using malloc or have you defined DLMS_IGNORE_MALLOC?
BR,
Mikko
Hi Mikko,
Hi Mikko,
Yes, I'm using malloc and also I have defined DLMS_IGNORE_MALLOC.
Regards,
Manovikas
Hi Manovikas,
Hi Manovikas,
Reading DLMS meter without malloc is causing some extra work. The easiest way is if you parse data without saving it to the buffer. I'll make a small example fro this later today.
I'll post a reply when it's ready.
BR,
Mikko
Hi Mikko,
Hi Mikko,
Ok, Thank you
Regards,
Manovikas
Hi Mikko,
Hi Mikko,
Is your sample source code ready?
When can I expect the code from you?
Thanks & Regards,
Manovikas
Hi Manovikas,
Hi Manovikas,
Tests are almost over. If nothing unexpected happens new version is released tomorrow.
BR,
Mikko
Hi Mikko,
Hi Mikko,
In Profile generic, when I try to read the BLOCK_LOAD_PROFILE and DAILY_LOAD_PROFILE I'm receiving an error message as ReadObject failed Access Error: Other Reason.
Can you please explain what that means and How to resolve that?
Thanks and Regards,
Manovikas
Hi,
Hi,
This can be anything. There are only a few error codes in DLMS. Did you try to read using by entry or by range? What is the OBIS code you try to read?
BR,
Mikko
Hi,
Hi,
I'm reading that OBIS code by using com_readRowsByEntry().
OBIS codes are 1.0.99.1.0.255, 1.0.99.2.0.255 and 0.0.99.98.0.255.
Thanks and Regards,
Manovikas
Hi,
Hi,
Usually time format is not correct. Example deviation is wrong in date-time field. Can you read this using GXDLMSDirector and send trace to me?
BR,
Mikko