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. Setting An Activity Calendar For Day Profile - Segmentation Fault

Setting an activity Calendar for Day Profile - Segmentation fault

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 Mohanraj , 12 May, 2020
Forums
General discussion

Hi Mikko,

I just followed the below link . But in write segmentation fault occurred. could you please correct the code snippet what is wrong? But we are trying only to set Day profile.

http://www.gurux.fi/Gurux.DLMS.Objects.GXDLMSActivityCalendar

Below is the code snippet
------------------------------------------
gxActivityCalendar activityCalendar;
gxDayProfile* dp;
gxDayProfileAction *act;
const unsigned char ln1[6] = { 0,0,10,0,100,255 }; //script
printf("Writing an Activity calender (Day Profile)\n");
int ret;
const unsigned char ln[6] = { 0,0,13,0,0,255 };
if ((ret = cosem_init2((gxObject*)&activityCalendar, DLMS_OBJECT_TYPE_ACTIVITY_CALENDAR, ln)) == 0)
{
dp = (gxDayProfile*)malloc(sizeof(gxDayProfile));
arr_init(&dp->daySchedules);
dp->dayId = 0;
act = (gxDayProfileAction*)malloc(sizeof(gxDayProfileAction));
cosem_init2((gxObject*)act, DLMS_OBJECT_TYPE_SCHEDULE, ln1);
memcpy(&act->scriptLogicalName[0],ln1,6);
act->scriptSelector = 1;
time_now(&act->startTime, 0);
time_init(&activityCalendar.time, -1, -1, 1, 1, 0, 0, -1, -1);
arr_push(&dp->daySchedules, act);
arr_push(&activityCalendar.dayProfileTablePassive, dp);
time_init(&activityCalendar.time, -1, -1, 30, 0, 0, 0, -1, -1);
ret = com_write(connection, &activityCalendar.base, 9);
if (ret != DLMS_ERROR_CODE_OK)
{
com_close(connection);
con_close(connection);
return ret;
}
printf("Writing an Activity calender (Day Profile) success\n");
}

Thanks
Mohan Raj

Mohanraj

6 years 1 month ago

Hi Mikko,

Hi Mikko,

Any update please?

Thanks
Vijay

Profile picture for user Kurumi

Kurumi

6 years 1 month ago

Hi Vijay,

Hi Vijay,

Try to read current values from the meter and compare with them. Try to set dayId to 1.
Try also set start time to:

time_init(&act->startTime, -1, -1, 1, 1, 0, 0, -1, -1);

I believe that this is config issue. Try to read correct values from the meter and then write them back.
If it succeeds then we know for sure that this is config issue.

BR,
Mikko

Mohanraj

6 years 1 month ago

In reply to Hi Vijay, by Kurumi

Hi Mikko,

Hi Mikko,

Try with time_init(&act->startTime, -1, -1, 1, 1, 0, 0, -1, -1);
Still Same problem i.e Segmentation issue in com_write().

Please clarify that do we have write back as many as object that are read back in activityCalender.
For example :
In Day profile we read Day id from 0 to 3; for each day there are 8 dayprofileaction object. while writing all object should be writen back? or only one day can be written?

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years 1 month ago

Hi,

Hi,

If you want to update the passive day profile you write attribute index 9.
It's a list. If you want to append a new item, first you need to read all values from the meter, append new item and write values back.

BR,
Mikko

Mohanraj

6 years 1 month ago

In reply to Hi, by Kurumi

Hi Mikko,

Hi Mikko,

Understood your point. how to remove item from the list inbetween or edit the items

Thanks
Mohan Raj

Mohanraj

6 years 1 month ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,
Below is the code snippet. Write failed with "Invalid Invoke ID" . Could you please help

if ((ret = cosem_init2((gxObject*)&activityCalendar, DLMS_OBJECT_TYPE_ACTIVITY_CALENDAR, ln)) == 0)
{
for(int i=0;i<4;i++)
{
dp = (gxDayProfile*)malloc(sizeof(gxDayProfile));
arr_init(&dp->daySchedules);
dp->dayId = i;
for(int j=0;j<8;j++)
{
act = (gxDayProfileAction*)malloc(sizeof(gxDayProfileAction));
cosem_init2((gxObject*)act, DLMS_OBJECT_TYPE_SCHEDULE, ln1);
memcpy(&act->scriptLogicalName[0],ln1,6);
act->scriptSelector = 1;
time_init(&act->startTime, -1, -1, -1, 0, 0, 0, -1, -1);
arr_push(&dp->daySchedules, act);
}
arr_push(&activityCalendar.dayProfileTablePassive, dp);
}

time_init(&activityCalendar.time, 2020, 01, 01, 0, 0, 0, 0, -1);
ret = com_write(connection, &activityCalendar.base, 9);
if (ret != DLMS_ERROR_CODE_OK)
{
com_close(connection);
con_close(connection);
return ret;
}
}

Write failed Activity Calendar"��� 00.00.13.00.00.255:9 Invalid Invoke ID.

Thanks
Mohan Raj

Mohanraj

6 years 1 month ago

Hi Mikko,

Hi Mikko,

below is the trace

TX: 7E A8 86 03 61 18 47 16 E6 E6 00 C9 82 02 2B 30 00 00 08 AB 4B 18 07 04 77 B8 51 53 7E 89 F5 96 84 28 99 E9 7A 1A FE 4C C9 AC FD 22 25 0E 86 61 70 FC BC 9E 4E 10 4C 21 9C F1 47 79 7B AE B7 FA 9E 4D D3 4B 77 A7 06 79 4F A5 16 2C 63 21 4C 9E C6 27 75 B0 AB A9 9E EC 22 32 14 C1 EB 10 9F 99 A6 65 33 F1 FF FD A2 44 48 BB A2 1B A6 F4 9A 95 8D CD 1B FC 89 EA 62 7C 77 26 AD E5 6B AF 54 82 46 72 11 6A 65 39 47 7E
RX: 7E A8 86 03 61 18 47 16 E6 E6 00 C9 82 02 2B 30 00 00 08 AB 4B 18 07 04 77 B8 51 53 7E 89 F5 96 84 28 99 E9 7A 1A FE 4C C9 AC FD 22 25 0E 86 61 70 FC BC 9E 4E 10 4C 21 9C F1 47 79 7B AE B7 FA 9E 4D D3 4B 77 A7 06 79 4F A5 16 2C 63 21 4C 9E C6 27 75 B0 AB A9 9E EC 22 32 14 C1 EB 10 9F 99 A6 65 33 F1 FF FD A2 44 48 BB A2 1B A6 F4 9A 95 8D CD 1B FC 89 EA 62 7C 77 26 AD E5 6B AF 54 82 46 72 11 6A 65 39 47 7E 7E A0 07 61 03 B1 69 A3 7E
TX: 7E A8 89 03 61 1A AC 87 9B 95 D4 3F 55 2A ED 04 8B 3C 90 D5 43 8A 32 AD CB E6 6B C3 5F 47 98 5C C2 4F CD 5F 03 83 AA 77 D4 1A 76 09 DD F1 64 3A 5A 90 90 D4 91 16 72 31 05 AD B2 2F 8D 0A 2E 77 65 91 F1 43 B3 7A DA E4 F0 46 2C 0A B1 30 F0 E0 AC 3C EB 45 26 C9 DE B5 AD 13 C9 78 E5 79 B4 30 9C 6A 03 7D D1 BB 37 26 20 13 1F 3F 70 CD A1 DE E5 86 CB 60 0C E0 2B 57 10 84 2B 35 A0 B2 70 D8 E1 1F D5 2F 12 CD 73 02 F9 99 7E
RX: 7E A8 89 03 61 1A AC 87 9B 95 D4 3F 55 2A ED 04 8B 3C 90 D5 43 8A 32 AD CB E6 6B C3 5F 47 98 5C C2 4F CD 5F 03 83 AA 77 D4 1A 76 09 DD F1 64 3A 5A 90 90 D4 91 16 72 31 05 AD B2 2F 8D 0A 2E 77 65 91 F1 43 B3 7A DA E4 F0 46 2C 0A B1 30 F0 E0 AC 3C EB 45 26 C9 DE B5 AD 13 C9 78 E5 79 B4 30 9C 6A 03 7D D1 BB 37 26 20 13 1F 3F 70 CD A1 DE E5 86 CB 60 0C E0 2B 57 10 84 2B 35 A0 B2 70 D8 E1 1F D5 2F 12 CD 73 02 F9 99 7E 7E A0 07 61 03 D1 6F C0 7E
TX: 7E A8 89 03 61 1C 9A E2 11 40 F8 35 4B CB AF 0F 8E 15 33 0F 1D 0F AD CA 86 B5 80 9D 31 F7 1C 2E 4F 40 30 90 EC 02 EE 43 C2 0D D5 B3 69 D3 AA E9 32 6E 48 7A 65 C9 89 B5 67 2C 25 1B F9 65 5F E2 EE F3 01 E1 02 25 EF 8A 2C 56 23 49 75 30 FE 28 9F 32 43 62 A2 25 07 E1 3D 1E DE 2D 8A 4B 4B C0 7B 19 19 0F 6B BA 17 D7 DD C5 DA 7C 15 3C 10 8A 4A 3B 42 C2 0E 3B E8 3C A3 45 EA 83 CE 9B 0E 3D 00 F7 8D 03 80 27 4D F3 3B C1 7E
RX: 7E A8 89 03 61 1C 9A E2 11 40 F8 35 4B CB AF 0F 8E 15 33 0F 1D 0F AD CA 86 B5 80 9D 31 F7 1C 2E 4F 40 30 90 EC 02 EE 43 C2 0D D5 B3 69 D3 AA E9 32 6E 48 7A 65 C9 89 B5 67 2C 25 1B F9 65 5F E2 EE F3 01 E1 02 25 EF 8A 2C 56 23 49 75 30 FE 28 9F 32 43 62 A2 25 07 E1 3D 1E DE 2D 8A 4B 4B C0 7B 19 19 0F 6B BA 17 D7 DD C5 DA 7C 15 3C 10 8A 4A 3B 42 C2 0E 3B E8 3C A3 45 EA 83 CE 9B 0E 3D 00 F7 8D 03 80 27 4D F3 3B C1 7E 7E A0 07 61 03 F1 6D E1 7E
TX: 7E A8 89 03 61 1E 88 C1 C6 F6 4F 7E ED 61 CF C0 1E C2 74 F1 1B E6 EA 82 7E 94 26 04 C7 EF 49 7D 1F C7 2D DB E4 69 09 4D 02 57 82 3B 2B E9 02 3D 19 C8 13 BB EC 3A 92 7F F1 84 2F 0F 68 92 0D BD 00 51 50 AC 17 D8 20 C6 59 A5 FB 7C A5 32 48 7D 18 7C E8 5F 1B A2 2C BC DB 16 63 C2 CE 5B DC 4D C1 3D 3D DD B4 19 82 57 19 F3 B5 0E F0 B6 32 6D 42 A2 5D 6E 12 61 E2 B2 61 AB C3 CD 43 9A E5 6B 3C 37 6A 9B EC AF C0 4E 6C 31 7E
RX: 7E A8 89 03 61 1E 88 C1 C6 F6 4F 7E ED 61 CF C0 1E C2 74 F1 1B E6 EA 82 7E 94 26 04 C7 EF 49 7D 1F C7 2D DB E4 69 09 4D 02 57 82 3B 2B E9 02 3D 19 C8 13 BB EC 3A 92 7F F1 84 2F 0F 68 92 0D BD 00 51 50 AC 17 D8 20 C6 59 A5 FB 7C A5 32 48 7D 18 7C E8 5F 1B A2 2C BC DB 16 63 C2 CE 5B DC 4D C1 3D 3D DD B4 19 82 57 19 F3 B5 0E F0 B6 32 6D 42 A2 5D 6E 12 61 E2 B2 61 AB C3 CD 43 9A E5 6B 3C 37 6A 9B EC AF C0 4E 6C 31 7E 7E A0 07 61 03 11 63 06 7E
TX: 7E A0 3E 03 61 10 6B 44 CA 21 70 07 87 03 97 01 52 94 8F 8F 84 3E 7F C4 05 96 8D 29 4C 22 B2 2F 14 F8 BA 6D E3 3A B0 C2 F7 E9 34 CF 79 2A 79 66 79 35 3E 1A 3B 18 28 65 DE CA 70 C5 DA 06 2E 7E
RX: 7E A0 3E 03 61 10 6B 44 CA 21 70 07 87 03 97 01 52 94 8F 8F 84 3E 7F C4 05 96 8D 29 4C 22 B2 2F 14 F8 BA 6D E3 3A B0 C2 F7 E9 34 CF 79 2A 79 66 79 35 3E 1A 3B 18 28 65 DE CA 70 C5 DA 06 2E 7E 7E A0 23 61 03 30 57 CB E6 E7 00 CD 15 30 00 00 06 1B 4B A0 32 62 72 4D 54 A0 2A 4A CD 52 87 9E 25 48 7F 79 7E

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years 1 month ago

Hi Mohan,

Hi Mohan,

You are using ciphering. I can't read the bytes.

BR,

Mikko

Mohanraj

6 years 1 month ago

Hi Mikko,

Hi Mikko,

Below is the trace from non ciphered meter.Could you please point out what is going wrong?

TX: 7E A8 86 03 61 18 47 16 E6 E6 00 C1 02 84 00 14 00 00 0D 00 00 FF 09 00 00 00 00 00 01 82 02 1B 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 06 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 07 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 0B 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 12 00 00 00 09 06 00 00 00 00 00 00 12 EB A1 7E
RX: 7E A8 86 03 61 18 47 16 E6 E6 00 C1 02 84 00 14 00 00 0D 00 00 FF 09 00 00 00 00 00 01 82 02 1B 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 06 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 07 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 0B 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 12 00 00 00 09 06 00 00 00 00 00 00 12 EB A1 7E 7E A0 07 61 03 B1 69 A3 7E
TX: 7E A8 89 03 61 1A AC 87 00 00 02 03 09 04 16 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF E5 B9 7E
RX: 7E A8 89 03 61 1A AC 87 00 00 02 03 09 04 16 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF E5 B9 7E 7E A0 07 61 03 D1 6F C0 7E
TX: 7E A8 89 03 61 1C 9A E2 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 F1 41 7E
RX: 7E A8 89 03 61 1C 9A E2 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 F1 41 7E 7E A0 07 61 03 F1 6D E1 7E
TX: 7E A8 89 03 61 1E 88 C1 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 02 11 03 01 08 02 03 09 1C 7D 7E
RX: 7E A8 89 03 61 1E 88 C1 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 02 11 03 01 08 02 03 09 1C 7D 7E 7E A0 07 61 03 11 63 06 7E
TX: 7E A0 3F 03 61 10 D0 58 04 00 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 6B FF 7E
RX: 7E A0 3F 03 61 10 D0 58 04 00 00 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 02 03 09 04 FF FF 00 00 09 06 00 00 00 00 00 00 12 00 00 6B FF 7E 7E A0 10 61 03 30 68 A2 E6 E7 00 C5 03 84 09 F7 99 7E
Write failed Activity Calendar� � 00.00.13.00.00.255:9 Invalid Invoke ID.

Thanks
Mohan Raj

Mohanraj

6 years 1 month ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Any update on this?

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi,

Hi,

Meter returns invalid data. This is not DLMS message.
7E A0 10 61 03 30 68 A2 E6 E7 00 C5 03 84 09 F7 99 7E

It seems that meter can receive first block. Can you read data from the meter and write the same data back? You can use GXDLMSDirector for this.

I noticed that your script selector and logical name are invalid.

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi, by Kurumi

Hi Mikko,

Hi Mikko,

Followed the link to read and print Activity Calender DayProfile
http://www.gurux.fi/Gurux.DLMS.Objects.GXDLMSActivityCalendar

Below the code snippet. Getting compilation error
com_read(connection, &activityCalendar.base, 9);
gxDayProfile* dp;
gxDayProfileAction *dpAct;
gxArray arr;
arr_init(&arr);
int pos, pos2;
for (pos = 0; pos != activityCalendar.dayProfileTablePassive.size; ++pos)
{
arr = activityCalendar.dayProfileTablePassive;
ret = arr_getByIndex(&arr, pos, (void**)&dp);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
printf("DayId: %d\n", dp->dayId);
for (pos2 = 0; pos2 != dp->daySchedules.size; ++pos2)
{
ret = arr_getByIndex(&dp->daySchedules, pos2, (void**)&dpAct);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
time_print(NULL,&dpAct->startTime);
printf("Logical name: %.*s\n", dpAct->scriptLogicalName.size, dpAct->scriptLogicalName.data));
}

Below is the compilation error

error: request for member ‘size’ in something not a structure or union
printf("Logical name: %.*s\n", dpAct->scriptLogicalName.size, dpAct->scriptLogicalName.data));
^
error: request for member ‘data’ in something not a structure or union
printf("Logical name: %.*s\n", dpAct->scriptLogicalName.size, dpAct->scriptLogicalName.data));
^
error: expected ‘;’ before ‘)’ token
printf("Logical name: %.*s\n", dpAct->scriptLogicalName.size, dpAct->scriptLogicalName.data));

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Awaiting for your input please

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan ,

Hi Mohan ,

You can't do this. This is an error.
arr = activityCalendar.dayProfileTablePassive;

You can do it like this:
gxArray* arr = &activityCalendar.dayProfileTablePassive;

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi Mohan , by Kurumi

Hi Mikko,

Hi Mikko,

Still we are getting compilation error printf() line;

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan ,

Hi Mohan ,

Logical name is 6 bytes. It's not a string. Try like this:

char ln[25];
hlp_getLogicalNameToString(dpAct->scriptLogicalName, ln);

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi Mohan , by Kurumi

Hi Mikko,

Hi Mikko,

below is the code snippet.i have modified as per your instruction. But logicalName value is 0s

printf("Reading activity Calendar...\n");
ret = com_read(connection, &activityCalendar.base, 9);
gxDayProfile* dp;
gxDayProfileAction *dpAct;
int pos, pos2;
for (pos = 0; pos != activityCalendar.dayProfileTablePassive.size; ++pos)
{
gxArray *arr = &activityCalendar.dayProfileTablePassive;
ret = arr_getByIndex(arr, pos, (void**)&dp);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
printf("DayId: %d\n", dp->dayId);
for (pos2 = 0; pos2 != dp->daySchedules.size; ++pos2)
{
ret = arr_getByIndex(&dp->daySchedules, pos2, (void**)&dpAct);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
time_print(NULL,&dpAct->startTime);
char ln[25];
hlp_getLogicalNameToString(dpAct->scriptLogicalName, ln);
printf("\t%s\n",ln);
}

Below i the read trace

InitializeConnection
TX: 7E A0 07 03 61 93 69 47 7E
RX: 7E A0 07 03 61 93 69 47 7E 7E A0 1E 61 03 73 B5 7C 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3B 7E
TX: 7E A0 4C 03 61 10 58 27 E6 E6 00 60 3E A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 02 AC 12 80 10 70 38 9C CE 67 B3 59 AC 56 AB 55 2A 15 8A 45 22 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF BA A8 7E
RX: 7E A0 4C 03 61 10 58 27 E6 E6 00 60 3E A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 02 AC 12 80 10 70 38 9C CE 67 B3 59 AC 56 AB 55 2A 15 8A 45 22 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF BA A8 7E 7E A0 58 61 03 30 07 51 E6 E7 00 61 4A A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 00 A3 05 A1 03 02 01 0E 88 02 07 80 89 07 60 85 74 05 08 02 02 AA 12 80 10 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 BE 10 04 0E 08 00 06 5F 1F 04 00 00 18 1D 02 30 00 07 57 15 7E
TX: 7E A0 2B 03 61 32 8D EB E6 E6 00 C3 01 81 00 0F 00 00 28 00 00 FF 01 01 09 10 AA 28 52 31 C6 A6 5E E7 FC 54 28 BE 16 8D BC 69 4F AE 7E
RX: 7E A0 2B 03 61 32 8D EB E6 E6 00 C3 01 81 00 0F 00 00 28 00 00 FF 01 01 09 10 AA 28 52 31 C6 A6 5E E7 FC 54 28 BE 16 8D BC 69 4F AE 7E 7E A0 24 61 03 52 62 DC E6 E7 00 C7 01 81 00 01 00 09 10 90 4D 0A 78 22 77 9E 3B E3 AB 17 C0 65 8B 5C 27 8B 51 7E
Reading activity Calendar...
TX: 7E A0 19 03 61 54 39 98 E6 E6 00 C0 01 82 00 14 00 00 0D 00 00 FF 09 00 31 43 7E
RX: 7E A0 19 03 61 54 39 98 E6 E6 00 C0 01 82 00 14 00 00 0D 00 00 FF 09 00 31 43 7E 7E A8 89 61 03 74 C4 EB E6 E7 00 C4 02 82 00 00 00 00 01 00 82 01 DC 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 02 02 03 09 04 06 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 16 00 00 00 09 06 86 97 7E
TX: 7E A0 07 03 61 71 75 83 7E
RX: 7E A0 07 03 61 71 75 83 7E 7E A8 89 61 03 76 D6 C8 00 00 0A 00 64 FF 12 00 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 FA B2 7E
TX: 7E A0 07 03 61 91 7B 64 7E
RX: 7E A0 07 03 61 91 7B 64 7E 7E A8 89 61 03 78 A8 21 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 77 66 7E
TX: 7E A0 07 03 61 B1 79 45 7E
RX: 7E A0 07 03 61 B1 79 45 7E 7E A0 74 61 03 7A 3E A4 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 E1 71 7E
TX: 7E A0 13 03 61 D6 8D E3 E6 E6 00 C0 02 83 00 00 00 01 FB 69 7E
RX: 7E A0 13 03 61 D6 8D E3 E6 E6 00 C0 02 83 00 00 00 01 FB 69 7E 7E A8 89 61 03 9C 82 80 E6 E7 00 C4 02 83 01 00 00 00 02 00 81 9E 02 02 11 03 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A D9 03 7E
TX: 7E A0 07 03 61 F1 7D 07 7E
RX: 7E A0 07 03 61 F1 7D 07 7E 7E A0 35 61 03 9E 18 0F 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 BD 30 7E
DayId: 0
00:00:00 00.00.00.00.00.00
06:00:00 00.00.00.00.00.00
07:00:00 00.00.00.00.00.00
11:00:00 00.00.00.00.00.00
18:00:00 00.00.00.00.00.00
22:00:00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
DayId: 1
00:00:00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
DayId: 2
00:00:00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
DayId: 3
00:00:00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
00 00.00.00.00.00.00
TX: 7E A0 07 03 61 53 65 81 7E
RX: 7E A0 07 03 61 53 65 81 7E 7E A0 1E 61 03 73 B5 7C 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3B 7E

Please correct me

Thanks
Mohan Raj

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Awaiting for you reply. Anything to corrected. please help

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan,

Hi Mohan,

Have you write this data to the meter? It's not correct. Are you getting an error if you write the same data back to the meter?

Can you try to add one entry using GXDLMSDirector? It's easier to use.

BR,
Mikko

Mohanraj

6 years ago

Hi Mikko,

Hi Mikko,
Using DLMSexplorer we are able to write.
What I have done in the code is reading activity calendar object and then writing back the same object.so which means activity calendar which read has wrong data?
Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi,

Hi,

This is the second item when you read it with GXDLMSDirector:
<!-- 6.00.00.000 -->
<OctetString Value="06000000" />
<!-- 0.0.10.0.100.255 -->
<OctetString Value="00000A0064FF" />
<UInt16 Value="3" />

This you try to write:

<!-- 6.00.00.000 -->
<OctetString Value="06000000" />
<OctetString Value="000000000000" />
<UInt16 Value="0000" />

You haven't set
act->script = BASE(actionSchedule);
act->scriptSelector = 1;

You can add it like this:
gxDayProfile* dp = (gxDayProfile*)gxmalloc(sizeof(gxDayProfile));
arr_init(&dp->daySchedules);
dp->dayId = 1;
gxDayProfileAction* ac = (gxDayProfileAction*)gxmalloc(sizeof(gxDayProfileAction));
time_init(&act->startTime, -1, -1, -1, 6, 0, 0, -1, -1);
oa_findByLN(&settings->objects, DLMS_OBJECT_TYPE_SCRIPT_TABLE, tmp2->byteArr->data, &ac->script);
if (ac->script == NULL)
{
//If script is NULL it's not on the association view and it must create manually.
cosem_createObject(DLMS_OBJECT_TYPE_SCRIPT_TABLE, &ac->script);
memcpy(ac->script->logicalName, tmp2->byteArr->data, tmp2->byteArr->size);
}
ac->scriptSelector = 1;
arr_push(&dp->daySchedules, ac);

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi, by Kurumi

Hi Mikko,

Hi Mikko,

I have modified the code as per your instruction. But still facing with "Invalid invoke ID". Please point out what is wrong. I do not know what is tmp2 variable here. so I have cusotmized accordingly.In this case am only trying to write.

Below is the code snippet.

gxActivityCalendar activityCalendar;
gxDayProfile* dp;
gxDayProfileAction *dpAct;
const unsigned char script[6] = { 0,0,10,0,1,255 }; //script
const unsigned char ln[6] = { 0,0,13,0,0,255 };
if ((ret = cosem_init2((gxObject*)&activityCalendar, DLMS_OBJECT_TYPE_ACTIVITY_CALENDAR, ln)) == 0)
{
printf("Writing activity Calendar...\n");
for(int i=0;i<4;i++)
{
dp = (gxDayProfile*)malloc(sizeof(gxDayProfile));
arr_init(&dp->daySchedules);
dp->dayId = i;
for(int j=0;j<8;j++)
{
dpAct = (gxDayProfileAction*)malloc(sizeof(gxDayProfileAction));
time_init(&dpAct->startTime, -1, -1, -1, 6, 0, 0, -1, -1);
oa_findByLN(&connection->settings.objects, DLMS_OBJECT_TYPE_SCRIPT_TABLE, &script[0], &dpAct->script);
if (dpAct->script == NULL)
{
cosem_createObject(DLMS_OBJECT_TYPE_SCRIPT_TABLE, &dpAct->script);
//memcpy(dpAct->script->logicalName, tmp2->byteArr->data, tmp2->byteArr->size);
memcpy(dpAct->script->logicalName, &script[0], 6);
}
dpAct->scriptSelector = 2;
arr_push(&dp->daySchedules, dpAct);
}
arr_push(&activityCalendar.dayProfileTablePassive,dp);
}
ret = com_write(connection, &activityCalendar.base, 9);
if (ret != DLMS_ERROR_CODE_OK)
{
com_close(connection);
con_close(connection);
return ret;
}
printf("Writing an Activity calender (Day Profile) success\n");
}

Below is the trace log
TX: 7E A0 07 03 61 93 69 47 7E
RX: 7E A0 07 03 61 93 69 47 7E 7E A0 1E 61 03 73 B5 7C 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3B 7E
TX: 7E A0 4C 03 61 10 58 27 E6 E6 00 60 3E A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 02 AC 12 80 10 70 38 9C CE 67 B3 59 AC 56 AB 55 2A 15 8A 45 22 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF BA A8 7E
RX: 7E A0 4C 03 61 10 58 27 E6 E6 00 60 3E A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 02 AC 12 80 10 70 38 9C CE 67 B3 59 AC 56 AB 55 2A 15 8A 45 22 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF BA A8 7E 7E A0 58 61 03 30 07 51 E6 E7 00 61 4A A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 00 A3 05 A1 03 02 01 0E 88 02 07 80 89 07 60 85 74 05 08 02 02 AA 12 80 10 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 BE 10 04 0E 08 00 06 5F 1F 04 00 00 18 1D 02 30 00 07 57 15 7E
TX: 7E A0 2B 03 61 32 8D EB E6 E6 00 C3 01 81 00 0F 00 00 28 00 00 FF 01 01 09 10 AA 28 52 31 C6 A6 5E E7 FC 54 28 BE 16 8D BC 69 4F AE 7E
RX: 7E A0 2B 03 61 32 8D EB E6 E6 00 C3 01 81 00 0F 00 00 28 00 00 FF 01 01 09 10 AA 28 52 31 C6 A6 5E E7 FC 54 28 BE 16 8D BC 69 4F AE 7E 7E A0 24 61 03 52 62 DC E6 E7 00 C7 01 81 00 01 00 09 10 90 4D 0A 78 22 77 9E 3B E3 AB 17 C0 65 8B 5C 27 8B 51 7E
Writing activity Calendar...
Cosem GetValue
TX: 7E A8 86 03 61 54 2F 9E E6 E6 00 C1 02 82 00 14 00 00 0D 00 00 FF 09 00 00 00 00 00 01 82 02 1B 01 04 02 02 11 00 01 08 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 D8 C5 7E
RX: 7E A8 86 03 61 54 2F 9E E6 E6 00 C1 02 82 00 14 00 00 0D 00 00 FF 09 00 00 00 00 00 01 82 02 1B 01 04 02 02 11 00 01 08 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 D8 C5 7E 7E A0 07 61 03 71 65 65 7E
TX: 7E A8 89 03 61 56 C4 0F 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 02 11 01 01 08 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 E5 CE 7E
RX: 7E A8 89 03 61 56 C4 0F 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 02 11 01 01 08 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 E5 CE 7E 7E A0 07 61 03 91 6B 82 7E
TX: 7E A8 89 03 61 58 BA E6 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 02 11 02 01 08 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 40 3A 7E
RX: 7E A8 89 03 61 58 BA E6 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 02 11 02 01 08 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 40 3A 7E 7E A0 07 61 03 B1 69 A3 7E
TX: 7E A8 89 03 61 5A A8 C5 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 02 11 03 01 08 02 03 09 86 E4 7E
RX: 7E A8 89 03 61 5A A8 C5 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 02 11 03 01 08 02 03 09 86 E4 7E 7E A0 07 61 03 D1 6F C0 7E
TX: 7E A0 3F 03 61 5C B8 D0 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 E4 2A 7E
RX: 7E A0 3F 03 61 5C B8 D0 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 02 03 09 04 06 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 02 E4 2A 7E 7E A0 10 61 03 F4 40 22 E6 E7 00 C5 03 82 09 27 CD 7E
Write failed Activity Calendar-`�� 00.00.13.00.00.255:9 Invalid Invoke ID.
TX: 7E A0 07 03 61 53 65 81 7E
RX: 7E A0 07 03 61 53 65 81 7E 7E A0 1E 61 03 73 B5 7C 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3B 7E

Thanks
Mohan Raj

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Any update on this please.

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan,

Hi Mohan,

We don't work on Saturdays and Sundays.

Now it looks better, but you are writing the same data for 8 times. I don't know how many schedules your meter can accept. Try to write one row first. Then two rows and use different time. Using the same time might cause problems.

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi Mohan, by Kurumi

Hi Mikko,

Hi Mikko,

Thanks for the update. Before I go for write operation whether meter supports or not, would like to understand the reading and printing the action script values where logical name and scriptselector is 0s.
Below is the code snippet and logs. Can you please tell me what is wrong int hat code?

printf("Reading Activity Calendar...\n");
//const unsigned char ln1[6] = { 0,0,10,0,100,255 }; //script
const unsigned char ln[6] = { 0,0,13,0,0,255 };
gxActivityCalendar activityCalendar;
if ((ret = cosem_init2((gxObject*)&activityCalendar, DLMS_OBJECT_TYPE_ACTIVITY_CALENDAR, ln)) == 0)
{
ret = com_read(connection, &activityCalendar.base, 9);
gxDayProfile* dp;
gxDayProfileAction *dpAct;
gxArray *arr;
int pos, pos2;
for (pos = 0; pos != activityCalendar.dayProfileTablePassive.size; ++pos)
{
arr = &activityCalendar.dayProfileTablePassive;
ret = arr_getByIndex(arr, pos, (void**)&dp);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
printf("DayId: %d\n", dp->dayId);
for (pos2 = 0; pos2 != dp->daySchedules.size; ++pos2)
{
ret = arr_getByIndex(&dp->daySchedules, pos2, (void**)&dpAct);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
time_print(NULL,&dpAct->startTime);
char ln[25] ={0};
hlp_getLogicalNameToString(dpAct->scriptLogicalName, ln);
printf("\tLogical name: %s",ln);
printf("\tScritp Selector : %d\n",dpAct->scriptSelector);
}
}

}
Below is the trace and output

TX: 7E A0 07 03 41 93 5A 64 7E
RX: 7E A0 20 41 03 73 3E 9D 81 80 14 05 02 02 00 06 02 02 00 07 04 00 00 00 01 08 04 00 00 00 01 6F EF 7E
TX: 7E A0 41 03 41 10 E4 8F E6 E6 00 60 33 A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 01 AC 07 80 05 4C 57 54 53 4D BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF 82 CC 7E
RX: 7E A0 37 41 03 30 21 79 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 10 14 01 D6 00 07 A7 F9 7E
Return value of = 0
Reading Activity Calendar...
TX: 7E A0 19 03 41 32 3A BD E6 E6 00 C0 01 81 00 14 00 00 0D 00 00 FF 09 00 82 BD 7E
RX: 7E A0 FC 41 03 52 F9 C2 E6 E7 00 C4 01 81 00 01 01 02 02 11 01 01 0C 02 03 09 04 01 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 03 00 00 00 09 06 00 00 0A 00 64 FF 12 00 02 02 03 09 04 06 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 09 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 0C 00 00 00 09 06 00 00 0A 00 64 FF 12 00 05 02 03 09 04 0F 00 00 00 09 06 00 00 0A 00 64 FF 12 00 06 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 00 07 02 03 09 04 15 00 00 00 09 06 00 00 0A 00 64 FF 12 00 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 00 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 00 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 00 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 00 52 F1 7E
Updating the value...
Object Type = 20
DayId: 1
01:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
03:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
06:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
09:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
12:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
15:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
18:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
21:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
00:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
00:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
00:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
00:00:00 Logical name: 00.00.00.00.00.00 Scritp Selector : 0
TX: 7E A0 07 03 41 53 56 A2 7E
RX: 7E A0 20 41 03 73 3E 9D 81 80 14 05 02 02 00 06 02 02 00 07 04 00 00 00 01 08 04 00 00 00 01 6F EF 7E

Enabled only below macro in gxignore.h
#define DLMS_IGNORE_OBJECT_POINTERS

Thanks
Mohan Raj

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Any update please?

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan,

Hi Mohan,

This is run in Windows 10 x64 and result is below:
DayId: 1
01:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 1
03:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 2
06:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 3
09:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 4
12:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 5
15:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 6
18:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 7
21:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 8
00:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 0
00:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 0
00:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 0
00:00:00 Logical name: 00.00.10.00.100.255 Scritp Selector : 0

In what environment you are running this?

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi Mohan, by Kurumi

Hi Mikko,

Hi Mikko,
Running in Linux Ubuntu

Linux Mohan 4.4.0-128-generic #154~14.04.1-Ubuntu SMP Fri May 25 14:58:51 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

Thanks
Mohan Raj

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Any update please?

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan ,

Hi Mohan ,

This is run now with the same environment that you are using without any problems.

Can you try to build and run client example.
edit client makefile and add DDLMS_IGNORE_OBJECT_POINTERS to compiler flags like this:
CFLAGS = -std=gnu99 -Wall -I. -DDLMS_IGNORE_OBJECT_POINTERS

rebuild your client example and run it with correct parameters. Something like this:

bin/gurux.dlms.client.bin -S -t Verbose

Let me know if you have any problems.

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi Mohan , by Kurumi

Hi Mikko,

Hi Mikko,

1. Have modified Client Example makefile (attached for reference)

# compiling flags here
#CFLAGS = -std=gnu99 -Wall -I.
CFLAGS = -std=gnu99 -Wall -I. -DDLMS_IGNORE_OBJECT_POINTERS

2. Cleaned and rebuild ClientExample
3. Below is the Log and Trace for your reference

-------- Reading Object Activity Calendar��� 00.00.13.00.00.255
TX: 7E A0 19 03 41 FA 7E F7 E6 E6 00 C0 01 8D 00 14 00 00 0D 00 00 FF 09 00 7D 5F 7E
RX: 7E A0 19 03 41 FA 7E F7 E6 E6 00 C0 01 8D 00 14 00 00 0D 00 00 FF 09 00 7D 5F 7E 7E A8 89 41 03 DE AF E2 E6 E7 00 C4 02 8D 00 00 00 00 01 00 82 01 DC 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 02 02 03 09 04 06 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 16 00 00 00 09 06 60 42 7E
TX: 7E A0 07 03 41 11 40 C3 7E
RX: 7E A0 07 03 41 11 40 C3 7E 7E A8 89 41 03 D0 D1 0B 00 00 0A 00 64 FF 12 00 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 FA B2 7E
TX: 7E A0 07 03 41 31 42 E2 7E
RX: 7E A0 07 03 41 31 42 E2 7E 7E A8 89 41 03 D2 C3 28 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 77 66 7E
TX: 7E A0 07 03 41 51 44 81 7E
RX: 7E A0 07 03 41 51 44 81 7E 7E A0 74 41 03 D4 71 EB 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 E1 71 7E
TX: 7E A0 13 03 41 7C EE CA E6 E6 00 C0 02 8E 00 00 00 01 8F 15 7E
RX: 7E A0 13 03 41 7C EE CA E6 E6 00 C0 02 8E 00 00 00 01 8F 15 7E 7E A8 89 41 03 F6 E5 4F E6 E7 00 C4 02 8E 01 00 00 00 02 00 81 9E 02 02 11 03 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 24 03 7E
TX: 7E A0 07 03 41 91 48 47 7E
RX: 7E A0 07 03 41 91 48 47 7E 7E A0 35 41 03 F8 13 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 BD 30 7E
Index: 2 Value:
Index: 3 Value: []
Index: 4 Value: []
Index: 5 Value: []
Index: 6 Value:
Index: 7 Value: []
Index: 8 Value: []
Index: 9 Value: [0[00.00.00.00.00.00 2 00:00:00, 00.00.00.00.00.00 3 06:00:00, 00.00.00.00.00.00 1 07:00:00, 00.00.00.00.00.00 4 11:00:00, 00.00.00.00.00.00 1 18:00:00, 00.00.00.00.00.00 2 22:00:00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00], 1[00.00.00.00.00.00 1 00:00:00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00], 2[00.00.00.00.00.00 1 00:00:00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00], 3[00.00.00.00.00.00 1 00:00:00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00, 00.00.00.00.00.00 1 :00]]
TX: 7E A0 07 03 41 53 56 A2 7E
RX: 7E A0 07 03 41 53 56 A2 7E 7E A0 1E 41 03 73 8E 7F 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3B 7E
All items are read.

4.Running the ClientExample like this
./bin/gurux.dlms.client.bin -S /dev/ttyUSB0 -c 32 -s 1 -a Low -P "lnt1" -C "None" -g "0.0.13.0.0.255:9" -v "0.0.43.1.3.255" -t "Verbose" -I

But Still LogicalScriptName and ScriptSelector is 0.

Thanks
Mohan Raj

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Any update please?

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan ,

Hi Mohan ,

I have few questions.

1. Do you have the latest version from Github? Did you clean and rebuild the development folder?
2. DLMS_IGNORE_OBJECT_POINTERS is the only what you have un-comment from gxignore.h file.
3. Have you made other changes?
4. Can you run gcc --version and join result here?

BR,
Mikko

Mohanraj

6 years ago

Hi Mikko,

Hi Mikko,

This time some junk values are getting printed for scriptLogical name and for select is always 0

1. I just downloaded latest version and cleaned and rebuild
2.ensured that only DLMS_IGNORE_OBJECT_POINTERS is un-commented in gxignore.x file
3.I have made changes that after getting association view i.e reading activity calender. Below is the code snippter

if ((ret = com_initializeOpticalHead(connection, iec)) == 0 &&
(ret = com_updateInvocationCounter(connection, invocationCounter)) == 0 &&
(ret = com_initializeOpticalHead(connection, iec)) == 0 &&
(ret = com_initializeConnection(connection)) == 0 &&
(ret = com_getAssociationView(connection)) == 0)
{
printf("Reading Activity Calendar...\n");
const unsigned char ln[6] = { 0,0,13,0,0,255 };
gxActivityCalendar activityCalendar;
if ((ret = cosem_init2((gxObject*)&activityCalendar, DLMS_OBJECT_TYPE_ACTIVITY_CALENDAR, ln)) == 0)
{

ret = com_read(connection, &activityCalendar.base, 9);
gxDayProfile* dp;
gxDayProfileAction *dpAct;
gxArray *arr;
int pos, pos2;
for (pos = 0; pos != activityCalendar.dayProfileTablePassive.size; ++pos)
{
arr = &activityCalendar.dayProfileTablePassive;
ret = arr_getByIndex(arr, pos, (void**)&dp);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
printf("DayId: %d\n", dp->dayId);
for (pos2 = 0; pos2 != dp->daySchedules.size; ++pos2)
{
ret = arr_getByIndex(&dp->daySchedules, pos2, (void**)&dpAct);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
time_print(NULL,&dpAct->startTime);
char ln[25] ={0};
hlp_getLogicalNameToString(dpAct->scriptLogicalName, ln);
printf("\tLogical name: %s",ln);
printf("\tScritp Selector : %d\n",dpAct->scriptSelector);
}
}

}
4.below is my gcc version
gcc (Ubuntu 7.3.0-21ubuntu1~14.04) 7.3.0

Below is the trace
Reading Activity Calendar...
TX: 7E A0 19 03 41 FA 7E F7 E6 E6 00 C0 01 81 00 14 00 00 0D 00 00 FF 09 00 82 BD 7E
RX: 7E A0 19 03 41 FA 7E F7 E6 E6 00 C0 01 81 00 14 00 00 0D 00 00 FF 09 00 82 BD 7E 7E A8 89 41 03 DE AF E2 E6 E7 00 C4 02 81 00 00 00 00 01 00 82 01 DC 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 02 02 03 09 04 06 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 16 00 00 00 09 06 18 AC 7E
TX: 7E A0 07 03 41 11 40 C3 7E
RX: 7E A0 07 03 41 11 40 C3 7E 7E A8 89 41 03 D0 D1 0B 00 00 0A 00 64 FF 12 00 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 FA B2 7E
TX: 7E A0 07 03 41 31 42 E2 7E
RX: 7E A0 07 03 41 31 42 E2 7E 7E A8 89 41 03 D2 C3 28 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 77 66 7E
TX: 7E A0 07 03 41 51 44 81 7E
RX: 7E A0 07 03 41 51 44 81 7E 7E A0 74 41 03 D4 71 EB 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 E1 71 7E
TX: 7E A0 13 03 41 7C EE CA E6 E6 00 C0 02 81 00 00 00 01 73 7F 7E
RX: 7E A0 13 03 41 7C EE CA E6 E6 00 C0 02 81 00 00 00 01 73 7F 7E 7E A8 89 41 03 F6 E5 4F E6 E7 00 C4 02 81 01 00 00 00 02 00 81 9E 02 02 11 03 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A C2 D6 7E
TX: 7E A0 07 03 41 91 48 47 7E
RX: 7E A0 07 03 41 91 48 47 7E 7E A0 35 41 03 F8 13 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 BD 30 7E
DayId: 0
00:00:00 Logical name: 112.196.247.01.00.00 Scritp Selector : 0
06:00:00 Logical name: 64.192.247.01.00.00 Scritp Selector : 0
07:00:00 Logical name: 208.192.247.01.00.00 Scritp Selector : 0
11:00:00 Logical name: 160.188.247.01.00.00 Scritp Selector : 0
18:00:00 Logical name: 48.189.247.01.00.00 Scritp Selector : 0
22:00:00 Logical name: 00.185.247.01.00.00 Scritp Selector : 0
00 Logical name: 144.185.247.01.00.00 Scritp Selector : 0
00 Logical name: 96.181.247.01.00.00 Scritp Selector : 0
DayId: 1
00:00:00 Logical name: 240.181.247.01.00.00 Scritp Selector : 0
00 Logical name: 192.177.247.01.00.00 Scritp Selector : 0
00 Logical name: 80.178.247.01.00.00 Scritp Selector : 0
00 Logical name: 32.174.247.01.00.00 Scritp Selector : 0
00 Logical name: 176.174.247.01.00.00 Scritp Selector : 0
00 Logical name: 128.170.247.01.00.00 Scritp Selector : 0
00 Logical name: 16.171.247.01.00.00 Scritp Selector : 0
00 Logical name: 224.166.247.01.00.00 Scritp Selector : 0
DayId: 2
00:00:00 Logical name: 112.167.247.01.00.00 Scritp Selector : 0
00 Logical name: 64.163.247.01.00.00 Scritp Selector : 0
00 Logical name: 208.163.247.01.00.00 Scritp Selector : 0
00 Logical name: 160.159.247.01.00.00 Scritp Selector : 0
00 Logical name: 48.160.247.01.00.00 Scritp Selector : 0
00 Logical name: 00.156.247.01.00.00 Scritp Selector : 0
00 Logical name: 144.156.247.01.00.00 Scritp Selector : 0
00 Logical name: 96.152.247.01.00.00 Scritp Selector : 0
DayId: 3
00:00:00 Logical name: 240.152.247.01.00.00 Scritp Selector : 0
00 Logical name: 192.148.247.01.00.00 Scritp Selector : 0
00 Logical name: 80.149.247.01.00.00 Scritp Selector : 0
00 Logical name: 32.145.247.01.00.00 Scritp Selector : 0
00 Logical name: 176.145.247.01.00.00 Scritp Selector : 0
00 Logical name: 128.141.247.01.00.00 Scritp Selector : 0
00 Logical name: 16.142.247.01.00.00 Scritp Selector : 0
00 Logical name: 112.131.247.01.00.00 Scritp Selector : 0
TX: 7E A0 07 03 41 53 56 A2 7E
RX: 7E A0 07 03 41 53 56 A2 7E 7E A0 1E 41 03 73 8E 7F 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3B 7E
All items are read.

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Any update please? please correct me where am going wrong.

thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan,

Hi Mohan,

We have finally able to solve this or we get the same result as you.
Your development folder is not compiled using DLMS_IGNORE_OBJECT_POINTERS, but your client app is.

Make sure that you don't have development .c or .h files inside of your app folder. That might cause it.

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi Mohan, by Kurumi

Hi Mikko,

Hi Mikko,

Am not clear here. Please tell me
1.Both development folder and client app folder should be compiled by un-commenting DLMS_IGNORE_OBJECT_POINTERS
2.only development folder compiled by un-commneting DLMS_IGNORE_OBJECT_POINTERS and client app by commeting DLMS_IGNORE_OBJECT_POINTERS

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan,

Hi Mohan,

Easier way is if you add DLMS_IGNORE_OBJECT_POINTERS to both makefiles. You don't need to modify the gxignore.h file at all.

for development makefile:
CFLAGS = -g -std=c99 -Wall -fPIC -DDLMS_IGNORE_OBJECT_POINTERS

for app makefile:
CFLAGS = -std=gnu99 -Wall -I. -DDLMS_IGNORE_OBJECT_POINTERS
BR,

Mikko

Mohanraj

6 years ago

In reply to Hi Mohan, by Kurumi

Hi Mikko,

Hi Mikko,

As you suggested i have not touched/modified gxignore.h file i.e retained default settings. But added
for development makefile:
CFLAGS = -g -std=c99 -Wall -fPIC -DDLMS_IGNORE_OBJECT_POINTERS

for app makefile:
CFLAGS = -std=gnu99 -Wall -I. -DDLMS_IGNORE_OBJECT_POINTERS

Getting below compilation error
src/converters.c: In function ‘obj_registerMonitorToString’:
src/converters.c:1141:23: error: incompatible type for argument 2 of ‘bb_addString’
bb_addString(&ba, object->monitoredValue.objectType);

Thanks
Mohan Raj

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Sorry, Mistake from my end. compiled using old stack. now am able to read and print logical name and script selector successfully. But actual problem persist here i.e "Invalid invoke id" message when i write back the same object.

Below is the code snippet
printf("Reading Activity Calendar...\n");
const unsigned char ln[6] = { 0,0,13,0,0,255 };
gxActivityCalendar *activityCalendar;
activityCalendar =(gxActivityCalendar*)malloc(sizeof(gxActivityCalendar));
if ((ret = cosem_init2((gxObject*)activityCalendar, DLMS_OBJECT_TYPE_ACTIVITY_CALENDAR, ln)) == 0)
{

char *data = NULL;
ret = com_read(connection, &activityCalendar->base, 9);
gxDayProfile* dp;
gxDayProfileAction *dpAct;
gxArray arr;
int pos, pos2;
for (pos = 0; pos != activityCalendar->dayProfileTablePassive.size; ++pos)
{
arr = activityCalendar->dayProfileTablePassive;
ret = arr_getByIndex(&arr, pos, (void**)&dp);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
printf("DayId: %d\n", dp->dayId);
for (pos2 = 0; pos2 != dp->daySchedules.size; ++pos2)
{
ret = arr_getByIndex(&dp->daySchedules, pos2, (void**)&dpAct);
if (ret != DLMS_ERROR_CODE_OK)
{
return ret;
}
time_print(NULL,&dpAct->startTime);
char ln1[25];
hlp_getLogicalNameToString(dpAct->scriptLogicalName, ln1);
printf("\tLogical name: %s",ln1);
printf("\tScritp Selector : %d\n",dpAct->scriptSelector);
}
}

}//if
printf("Reading Activity Calendar...Success\n");
printf("Writing Activity Calendar...\n");
ret = com_write(connection, &activityCalendar->base, 9);
if (ret != DLMS_ERROR_CODE_OK)
{
com_close(connection);
con_close(connection);
return ret;
}
printf("Writing an Activity calender (Day Profile) success\n");

Thanks
Mohan Raj

Thanks
Mohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi Mohan,

Hi Mohan,

As I have explained before, the meter returns invalid data.
Can you post trace from GXDLMSDirector write and ANSI C write without ciphering?
I can compare what is different.

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi Mohan, by Kurumi

Hi Mikko,

Hi Mikko,

Observation 1:
1. When we try write using DLMSExplorer we are getting "System.OutOfMemoryException: Insufficient memory to continue the execution of the program"

Below is the trace
----------------------------------------------
GXDLMSDirector 8.2.2005.1401
Log created 17:49:01
17:49:06 Read object type ActivityCalendar index: 2
7E A0 19 03 61 50 1D DE E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 02 00 2F 94 7E
17:49:06
7E A0 19 03 61 50 1D DE E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 02 00 2F 94 7E 7E A0 1A 61 03 34 E2 38 E6 E7 00 C4 01 C1 00 09 08 43 61 6C 65 6E 64 61 72 DE CA 7E
17:49:06 Read object type ActivityCalendar index: 3
7E A0 19 03 61 72 0D DC E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 03 00 F7 8D 7E
17:49:06
7E A0 19 03 61 72 0D DC E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 03 00 F7 8D 7E 7E A0 28 61 03 56 72 0D E6 E7 00 C4 01 C1 00 01 01 02 03 09 01 31 09 0C FF FF 01 FF FF FF FF FF FF 01 4A 00 09 01 31 63 6A 7E
17:49:06 Read object type ActivityCalendar index: 4
7E A0 19 03 61 94 35 5E E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 04 00 FF C0 7E
17:49:06
7E A0 19 03 61 94 35 5E E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 04 00 FF C0 7E 7E A0 25 61 03 78 81 4E E6 E7 00 C4 01 C1 00 01 01 02 08 09 01 31 11 00 11 00 11 00 11 00 11 00 11 00 11 00 26 EC 7E
17:49:06 Read object type ActivityCalendar index: 5
7E A0 19 03 61 B6 25 5C E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 05 00 27 D9 7E
17:49:06
7E A0 19 03 61 B6 25 5C E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 05 00 27 D9 7E 7E A8 89 61 03 9A B4 E5 E6 E7 00 C4 01 C1 00 01 01 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 02 02 03 09 04 06 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 16 00 00 00 09 06 00 00 0A 00 64 FF 12 00 20 C0 7E
17:49:06 Get next frame.
17:49:06 Read object type ActivityCalendar index: 5
7E A0 07 03 61 D1 7F 26 7E
17:49:06
7E A0 07 03 61 D1 7F 26 7E 7E A0 30 61 03 9C 5D 42 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 00 D5 7E
17:49:06 Read object type ActivityCalendar index: 6
7E A0 19 03 61 F8 5F F7 E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 06 00 4F F3 7E
17:49:06
7E A0 19 03 61 F8 5F F7 E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 06 00 4F F3 7E 7E A0 1A 61 03 BE B0 13 E6 E7 00 C4 01 C1 00 09 08 43 61 6C 65 6E 64 61 72 DE CA 7E
17:49:06 Read object type ActivityCalendar index: 7
7E A0 19 03 61 1A 43 33 E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 07 00 97 EA 7E
17:49:07
7E A0 19 03 61 1A 43 33 E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 07 00 97 EA 7E 7E A0 6A 61 03 D0 8D C3 E6 E7 00 C4 01 C1 00 01 04 02 03 09 01 31 09 0C FF FF 01 FF FF FF FF FF FF 01 4A 00 09 01 31 02 03 09 01 32 09 0C FF FF 00 FF FF FF FF FF FF 01 4A 00 09 01 30 02 03 09 01 33 09 0C FF FF 00 FF FF FF FF FF FF 01 4A 00 09 01 30 02 03 09 01 34 09 0C FF FF 00 FF FF FF FF FF FF 01 4A 00 09 01 30 66 AD 7E
17:49:07 Read object type ActivityCalendar index: 8
7E A0 19 03 61 3C 77 77 E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 08 00 5F 69 7E
17:49:07
7E A0 19 03 61 3C 77 77 E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 08 00 5F 69 7E 7E A0 5E 61 03 F2 83 FF E6 E7 00 C4 01 C1 00 01 04 02 08 09 01 31 11 00 11 00 11 00 11 00 11 00 11 00 11 00 02 08 09 01 32 11 00 11 00 11 00 11 00 11 00 11 00 11 00 02 08 09 01 33 11 00 11 00 11 00 11 00 11 00 11 00 11 00 02 08 09 01 34 11 00 11 00 11 00 11 00 11 00 11 00 11 00 D7 0D 7E
17:49:07 Read object type ActivityCalendar index: 9
7E A0 19 03 61 5E 63 37 E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 09 00 87 70 7E
17:49:07
7E A0 19 03 61 5E 63 37 E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 09 00 87 70 7E 7E A8 89 61 03 14 C2 88 E6 E7 00 C4 02 C1 00 00 00 00 01 00 82 01 DC 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 06 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 16 00 00 00 09 06 47 3A 7E
17:49:07 Get next frame.
17:49:07 Read object type ActivityCalendar index: 9
7E A0 07 03 61 71 75 83 7E
17:49:07
7E A0 07 03 61 71 75 83 7E 7E A8 89 61 03 16 D0 AB 00 00 0A 00 64 FF 12 00 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 4F 11 7E
17:49:07 Get next frame.
17:49:07 Read object type ActivityCalendar index: 9
7E A0 07 03 61 91 7B 64 7E
17:49:07
7E A0 07 03 61 91 7B 64 7E 7E A8 89 61 03 18 AE 42 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 E7 C2 7E
17:49:07 Get next frame.
17:49:07 Read object type ActivityCalendar index: 9
7E A0 07 03 61 B1 79 45 7E
17:49:07
7E A0 07 03 61 B1 79 45 7E 7E A0 74 61 03 1A 38 C7 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 E1 71 7E
17:49:07 Get Next Data block.
17:49:07 Read object type ActivityCalendar index: 9
7E A0 13 03 61 D0 BB 86 E6 E6 00 C0 02 C1 00 00 00 01 51 BE 7E
17:49:08
7E A0 13 03 61 D0 BB 86 E6 E6 00 C0 02 C1 00 00 00 01 51 BE 7E 7E A8 89 61 03 3C 88 25 E6 E7 00 C4 02 C1 01 00 00 00 02 00 81 9E 02 02 11 03 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 59 DB 7E
17:49:08 Get next frame.
17:49:08 Read object type ActivityCalendar index: 9
7E A0 07 03 61 F1 7D 07 7E
17:49:08
7E A0 07 03 61 F1 7D 07 7E 7E A0 35 61 03 3E 12 AA 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 BD 30 7E
17:49:08 Read object type ActivityCalendar index: 10
7E A0 19 03 61 12 0B BF E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 0A 00 EF 5A 7E
17:49:08
7E A0 19 03 61 12 0B BF E6 E6 00 C0 01 C1 00 14 00 00 0D 00 00 FF 0A 00 EF 5A 7E 7E A0 1E 61 03 50 2C 6F E6 E7 00 C4 01 C1 00 09 0C 00 00 00 00 FF 00 00 FF FF 01 4A 00 6C A3 7E
17:49:27 Writing object 0.0.13.0.0.255, interface ActivityCalendar
7E A8 89 03 61 34 D0 4F E6 E6 00 C1 02 C1 00 14 00 00 0D 00 00 FF 09 00 00 00 00 00 01 82 02 1B 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 03 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 9B E2 7E
17:49:28
7E A8 89 03 61 34 D0 4F E6 E6 00 C1 02 C1 00 14 00 00 0D 00 00 FF 09 00 00 00 00 00 01 82 02 1B 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 03 00 00 FF 09 06 00 00 0A 00 01 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 9B E2 7E 7E A0 07 61 03 71 65 65 7E
17:49:28 Writing object 0.0.13.0.0.255, interface ActivityCalendar
7E A8 89 03 61 36 C2 6C 03 09 04 16 00 00 00 09 06 00 00 0A 00 64 FF 12 00 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 27 27 7E
17:49:28
7E A8 89 03 61 36 C2 6C 03 09 04 16 00 00 00 09 06 00 00 0A 00 64 FF 12 00 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 27 27 7E 7E A0 07 61 03 91 6B 82 7E
17:49:28 Writing object 0.0.13.0.0.255, interface ActivityCalendar
7E A8 89 03 61 38 BC 85 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 39 DF 7E
17:49:28
7E A8 89 03 61 38 BC 85 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 39 DF 7E 7E A0 07 61 03 B1 69 A3 7E
17:49:28 Writing object 0.0.13.0.0.255, interface ActivityCalendar
7E A8 89 03 61 3A AE A6 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 03 01 08 02 03 09 04 00 00 56 46 7E
17:49:28
7E A8 89 03 61 3A AE A6 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 03 01 08 02 03 09 04 00 00 56 46 7E 7E A0 07 61 03 D1 6F C0 7E
17:49:28 Writing object 0.0.13.0.0.255, interface ActivityCalendar
7E A0 3C 03 61 3C 73 96 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 00 62 7E
17:49:28
7E A0 3C 03 61 3C 73 96 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 00 62 7E 7E A0 10 61 03 F2 76 47 E6 E7 00 C5 03 C1 09 29 A1 7E
System.OutOfMemoryException: Insufficient memory to continue the execution of the program.
at GXDLMSDirector.GXDLMSCommunicator.ReadDataBlock(Byte[][] data, String text, GXReplyData reply)
at GXDLMSDirector.GXDLMSCommunicator.Write(GXDLMSObject obj, Int32 index)
at GXDLMSDirector.MainForm.WriteMnu_Click(Object sender, EventArgs e)
17:49:49 Send Keep Alive
7E A0 19 03 61 5E 63 37 E6 E6 00 C0 01 C1 00 0F 00 00 28 00 00 FF 01 00 F9 79 7E
17:49:49
7E A0 19 03 61 5E 63 37 E6 E6 00 C0 01 C1 00 0F 00 00 28 00 00 FF 01 00 F9 79 7E 7E A0 18 61 03 14 96 20 E6 E7 00 C4 01 C1 00 09 06 00 00 28 00 00 FF B6 6E 7E

Observation 2:
When we try write using ANSI C we are getting error reponse "Invalid Invoke ID"

Below is the command
-------------------------------------------
./bin/gurux.dlms.client.bin -S /dev/ttyUSB0 -c 48 -s 1 -a High -P "0000000001035820" -C "None" -g "0.0.13.0.0.255:9" -v "0.0.43.1.3.255" -t "Verbose" -I

Below is the trace
----------------------------------
TX: 7E A0 07 03 61 93 69 47 7E
RX: 7E A0 07 03 61 93 69 47 7E 7E A0 1E 61 03 73 B5 7C 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3B 7E
TX: 7E A0 4C 03 61 10 58 27 E6 E6 00 60 3E A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 02 AC 12 80 10 70 38 9C CE 67 B3 59 AC 56 AB 55 2A 15 8A 45 22 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF BA A8 7E
RX: 7E A0 4C 03 61 10 58 27 E6 E6 00 60 3E A1 09 06 07 60 85 74 05 08 01 01 8A 02 07 80 8B 07 60 85 74 05 08 02 02 AC 12 80 10 70 38 9C CE 67 B3 59 AC 56 AB 55 2A 15 8A 45 22 BE 10 04 0E 01 00 00 00 06 5F 1F 04 00 00 1E 1D FF FF BA A8 7E 7E A0 58 61 03 30 07 51 E6 E7 00 61 4A A1 09 06 07 60 85 74 05 08 01 01 A2 03 02 01 00 A3 05 A1 03 02 01 0E 88 02 07 80 89 07 60 85 74 05 08 02 02 AA 12 80 10 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 BE 10 04 0E 08 00 06 5F 1F 04 00 00 18 1D 02 30 00 07 57 15 7E
TX: 7E A0 2B 03 61 32 8D EB E6 E6 00 C3 01 81 00 0F 00 00 28 00 00 FF 01 01 09 10 AA 28 52 31 C6 A6 5E E7 FC 54 28 BE 16 8D BC 69 4F AE 7E
RX: 7E A0 2B 03 61 32 8D EB E6 E6 00 C3 01 81 00 0F 00 00 28 00 00 FF 01 01 09 10 AA 28 52 31 C6 A6 5E E7 FC 54 28 BE 16 8D BC 69 4F AE 7E 7E A0 24 61 03 52 62 DC E6 E7 00 C7 01 81 00 01 00 09 10 90 4D 0A 78 22 77 9E 3B E3 AB 17 C0 65 8B 5C 27 8B 51 7E
Reading Activity Calendar...
TX: 7E A0 19 03 61 54 39 98 E6 E6 00 C0 01 82 00 14 00 00 0D 00 00 FF 09 00 31 43 7E
RX: 7E A0 19 03 61 54 39 98 E6 E6 00 C0 01 82 00 14 00 00 0D 00 00 FF 09 00 31 43 7E 7E A8 89 61 03 74 C4 EB E6 E7 00 C4 02 82 00 00 00 00 01 00 82 01 DC 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 06 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 16 00 00 00 09 06 03 73 7E
TX: 7E A0 07 03 61 71 75 83 7E
RX: 7E A0 07 03 61 71 75 83 7E 7E A8 89 61 03 76 D6 C8 00 00 0A 00 64 FF 12 00 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 4F 11 7E
TX: 7E A0 07 03 61 91 7B 64 7E
RX: 7E A0 07 03 61 91 7B 64 7E 7E A8 89 61 03 78 A8 21 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 E7 C2 7E
TX: 7E A0 07 03 61 B1 79 45 7E
RX: 7E A0 07 03 61 B1 79 45 7E 7E A0 74 61 03 7A 3E A4 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 E1 71 7E
TX: 7E A0 13 03 61 D6 8D E3 E6 E6 00 C0 02 83 00 00 00 01 FB 69 7E
RX: 7E A0 13 03 61 D6 8D E3 E6 E6 00 C0 02 83 00 00 00 01 FB 69 7E 7E A8 89 61 03 9C 82 80 E6 E7 00 C4 02 83 01 00 00 00 02 00 81 9E 02 02 11 03 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 98 7C 7E
TX: 7E A0 07 03 61 F1 7D 07 7E
RX: 7E A0 07 03 61 F1 7D 07 7E 7E A0 35 61 03 9E 18 0F 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 BD 30 7E
Reading Activity Calendar...Success
Writing Activity Calendar...
TX: 7E A8 86 03 61 18 47 16 E6 E6 00 C1 02 84 00 14 00 00 0D 00 00 FF 09 00 00 00 00 00 01 82 02 1B 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 06 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 DD 3A 7E
RX: 7E A8 86 03 61 18 47 16 E6 E6 00 C1 02 84 00 14 00 00 0D 00 00 FF 09 00 00 00 00 00 01 82 02 1B 01 04 02 02 11 00 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 06 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 07 00 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 0B 00 00 00 09 06 00 00 0A 00 64 FF 12 00 04 02 03 09 04 12 00 00 00 09 06 00 00 0A 00 64 FF 12 DD 3A 7E 7E A0 07 61 03 B1 69 A3 7E
TX: 7E A8 89 03 61 1A AC 87 00 01 02 03 09 04 16 00 00 00 09 06 00 00 0A 00 64 FF 12 00 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF B6 AE 7E
RX: 7E A8 89 03 61 1A AC 87 00 01 02 03 09 04 16 00 00 00 09 06 00 00 0A 00 64 FF 12 00 02 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 01 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF B6 AE 7E 7E A0 07 61 03 D1 6F C0 7E
TX: 7E A8 89 03 61 1C 9A E2 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 22 A6 7E
RX: 7E A8 89 03 61 1C 9A E2 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 02 01 08 02 03 09 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 22 A6 7E 7E A0 07 61 03 F1 6D E1 7E
TX: 7E A8 89 03 61 1E 88 C1 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 03 01 08 02 03 09 41 6B 7E
RX: 7E A8 89 03 61 1E 88 C1 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 02 11 03 01 08 02 03 09 41 6B 7E 7E A0 07 61 03 11 63 06 7E
TX: 7E A0 3F 03 61 10 D0 58 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 59 9A 7E
RX: 7E A0 3F 03 61 10 D0 58 04 00 00 00 00 09 06 00 00 0A 00 64 FF 12 00 03 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 02 03 09 04 FF FF 00 00 09 06 00 00 0A 00 64 FF 12 00 01 59 9A 7E 7E A0 13 61 03 30 A5 87 E6 E7 00 C5 02 84 00 00 00 01 79 E4 7E
Write failed Activity Calendar 00.00.13.00.00.255:9 Invalid Invoke ID.
TX: 7E A0 07 03 61 53 65 81 7E
RX: 7E A0 07 03 61 53 65 81 7E 7E A0 1E 61 03 73 B5 7C 81 80 12 05 01 80 06 01 80 07 04 00 00 00 01 08 04 00 00 00 01 53 3B 7E

Thanks
Mohan Raj

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Any update please? what misake am i making? please advice

Thanks
Mohan Raj

Mohanraj

6 years ago

In reply to Hi Mikko, by Mohanraj

Hi Mikko,

Hi Mikko,

Any update please?

Thanks
Miohan Raj

Profile picture for user Kurumi

Kurumi

6 years ago

Hi,

Hi,

The problem is same. Meter returns invalid data after the first PDU is written to the meter. This is not a correct reply from the meter.
C5 03 C1 09

I believe that if you try to write data that fits one PDU meter can handle it.
You need to ask meter manufacturer to fix it. There is nothing that we or you can do for it.

BR,
Mikko

Mohanraj

6 years ago

In reply to Hi, by Kurumi

Hi Mikko,

Hi Mikko,

Thanks. I will check with meter manufacturer

Thanks
Mohan Raj

  • 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