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.
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.
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?
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.
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));
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
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" />
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);
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.
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.
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?
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:
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?
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
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.
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
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);
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)
{
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.
Observation 1:
1. When we try write using DLMSExplorer we are getting "System.OutOfMemoryException: Insufficient memory to continue the execution of the program"
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.
Hi Mikko,
Hi Mikko,
Any update please?
Thanks
Vijay
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
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
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
Hi Mikko,
Hi Mikko,
Understood your point. how to remove item from the list inbetween or edit the items
Thanks
Mohan Raj
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
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
Hi Mohan,
Hi Mohan,
You are using ciphering. I can't read the bytes.
BR,
Mikko
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
Hi Mikko,
Hi Mikko,
Any update on this?
Thanks
Mohan Raj
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
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));
Hi Mikko,
Hi Mikko,
Awaiting for your input please
Thanks
Mohan Raj
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
Hi Mikko,
Hi Mikko,
Still we are getting compilation error printf() line;
Thanks
Mohan Raj
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
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
Hi Mikko,
Hi Mikko,
Awaiting for you reply. Anything to corrected. please help
Thanks
Mohan Raj
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
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
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
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
Hi Mikko,
Hi Mikko,
Any update on this please.
Thanks
Mohan Raj
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
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
Hi Mikko,
Hi Mikko,
Any update please?
Thanks
Mohan Raj
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
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
Hi Mikko,
Hi Mikko,
Any update please?
Thanks
Mohan Raj
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
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
Hi Mikko,
Hi Mikko,
Any update please?
Thanks
Mohan Raj
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
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.
Hi Mikko,
Hi Mikko,
Any update please? please correct me where am going wrong.
thanks
Mohan Raj
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
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
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
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
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
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
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
Hi Mikko,
Hi Mikko,
Any update please? what misake am i making? please advice
Thanks
Mohan Raj
Hi Mikko,
Hi Mikko,
Any update please?
Thanks
Miohan Raj
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
Hi Mikko,
Hi Mikko,
Thanks. I will check with meter manufacturer
Thanks
Mohan Raj