hi, some meters when reading load profile from them, issue "RNR" packets that means they are busy,
In this cases gurux immediately send disconnect packet.
can we force gurux to wait at least a few milliseconds and then send "RR" packet , then if meter is not ready, it disconnects connection?
I have also notest that there are a few meters manufacturer are is using RNR to indicate that data is not available. I understand the reason, but this is a bad way to handle this because RNR is available only in HDLC framing and this is causing problems when communicating Over The Air. It would be better to return temporary-failure in data-access-result or action-result.
This can be handled by checking the error value. If it's ErrorCode.ReceiveNotReady then wait how long you want to and send RR. I have to warn you that this is not defined in the DLMS standard and some meters might expect that you need to resend the last command again.
Hi,
Hi,
I have also notest that there are a few meters manufacturer are is using RNR to indicate that data is not available. I understand the reason, but this is a bad way to handle this because RNR is available only in HDLC framing and this is causing problems when communicating Over The Air. It would be better to return temporary-failure in data-access-result or action-result.
This can be handled by checking the error value. If it's ErrorCode.ReceiveNotReady then wait how long you want to and send RR. I have to warn you that this is not defined in the DLMS standard and some meters might expect that you need to resend the last command again.
BR,
Mikko
thank you very much. I'll
thank you very much. I'll Implement mentioned code and check the result.
sorry to bother you again ,
sorry to bother you again , should I use CustomFrameRequest to create RR packet ?
Hi,
Hi,
No. You need to call client's ReceivedReady method with RequestTypes.Frame parameter.
BR,
Mikko
Thank you very much
Thank you very much
I send RR packet with client
I send RR packet with client's ReceivedReady method with RequestTypes.Frame parameter.
but it returned UnacceptableFrame . do you have any idea ?
7EA01F02230393A2F081801205017506017407040000000108040000000188997E
7EA01F03022373C37181801205017406017507040000000108040000000135127E
7EA04502230310FB7FE6E6006036A1090607608574050801018A0207808B0760857405080201AC0A80083132333435363738BE10040E01000000065F1F0400FFFFFFFFFFAD1A7E 7EA038030223301151E6E7006129A109060760857405080101A203020100A305A103020100BE10040E0800065F1F0400603E9D04C8000708C17E 7EA061022303326A30E6E600C003C10800080000010000FF020000080000010000FF030000080000010000FF040000080000010000FF050000080000010000FF060000080000010000FF070000080000010000FF080000080000010000FF09000D2A7E 7EA04E030223526E3FE6E700C403C10800090C07E5021B06091B2300FF2E000010FF2E00110000090CFFFF0315FF020000008000FF00090CFFFF0915FF020000008000FF000F3C000300001601C06E7E
7EA01A022303544564E6E600C001C100070100638500FF0300C9377E 7EA87E03022374D38EE6E700C401C1000110020412000809060000010000FF0F02120000020412000109060000600A0AFF0F02120000020412000309060100201900FF0F02120000020412000309060100341900FF0F02120000020412000309060100481900FF0F021200000204120003090601001F1900FF0F0212009B1F7E
7EA0080223037122B07E 7EA87E03022376C1AD00020412000309060100331900FF0F02120000020412000309060100471900FF0F02120000020412000309060100211900FF0F02120000020412000309060100351900FF0F02120000020412000309060100491900FF0F021200000204120003090601000D1900FF0F021200000204120003090652457E
7EA008022303912C577E 7EA04B0302237862970100011900FF0F02120000020412000309060100021900FF0F02120000020412000309060100031900FF0F02120000020412000309060100041900FF0F0212000055EF7E 7EA04D022303B6E7E5E6E600C001C100070100638500FF0201010204020412000809060000010000FF0F02120000090C07E50216FF000000FFFF2E00090C07E50217FF000000FFFF2E000100830F7E7EA0080302239567777E7EA008022303D128157E
7EA0080302239775547E
hi, I changed RequestTypes
hi, I changed RequestTypes.Frame to RequestTypes.None and meter responded correctly
Hi,
Hi,
Thanks for letting me know this.
BR,
Mikko