As per the flow of DLMS, GXByteBuffer contains all data from the different responses especially in Profile Generic data. But, have a query related to that.
I would like to know that which data of the response frame will say that next chunk of data will be there.
There is the sequence number in HDLC frame. There is no answer to that. A sequence number is increased every time when you are sending or receiving the frame.
However, if we read profile generic data in which bigger chunks are expected. In that case also we can use sequence number for the next chunk to be received?
Regards.
Yes. I have to warn that the HDLC frame sequence number looks easy at first sight, but it's hard to implement. I strongly propose that you use our open source libraries.
Yes we are using the open source libs, however we are still in the phase to find the way to get details of frames. Can you please give any idea about profile generic data receiving which are received in multiple blocks? How DLMS knows that how many blocks will be received and when the last block of the data is received?
You need to read DLMS standard documents. There is no easy answer to this. Basic idea is something like this:
Data is spirit to blocks. Each block is split to frames and each frame is sent using a wanted communication channel. How blocks are sent depends on the used command. There are several ways to send data in DLMS.
Thanks Mikko.
However, if I wanted to read profile generic using HDLC then what is the frame calculation for that operation?
Can you please suggest anything to get idea related to this?
Thanks Mikko.
Yes I read it last week. But can you please clear that where can I find Invocation counter and for each frame it is incremented right? If so then for all requests of profile generic read we have same incremented Invocation Counters in Request and Response frames.
The invocation counter is used for secured connections and you don't use them with HDLC. Check "HDLC control fields" from the HDLC spec. I'm sorry, but this is not easy and I can't give you simple instructions on how to do it.
DLMS client sends ACK after reply is received from the meter. Meter sends next part after that.
There can be only one read at the time between the client and the meter.
Hi,
Hi,
There is no easy answer to this.
DLMS part depends on what kind of PDU is used. All possible PDUs are defined in the DLMS standard.
If you are using HDLC, frames are defined here:
https://en.wikipedia.org/wiki/High-Level_Data_Link_Control
BR,
Mikko
Thanks Mikko,
Thanks Mikko,
If we are using HDLC then can we have any idea for the next frame of the data?
Regards.
Hi,
Hi,
There is the sequence number in HDLC frame. There is no answer to that. A sequence number is increased every time when you are sending or receiving the frame.
BR,
Mikko
Noted.
Noted.
However, if we read profile generic data in which bigger chunks are expected. In that case also we can use sequence number for the next chunk to be received?
Regards.
Hi,
Hi,
Yes. I have to warn that the HDLC frame sequence number looks easy at first sight, but it's hard to implement. I strongly propose that you use our open source libraries.
BR,
Mikko
Thanks Mikko.
Thanks Mikko.
Yes we are using the open source libs, however we are still in the phase to find the way to get details of frames. Can you please give any idea about profile generic data receiving which are received in multiple blocks? How DLMS knows that how many blocks will be received and when the last block of the data is received?
Regards.
Hi,
Hi,
You need to read DLMS standard documents. There is no easy answer to this. Basic idea is something like this:
Data is spirit to blocks. Each block is split to frames and each frame is sent using a wanted communication channel. How blocks are sent depends on the used command. There are several ways to send data in DLMS.
BR,
Mikko
Thanks Mikko.
Thanks Mikko.
However, if I wanted to read profile generic using HDLC then what is the frame calculation for that operation?
Can you please suggest anything to get idea related to this?
Regards.
Hi,
Hi,
Frame ID depends on what last client sequence number. It's changing all the time.
You need to read this:
https://en.wikipedia.org/wiki/High-Level_Data_Link_Control
BR,
Mikko
Thanks Mikko.
Thanks Mikko.
Yes I read it last week. But can you please clear that where can I find Invocation counter and for each frame it is incremented right? If so then for all requests of profile generic read we have same incremented Invocation Counters in Request and Response frames.
Regards.
Hi,
Hi,
The invocation counter is used for secured connections and you don't use them with HDLC. Check "HDLC control fields" from the HDLC spec. I'm sorry, but this is not easy and I can't give you simple instructions on how to do it.
BR,
Mikko
Thanks Mikko.
Thanks Mikko.
Got your point. So can I get confirmation that DLMS does merge data as it receives in GXByteBuffer prior to parse?
Thanks
Hi,
Hi,
Yes, it's merged.
BR,
Mikko
Thanks, but if any data is
Thanks, but if any data is skipeed in between then how DLMS handles that?
Reagards.
Hi,
Hi,
DLMS client sends ACK after reply is received from the meter. Meter sends next part after that.
There can be only one read at the time between the client and the meter.
BR,
Mikko
Noted. Thanks & Regards.
Noted.
Thanks & Regards.