I want to compile Gurux Data Collector code for EFR32FG13. I have an wirepas-sdk and how can i link my wirepas-sdk with Gurux Data Collector code and generate a binary for EFR32FG13.
Do you have set the compiler and can you run any Wirepas example on your board?
If you can run the Wirepas example you need to modify the DLMS example for your needs and compile it.
Thanks for the update.
Sorry for the late reply. I was busy with some other task.
I have integrated GuruxData collector code with wirepas-stack. When i try to compile i'm getting below error.
source/GuruxDLMSDataCollector/app.c: In function 'dataReceivedCb':
source/GuruxDLMSDataCollector/app.c:895:13: error: too few arguments to function 'com_method'
if ((ret = com_method(DLMS_OBJECT_TYPE_DISCONNECT_CONTROL, ln, data->bytes[0])) != 0)
^
source/GuruxDLMSDataCollector/app.c:428:5: note: declared here
int com_method(
^
cc1: all warnings being treated as errors
com_method function need's 4 arguments , but we are passing only 3 arguments. Can you please tell what value i have to pass as 4th argument here.
Hi Mikko,
1) I can able to read clock object from Gurux simple server, But i'm getting compressed data as you can see in the below log, Nic compressing the data. Can you please tell me how to uncompress the data to see the actual clock and time.
log from sink :
RX from 1:sink1 => b'Start read!'
RX from 1:sink1 => b'\x07\xe6\n\x0b\x02\x044\x0b\x00\x00\x00\x00'
RX from 1:sink1 => b'\xc4 \x14w\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u\x01\x00\x00\x00\x00\x01\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'
RX from 1:sink1 => b'\xec\xfc\xd5\x00\x07\x01\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
RX from 1:sink1 => b'\x01\x00\x06\xff-\x01\x00\x00\x00\xff\xe0\x00\xff\x03\xff\x00\x00\x00'
2) The above experiment has been done with out authentication, needs to test with authentication. Can you please tell me the commands to test Gurux's server(GuruxDLMSSimpleServer1) and client(GuruxDLMSClientExample) with authentication.
I don't know if is this compressed data. It looks more like you have printed an empty buffer. This is not a DLMS frame and you need to check that first. The data should start and end with 0x7E.
I will check on why data is not coming to sink from wirepas node.
Can you please tell me the password for high Authentication mode. Server as GuruxDLMSSimpleServer1 and Gurux collector as client.
tried with D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF in hex but saying can't authenticate with this password
Because your meter is using WRAPPER framing and it doesn't use 0x7E chars at the beginning or end of the frame. There are no start or stop bytes at all in WRAPPER.
Get the latest version from the Github. There is cl_getRemainingFrameSize that will tell how many bytes you need to read before the frame is complete. You need to update that to the Wirepas example when you communicate with the meter. This is updated for the Wirepas example later.
Hi,
Hi,
Do you have set the compiler and can you run any Wirepas example on your board?
If you can run the Wirepas example you need to modify the DLMS example for your needs and compile it.
BR;
Mikko
Hi Mikko,
Hi Mikko,
Thanks for the update.
Sorry for the late reply. I was busy with some other task.
I have integrated GuruxData collector code with wirepas-stack. When i try to compile i'm getting below error.
source/GuruxDLMSDataCollector/app.c: In function 'dataReceivedCb':
source/GuruxDLMSDataCollector/app.c:895:13: error: too few arguments to function 'com_method'
if ((ret = com_method(DLMS_OBJECT_TYPE_DISCONNECT_CONTROL, ln, data->bytes[0])) != 0)
^
source/GuruxDLMSDataCollector/app.c:428:5: note: declared here
int com_method(
^
cc1: all warnings being treated as errors
com_method function need's 4 arguments , but we are passing only 3 arguments. Can you please tell what value i have to pass as 4th argument here.
Best Regards
khaleel
Hi,
Hi,
Use this:
dlmsVARIANT param;
var_init(¶m);
unsigned char ln[6] = { 0, 0, 96, 3, 10, 255 };
if ((ret = com_method(DLMS_OBJECT_TYPE_DISCONNECT_CONTROL, ln, data->bytes[0], ¶m)) != 0)
{
static char* READ_FAILED = "Action failed";
SendToSink(false, (unsigned char*)READ_FAILED, 13);
}
var_clear(¶m);
It's updated for the Github today.
BR,
Mikko
BR,
Mikko
Hi
Hi
Thanks for the modification.
Best Regards
khaleel
Hi Mikko,
Hi Mikko,
1) I can able to read clock object from Gurux simple server, But i'm getting compressed data as you can see in the below log, Nic compressing the data. Can you please tell me how to uncompress the data to see the actual clock and time.
log from sink :
RX from 1:sink1 => b'Start read!'
RX from 1:sink1 => b'\x07\xe6\n\x0b\x02\x044\x0b\x00\x00\x00\x00'
RX from 1:sink1 => b'\xc4 \x14w\x00\x00\x00\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00u\x01\x00\x00\x00\x00\x01\x00\x00\x01\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02'
RX from 1:sink1 => b'\xec\xfc\xd5\x00\x07\x01\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
RX from 1:sink1 => b'\x01\x00\x06\xff-\x01\x00\x00\x00\xff\xe0\x00\xff\x03\xff\x00\x00\x00'
2) The above experiment has been done with out authentication, needs to test with authentication. Can you please tell me the commands to test Gurux's server(GuruxDLMSSimpleServer1) and client(GuruxDLMSClientExample) with authentication.
Best Regards
khalel
Hi Khalel,
Hi Khalel,
I don't know if is this compressed data. It looks more like you have printed an empty buffer. This is not a DLMS frame and you need to check that first. The data should start and end with 0x7E.
BR,
Mikko
Hi Mikko,
Hi Mikko,
I will check on why data is not coming to sink from wirepas node.
Can you please tell me the password for high Authentication mode. Server as GuruxDLMSSimpleServer1 and Gurux collector as client.
tried with D0D1D2D3D4D5D6D7D8D9DADBDCDDDEDF in hex but saying can't authenticate with this password
Best Regards
Khaleel
Hi,
Hi,
The default high-level authentication password is "Gurux".
BR,
Mikko
Hi Mikko,
Hi Mikko,
Thanks for the password.
When i try to establish a communication between Actual Energy meter and Gurux dlms Director, it gets success below are the packet logs.
07:10:51 Send AARQ request.
TX: 00 01 00 30 00 01 00 5F 60 5D A1 09 06 07 60 85 74 05 08 01 03 A6 0A 04 08 71 77 65 72 74 79 75 69 8A 02 07 80 8B 07 60 85 74 05 08 02 02 AC 12 80 10 49 34 53 3B 2A 25 36 30 1E 27 58 42 74 08 60 2D BE 23 04 21 21 1F 30 00 00 00 05 35 5D B2 59 6B 8A 57 B8 FD 16 19 7B 23 03 F8 FA 38 07 26 C2 BA 65 53 7B EC D6
07:10:51
RX: 00 01 00 01 00 30 00 6B 61 69 A1 09 06 07 60 85 74 05 08 01 03 A2 03 02 01 00 A3 05 A1 03 02 01 0E A4 0A 04 08 71 77 65 30 30 30 30 31 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 23 04 21 28 1F 30 00 00 00 04 0D 81 09 AB 6F 78 C4 4F 1B 9A 4F 74 39 32 FC BD 52 DB 5E 54 72 6B E7 F3 2C 44
07:10:51 Authenticating.
TX: 00 01 00 30 00 01 00 32 CB 30 30 00 00 00 06 29 B3 9E DD 6A 2A 04 A0 04 15 9E 3D 90 38 EA 92 3B 7F 9F C9 1C 2F 7F E1 87 08 D0 7F 40 15 50 76 18 DD BB 03 18 95 98 F3 E6 94 FE
07:10:51
RX: 00 01 00 01 00 30 00 2B CF 29 30 00 00 00 05 04 5A 79 44 F3 F1 37 01 B8 4D 06 66 29 ED C3 11 1D E0 86 95 F1 B5 C3 61 90 06 97 7C AA B2 0D 7B 91 39 54 DE
Interface type : Wrapper
The above logs doesn't have '7E' delimiters, how can i predict the start and stop byte or end of packet in NIC data collector for above packets.
Best Regards
khaleel
Hi,
Hi,
Because your meter is using WRAPPER framing and it doesn't use 0x7E chars at the beginning or end of the frame. There are no start or stop bytes at all in WRAPPER.
Get the latest version from the Github. There is cl_getRemainingFrameSize that will tell how many bytes you need to read before the frame is complete. You need to update that to the Wirepas example when you communicate with the meter. This is updated for the Wirepas example later.
BR,
Mikko