@@ -1297,7 +1297,7 @@ module.exports.decodeEventNotifyData = (buffer, offset) => {
12971297module . exports . encodeReadRangeAcknowledge = ( buffer , objectId , propertyId , arrayIndex , resultFlags , itemCount , applicationData , requestType , firstSequence ) => {
12981298 baAsn1 . encodeContextObjectId ( buffer , 0 , objectId . type , objectId . instance ) ;
12991299 baAsn1 . encodeContextEnumerated ( buffer , 1 , propertyId ) ;
1300- if ( arrayIndex = == baAsn1 . BACNET_ARRAY_ALL ) {
1300+ if ( arrayIndex ! == baAsn1 . BACNET_ARRAY_ALL ) {
13011301 baAsn1 . encodeContextUnsigned ( buffer , 2 , arrayIndex ) ;
13021302 }
13031303 baAsn1 . encodeContextBitstring ( buffer , 3 , resultFlags ) ;
@@ -1317,42 +1317,45 @@ module.exports.decodeReadRangeAcknowledge = (buffer, offset, apduLen) => {
13171317 let len = 0 ;
13181318 let result ;
13191319 let decodedValue ;
1320- let resultFlag ;
13211320 if ( ! baAsn1 . decodeIsContextTag ( buffer , offset + len , 0 ) ) return ;
13221321 len ++ ;
13231322 decodedValue = baAsn1 . decodeObjectId ( buffer , offset + len ) ;
13241323 len += decodedValue . len ;
1325- let objectId = { type : decodedValue . objectType , instance : decodedValue . instance } ;
1326- let property = { } ;
1324+ const objectId = { type : decodedValue . objectType , instance : decodedValue . instance } ;
1325+ const property = { index : baAsn1 . BACNET_ARRAY_ALL } ;
13271326 result = baAsn1 . decodeTagNumberAndValue ( buffer , offset + len ) ;
13281327 len += result . len ;
13291328 if ( result . tagNumber !== 1 ) return ;
13301329 decodedValue = baAsn1 . decodeEnumerated ( buffer , offset + len , result . value ) ;
13311330 len += decodedValue . len ;
13321331 property . id = decodedValue . value ;
13331332 result = baAsn1 . decodeTagNumberAndValue ( buffer , offset + len ) ;
1334- len += result . len ;
13351333 if ( ( result . tagNumber === 2 ) && ( len < apduLen ) ) {
1334+ len += result . len ;
13361335 decodedValue = baAsn1 . decodeUnsigned ( buffer , offset + len , result . value ) ;
13371336 len += decodedValue . len ;
13381337 property . index = decodedValue . value ;
1339- } else {
1340- decodedValue = baAsn1 . decodeBitstring ( buffer , offset + len , 2 ) ;
1341- len += decodedValue . len ;
1342- resultFlag = decodedValue . value ;
13431338 }
13441339 result = baAsn1 . decodeTagNumberAndValue ( buffer , offset + len ) ;
13451340 len += result . len ;
1341+ decodedValue = baAsn1 . decodeBitstring ( buffer , offset + len , result . value ) ;
1342+ len += decodedValue . len ;
1343+ const resultFlag = decodedValue . value ;
1344+ result = baAsn1 . decodeTagNumberAndValue ( buffer , offset + len ) ;
1345+ len += result . len ;
13461346 decodedValue = baAsn1 . decodeUnsigned ( buffer , offset + len , result . value ) ;
13471347 len += decodedValue . len ;
13481348 const itemCount = decodedValue . value ;
13491349 if ( ! ( baAsn1 . decodeIsOpeningTag ( buffer , offset + len ) ) ) return ;
1350- len += 1 ;
1351- const rangeBuffer = buffer . slice ( offset + len , buffer . length - offset - len - 1 ) ;
1350+ len ++ ;
1351+ const rangeBuffer = buffer . slice ( offset + len , apduLen - 3 ) ;
13521352 return {
1353- len : len ,
1353+ objectId : objectId ,
1354+ property : property ,
1355+ resultFlag : resultFlag ,
13541356 itemCount : itemCount ,
1355- rangeBuffer : rangeBuffer
1357+ rangeBuffer : rangeBuffer ,
1358+ len : len ,
13561359 } ;
13571360} ;
13581361
0 commit comments