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. Protocol Question

Protocol question

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 patm , 9 September, 2020
Forums
Gurux.Serial

I'm a real newbie with Serial port communication.
The documentation have for the serial device says I must send this:
1.1.1 Get Status
Get Status Command Format
Byte(s) Value
0-1 0x8001
Response: Immediately after receipt of this command the IDEC will transmit the Status report
message described in the previous IDEC responses section.

This is what I did:
cl.PortName = Gurux.Serial.GXSerial.GetPortNames()[1];
cl.BaudRate = 115200;
cl.DataBits = 8;
cl.Parity = System.IO.Ports.Parity.Space;
cl.StopBits = System.IO.Ports.StopBits.One;
cl.Open();
cl.OnReceived += new ReceivedEventHandler(this.OnReceived);
cl.Send("0x8001");

But I'm not receiving any response, I can see the light on the device flashing when I send my command, but I'm just not sending this properly and I have no clue how to do this.

I need help to understand what I need to do.

Profile picture for user Kurumi

Kurumi

6 years ago

Hi,

Hi,

You are sending 0x8001 as a string. Try with this:
cl.Send(new byte[]{ 0x80, 0x01);

You can also send data synchronous like this:

lock (cl.Synchronous)
{
Gurux.Common.ReceiveParameters<byte[]> p = new Gurux.Common.ReceiveParameters<byte[]>()
{
WaitTime = 2000,
Count = 1
};
cl.Send(GXCommon.HexToBytes(SendText.Text));
if (cl.Receive(p))
{
System.Diagnostic.Debug.WriteLine(GXCommon.ToHex(p.Reply, true));
}
}

BR,
Mikko

patm

6 years ago

This was very help full thank

This was very help full thank you. But it didn't work.
I can see the light flashing on the device when I send the command but I'm not receiving a response. I tried to do it Async and Synchronous both didn't work.
Is this something you could help me with?
I could provide you the protocol specification, and pay for your service.
I think we just need someone to make at least one command to work and we can implement all the other commands.

Profile picture for user Kurumi

Kurumi

6 years ago

Hi,

Hi,

I don't know what byte order meter is using. Try to change this:
cl.Send(new byte[]{ 0x80, 0x01);
to this:
cl.Send(new byte[]{ 0x01, 0x80);

You can contact me by email. I can check the spec and see if we can help on this.

BR,
Mikko

  • Create new account
  • Reset your password

Hire Us!

Latest Releases

  • Wed, 08/26/2026 - 09:04
    Gurux.DLMS.Python 1.0.203
  • Mon, 08/17/2026 - 11:28
    Gurux.DLMS.Python 1.0.202
  • Mon, 08/17/2026 - 09:47
    gurux.dlms.cpp 9.0.2608.1701
  • Mon, 08/17/2026 - 09:25
    gurux.dlms.c 9.0.2608.1701
  • Mon, 07/27/2026 - 12:37
    gurux.dlms.cpp 9.0.2607.2701

New forum topics

  • Security vulnerability report — request for a private contact (GuruxDLMS.c / ANSI C)
  • Topic: Insufficient Memory Error When Reading Class 7 Profile Generic Objects
  • SN ReadResponse returns all-null values when response spans multiple HDLC frames
  • Gurux.Serial.Android 3.0.6 – CH340 (HL-340) USB-Serial Adapter Not Working,
  • Trying to talk to a L&G E360 meter (Using Python Gurux)
More

Who's new

  • Anaglyfos Trading CC
  • cyby
  • Metin Onan
  • ssv007
  • 3nzol3dur
RSS feed
Privacy FAQ GXDN Issues Contact
Follow Gurux on Twitter Follow Gurux on Linkedin