Skip to content

Commit

Permalink
refactor: rework and align naming of various API parameters
Browse files Browse the repository at this point in the history
BREAKING CHANGE: `objId` renamed to `objectId`
BREAKING CHANGE: `objName` renamed to `objectName`
BREAKING CHANGE: `propertyIdentifier` renamed to `propertyId`
BREAKING CHANGE: `propertyArrayIndex` renamed to `index`
BREAKING CHANGE: `valueList` renamed to `values`
BREAKING CHANGE: `objectIdentifier` renamed to `objectId`
BREAKING CHANGE: `propertyReferences` renamed to `properties`
BREAKING CHANGE: `Recipient.net` renamed to `recipient.network`
BREAKING CHANGE: `Recipient.adr` renamed to `recipient.address`
BREAKING CHANGE: `subscriptionProcessId` renamed to `subscriptionProcessIdentifier`
BREAKING CHANGE: `objectIdentifier` renamed to `objectId`
BREAKING CHANGE: drop of `len` parameter for properties
  • Loading branch information
fh1ch committed Dec 20, 2017
1 parent 8754438 commit 2de1a99
Show file tree
Hide file tree
Showing 12 changed files with 620 additions and 615 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,8 +80,8 @@ client.whoIs();

// Read Device Object
var requestArray = [{
objectIdentifier: {type: 8, instance: 4194303},
propertyReferences: [{propertyIdentifier: 8}]
objectId: {type: 8, instance: 4194303},
properties: [{id: 8}]
}];
client.readPropertyMultiple('192.168.1.43', requestArray, function(err, value) {
console.log('value: ', value);
Expand Down
98 changes: 49 additions & 49 deletions lib/bacnet-asn1.js
Original file line number Diff line number Diff line change
Expand Up @@ -387,12 +387,12 @@ var encodeClosingTag = module.exports.encodeClosingTag = function(buffer, tagNum
};

var encodeReadAccessSpecification = module.exports.encodeReadAccessSpecification = function(buffer, value) {
encodeContextObjectId(buffer, 0, value.objectIdentifier.type, value.objectIdentifier.instance);
encodeContextObjectId(buffer, 0, value.objectId.type, value.objectId.instance);
encodeOpeningTag(buffer, 1);
value.propertyReferences.forEach(function(p) {
encodeContextEnumerated(buffer, 0, p.propertyIdentifier);
if (p.propertyArrayIndex && p.propertyArrayIndex !== BACNET_ARRAY_ALL) {
encodeContextUnsigned(buffer, 1, p.propertyArrayIndex);
value.properties.forEach(function(p) {
encodeContextEnumerated(buffer, 0, p.id);
if (p.index && p.index !== BACNET_ARRAY_ALL) {
encodeContextUnsigned(buffer, 1, p.index);
}
});
encodeClosingTag(buffer, 1);
Expand All @@ -408,27 +408,27 @@ var encodeCovSubscription = function(buffer, value) {
encodeOpeningTag(buffer, 0);
encodeOpeningTag(buffer, 0);
encodeOpeningTag(buffer, 1);
encodeApplicationUnsigned(buffer, value.Recipient.net);
if (value.Recipient.net === 0xFFFF) {
encodeApplicationUnsigned(buffer, value.recipient.network);
if (value.recipient.network === 0xFFFF) {
encodeApplicationOctetString(buffer, 0, 0, 0);
} else {
encodeApplicationOctetString(buffer, value.Recipient.adr, 0, value.Recipient.adr.length);
encodeApplicationOctetString(buffer, value.recipient.address, 0, value.recipient.address.length);
}
encodeClosingTag(buffer, 1);
encodeClosingTag(buffer, 0);
encodeContextUnsigned(buffer, 1, value.subscriptionProcessIdentifier);
encodeContextUnsigned(buffer, 1, value.subscriptionProcessId);
encodeClosingTag(buffer, 0);
encodeOpeningTag(buffer, 1);
encodeContextObjectId(buffer, 0, value.monitoredObjectIdentifier.type, value.monitoredObjectIdentifier.instance);
encodeContextEnumerated(buffer, 1, value.monitoredProperty.propertyIdentifier);
if (value.monitoredProperty.propertyArrayIndex !== BACNET_ARRAY_ALL) {
encodeContextUnsigned(buffer, 2, value.monitoredProperty.propertyArrayIndex);
encodeContextObjectId(buffer, 0, value.monitoredObjectId.type, value.monitoredObjectId.instance);
encodeContextEnumerated(buffer, 1, value.monitoredProperty.id);
if (value.monitoredProperty.index !== BACNET_ARRAY_ALL) {
encodeContextUnsigned(buffer, 2, value.monitoredProperty.index);
}
encodeClosingTag(buffer, 1);
encodeContextBoolean(buffer, 2, value.IssueConfirmedNotifications);
encodeContextUnsigned(buffer, 3, value.TimeRemaining);
if (value.COVIncrement > 0) {
encodeContextReal(buffer, 4, value.COVIncrement);
encodeContextBoolean(buffer, 2, value.issueConfirmedNotifications);
encodeContextUnsigned(buffer, 3, value.timeRemaining);
if (value.covIncrement > 0) {
encodeContextReal(buffer, 4, value.covIncrement);
}
};

Expand Down Expand Up @@ -497,8 +497,8 @@ var bacappEncodeApplicationData = module.exports.bacappEncodeApplicationData = f
};

var bacappEncodeDeviceObjPropertyRef = function(buffer, value) {
encodeContextObjectId(buffer, 0, value.objectIdentifier.type, value.objectIdentifier.instance);
encodeContextEnumerated(buffer, 1, value.propertyIdentifier);
encodeContextObjectId(buffer, 0, value.objectId.type, value.objectId.instance);
encodeContextEnumerated(buffer, 1, value.id);
if (value.arrayIndex !== BACNET_ARRAY_ALL) {
encodeContextUnsigned(buffer, 2, value.arrayIndex);
}
Expand Down Expand Up @@ -703,12 +703,12 @@ var bacappDecodeApplicationData = module.exports.bacappDecodeApplicationData = f
};

var encodeReadAccessResult = module.exports.encodeReadAccessResult = function(buffer, value) {
encodeContextObjectId(buffer, 0, value.objectIdentifier.type, value.objectIdentifier.instance);
encodeContextObjectId(buffer, 0, value.objectId.type, value.objectId.instance);
encodeOpeningTag(buffer, 1);
value.values.forEach(function(item) {
encodeContextEnumerated(buffer, 2, item.property.propertyIdentifier);
if (item.property.propertyArrayIndex !== BACNET_ARRAY_ALL) {
encodeContextUnsigned(buffer, 3, item.property.propertyArrayIndex);
encodeContextEnumerated(buffer, 2, item.property.id);
if (item.property.index !== BACNET_ARRAY_ALL) {
encodeContextUnsigned(buffer, 3, item.property.index);
}
if (item.value && item.value[0] && item.value[0].value && item.value[0].value.type === 'BacnetError') {
encodeOpeningTag(buffer, 5);
Expand All @@ -732,15 +732,15 @@ var decodeReadAccessResult = module.exports.decodeReadAccessResult = function(bu
if (!decodeIsContextTag(buffer, offset + len, 0)) return;
len++;
var result = decodeObjectId(buffer, offset + len);
value.objectIdentifier = {
value.objectId = {
type: result.objectType,
instance: result.instance
};
len += result.len;
if (!decodeIsOpeningTagNumber(buffer, offset + len, 1)) return -1;
len++;

var valueList = [];
var values = [];
while ((apduLen - len) > 0) {
var newEntry = {};
if (decodeIsClosingTagNumber(buffer, offset + len, 1)) {
Expand All @@ -751,24 +751,24 @@ var decodeReadAccessResult = module.exports.decodeReadAccessResult = function(bu
len += result.len;
if (result.tagNumber !== 2) return;
result = decodeEnumerated(buffer, offset + len, result.value);
newEntry.propertyIdentifier = result.value;
newEntry.id = result.value;
len += result.len;

result = decodeTagNumberAndValue(buffer, offset + len);
if (result.tagNumber === 3) {
len += result.len;
result = decodeUnsigned(buffer, offset + len, result.value);
newEntry.propertyArrayIndex = result.value;
newEntry.index = result.value;
len += result.len;
} else {
newEntry.propertyArrayIndex = BACNET_ARRAY_ALL;
newEntry.index = BACNET_ARRAY_ALL;
}
result = decodeTagNumberAndValue(buffer, offset + len);
len += result.len;
if (result.tagNumber === 4) {
var localValues = [];
while ((len + offset) <= buffer.length && !decodeIsClosingTagNumber(buffer, offset + len, 4)) {
var localResult = bacappDecodeApplicationData(buffer, offset + len, apduLen + offset - 1, value.objectIdentifier.type, newEntry.propertyIdentifier);
var localResult = bacappDecodeApplicationData(buffer, offset + len, apduLen + offset - 1, value.objectId.type, newEntry.id);
if (!localResult) return;
len += localResult.len;
var resObj = {
Expand Down Expand Up @@ -810,9 +810,9 @@ var decodeReadAccessResult = module.exports.decodeReadAccessResult = function(bu
value: err
};
}
valueList.push(newEntry);
values.push(newEntry);
}
value.values = valueList;
value.values = values;
return {
len: len,
value: value
Expand Down Expand Up @@ -1229,13 +1229,13 @@ var decodeDeviceObjPropertyRef = function(buffer, offset) {
var arrayIndex = BACNET_ARRAY_ALL;
if (!decodeIsContextTag(buffer, offset + len, 0)) return;
len++;
var objectIdentifier = decodeObjectId(buffer, offset + len);
len += objectIdentifier.len;
var objectId = decodeObjectId(buffer, offset + len);
len += objectId.len;
var result = decodeTagNumberAndValue(buffer, offset + len);
len += result.len;
if (result.tagNumber !== 1) return;
var propertyIdentifier = decodeEnumerated(buffer, offset + len, result.value);
len += propertyIdentifier.len;
var id = decodeEnumerated(buffer, offset + len, result.value);
len += id.len;
result = decodeTagNumberAndValue(buffer, offset + len);
if (result.tagNumber === 2) {
len += result.len;
Expand All @@ -1245,15 +1245,15 @@ var decodeDeviceObjPropertyRef = function(buffer, offset) {
if (decodeIsContextTag(buffer, offset + len, 3)) {
if (!isClosingTag(buffer[offset + len])) {
len++;
objectIdentifier = decodeObjectId(buffer, offset + len);
len += objectIdentifier.len;
objectId = decodeObjectId(buffer, offset + len);
len += objectId.len;
}
}
return {
len: len,
value: {
objectIdentifier: objectIdentifier,
propertyIdentifier: propertyIdentifier
objectId: objectId,
id: id
}
};
};
Expand All @@ -1264,7 +1264,7 @@ var decodeReadAccessSpecification = module.exports.decodeReadAccessSpecification
if (!decodeIsContextTag(buffer, offset + len, 0)) return;
len++;
var decodedValue = decodeObjectId(buffer, offset + len);
value.objectIdentifier = {
value.objectId = {
type: decodedValue.objectType,
instance: decodedValue.instance
};
Expand All @@ -1280,24 +1280,24 @@ var decodeReadAccessSpecification = module.exports.decodeReadAccessSpecification
if (result.tagNumber !== 0) return;
if ((len + result.value) >= apduLen) return;
decodedValue = decodeEnumerated(buffer, offset + len, result.value);
propertyRef.propertyIdentifier = decodedValue.value;
propertyRef.id = decodedValue.value;
len += decodedValue.len;
propertyRef.propertyArrayIndex = BACNET_ARRAY_ALL;
propertyRef.index = BACNET_ARRAY_ALL;
if (isContextSpecific(buffer[offset + len]) && !isClosingTag(buffer[offset + len])) {
var tmp = decodeTagNumberAndValue(buffer, offset + len);
if (tmp.tagNumber === 1) {
len += tmp.len;
if ((len + tmp.value) >= apduLen) return;
decodedValue = decodeUnsigned(buffer, offset + len, tmp.value);
propertyRef.propertyArrayIndex = decodedValue.value;
propertyRef.index = decodedValue.value;
len += decodedValue.len;
}
}
propertyIdAndArrayIndex.push(propertyRef);
}
if (!decodeIsClosingTagNumber(buffer, offset + len, 1)) return;
len++;
value.propertyReferences = propertyIdAndArrayIndex;
value.properties = propertyIdAndArrayIndex;
return {
len: len,
value: value
Expand Down Expand Up @@ -1337,7 +1337,7 @@ var decodeCovSubscription = function(buffer, offset, apduLen) {
if (result.tagNumber !== 1) return;
decodedValue = decodeUnsigned(buffer, offset + len, result.value);
len += decodedValue.len;
value.subscriptionProcessIdentifier = decodedValue.value;
value.subscriptionProcessId = decodedValue.value;
if (!decodeIsClosingTagNumber(buffer, offset + len, 0)) return;
len++;
if (!decodeIsOpeningTagNumber(buffer, offset + len, 1)) return;
Expand All @@ -1347,7 +1347,7 @@ var decodeCovSubscription = function(buffer, offset, apduLen) {
if (result.tagNumber !== 0) return;
decodedValue = decodeObjectId(buffer, offset + len);
len += decodedValue.len;
value.monitoredObjectIdentifier = {
value.monitoredObjectId = {
type: decodedValue.objectType,
instance: decodedValue.instance
};
Expand All @@ -1357,15 +1357,15 @@ var decodeCovSubscription = function(buffer, offset, apduLen) {
decodedValue = decodeEnumerated(buffer, offset + len, result.value);
len += decodedValue.len;
value.monitoredProperty = {};
value.monitoredProperty.propertyIdentifier = decodedValue.value;
value.monitoredProperty.id = decodedValue.value;
result = decodeTagNumberAndValue(buffer, offset + len);
if (result.tagNumber === 2) {
len += result.len;
decodedValue = decodeUnsigned(buffer, offset + len, result.value);
len += decodedValue.len;
value.monitoredProperty.propertyArrayIndex = decodedValue.value;
value.monitoredProperty.index = decodedValue.value;
} else {
value.monitoredProperty.propertyArrayIndex = BACNET_ARRAY_ALL;
value.monitoredProperty.index = BACNET_ARRAY_ALL;
}
if (!decodeIsClosingTagNumber(buffer, offset + len, 1)) return;
len++;
Expand Down
Loading

0 comments on commit 2de1a99

Please sign in to comment.