Comparing version 0.2.3 to 0.2.4
{ | ||
"name": "knx.js", | ||
"version": "0.2.3", | ||
"version": "0.2.4", | ||
"private": false, | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -18,4 +18,4 @@ /** | ||
/*byte*/ this.message_code = options.message_code; | ||
/*int*/ this.aditional_info_length = options.aditional_info_length; | ||
/*byte[]*/ this.aditional_info = options.aditional_info; | ||
/*int*/ this.additional_info_length = options.additional_info_length; | ||
/*byte[]*/ this.additional_info = options.additional_info; | ||
/*byte*/ this.control_field_1 = options.control_field_1; | ||
@@ -22,0 +22,0 @@ /*byte*/ this.control_field_2 = options.control_field_2; |
@@ -197,4 +197,4 @@ /** | ||
KnxHelper.KnxDestinationAddressType = | ||
{ | ||
KnxDestinationAddressType = KnxHelper.KnxDestinationAddressType = { | ||
INDIVIDUAL: 0, | ||
@@ -204,3 +204,3 @@ GROUP: 1 | ||
KnxHelper.KnxDestinationAddressType.GetKnxDestinationAddressType = function (control_field_2) { | ||
KnxHelper.GetKnxDestinationAddressType = function (control_field_2) { | ||
return (0x80 & control_field_2) != 0 | ||
@@ -249,12 +249,13 @@ ? KnxDestinationAddressType.GROUP | ||
case 0: | ||
return string.Empty; | ||
return ''; | ||
case 1: | ||
return Convert.ToChar(0x3F & apdu[1]).toString(); | ||
//TODO: originally, here is utf code to char convert (String.fromCharCode). | ||
return parseInt(0x3F & apdu[1], 10).toString(); | ||
case 2: | ||
return Convert.ToChar(apdu[2]).toString(); | ||
//TODO: originally, here is utf code to char convert (String.fromCharCode). | ||
return parseInt(apdu[2]).toString(); | ||
default: | ||
var data = string.Empty; | ||
for (var i = 2; i < apdu.length; i++) | ||
data += Convert.ToChar(apdu[i]); | ||
var data = new Buffer(apdu.length); | ||
//TODO: originally, here is utf code to char convert (String.fromCharCode). | ||
apdu[i].copy(data); | ||
return data; | ||
@@ -261,0 +262,0 @@ } |
@@ -69,30 +69,32 @@ /** | ||
datagram.message_code = cemi[0]; | ||
datagram.aditional_info_length = cemi[1]; | ||
datagram.additional_info_length = cemi[1]; | ||
if (datagram.aditional_info_length > 0) { | ||
datagram.aditional_info = new Buffer(datagram.aditional_info_length); | ||
for (var i = 0; i < datagram.aditional_info_length; i++) { | ||
datagram.aditional_info[i] = cemi[2 + i]; | ||
if (datagram.additional_info_length > 0) { | ||
datagram.additional_info = new Buffer(datagram.additional_info_length); | ||
for (var i = 0; i < datagram.additional_info_length; i++) { | ||
datagram.additional_info[i] = cemi[2 + i]; | ||
} | ||
} | ||
datagram.control_field_1 = cemi[2 + datagram.aditional_info_length]; | ||
datagram.control_field_2 = cemi[3 + datagram.aditional_info_length]; | ||
datagram.control_field_1 = cemi[2 + datagram.additional_info_length]; | ||
datagram.control_field_2 = cemi[3 + datagram.additional_info_length]; | ||
var buf = new Buffer(2); | ||
buf[0] = cemi[4 + datagram.aditional_info_length]; | ||
buf[1] = cemi[5 + datagram.aditional_info_length]; | ||
buf[0] = cemi[4 + datagram.additional_info_length]; | ||
buf[1] = cemi[5 + datagram.additional_info_length]; | ||
datagram.source_address = KnxHelper.GetIndividualAddress(buf); | ||
buf = new Buffer(2); | ||
buf[0] = cemi[6 + datagram.aditional_info_length]; | ||
buf[1] = cemi[7 + datagram.aditional_info_length]; | ||
buf[0] = cemi[6 + datagram.additional_info_length]; | ||
buf[1] = cemi[7 + datagram.additional_info_length]; | ||
datagram.destination_address = | ||
KnxHelper.GetKnxDestinationAddressType(datagram.control_field_2).Equals(KnxHelper.KnxDestinationAddressType.INDIVIDUAL) ? KnxHelper.GetIndividualAddress(buf) : KnxHelper.GetGroupAddress(buf, this.connection.ThreeLevelGroupAddressing); | ||
(KnxHelper.GetKnxDestinationAddressType(datagram.control_field_2) === KnxHelper.KnxDestinationAddressType.INDIVIDUAL) ? | ||
KnxHelper.GetIndividualAddress(buf) : | ||
KnxHelper.GetGroupAddress(buf, this.connection.ThreeLevelGroupAddressing); | ||
datagram.data_length = cemi[8 + datagram.aditional_info_length]; | ||
datagram.data_length = cemi[8 + datagram.additional_info_length]; | ||
datagram.apdu = new Buffer(datagram.data_length + 1); | ||
for (var i = 0; i < datagram.apdu.Length; i++) | ||
datagram.apdu[i] = cemi[9 + i + datagram.aditional_info_length]; | ||
for (var i = 0; i < datagram.apdu.length; i++) | ||
datagram.apdu[i] = cemi[9 + i + datagram.additional_info_length]; | ||
@@ -103,21 +105,21 @@ datagram.data = KnxHelper.GetData(datagram.data_length, datagram.apdu); | ||
console.log("-----------------------------------------------------------------------------------------------------"); | ||
console.log(BitConverter.ToString(cemi)); | ||
console.log(cemi.toString('hex')); | ||
console.log("Event Header Length: " + datagram.header_length); | ||
console.log("Event Protocol Version: " + datagram.protocol_version.ToString("x")); | ||
console.log("Event Service Type: 0x" + BitConverter.ToString(datagram.service_type).Replace("-", string.Empty)); | ||
console.log("Event Protocol Version: " + datagram.protocol_version); | ||
console.log("Event Service Type: 0x" + datagram.service_type.toString('hex')); | ||
console.log("Event Total Length: " + datagram.total_length); | ||
console.log("Event Message Code: " + datagram.message_code.ToString("x")); | ||
console.log("Event Aditional Info Length: " + datagram.aditional_info_length); | ||
console.log("Event Message Code: " + datagram.message_code); | ||
console.log("Event Aditional Info Length: " + datagram.additional_info_length); | ||
if (datagram.aditional_info_length > 0) | ||
console.log("Event Aditional Info: 0x" + BitConverter.ToString(datagram.aditional_info).Replace("-", string.Empty)); | ||
if (datagram.additional_info_length > 0) | ||
console.log("Event Aditional Info: 0x" + datagram.additional_info.toString('hex')); | ||
console.log("Event Control Field 1: " + Convert.ToString(datagram.control_field_1, 2)); | ||
console.log("Event Control Field 2: " + Convert.ToString(datagram.control_field_2, 2)); | ||
console.log("Event Control Field 1: " + datagram.control_field_1); | ||
console.log("Event Control Field 2: " + datagram.control_field_2); | ||
console.log("Event Source Address: " + datagram.source_address); | ||
console.log("Event Destination Address: " + datagram.destination_address); | ||
console.log("Event Data Length: " + datagram.data_length); | ||
console.log("Event APDU: 0x" + BitConverter.ToString(datagram.apdu).Replace("-", string.Empty)); | ||
console.log("Event Data: " + datagram.data); | ||
console.log("Event APDU: 0x" + datagram.apdu.toString('hex')); | ||
console.log("Event Data: " + datagram.data.toString('hex')); | ||
console.log("-----------------------------------------------------------------------------------------------------"); | ||
@@ -124,0 +126,0 @@ } |
@@ -81,3 +81,3 @@ /** | ||
var process = true; | ||
if (sequenceNumber <= this._rxSequenceNumber) | ||
if (sequenceNumber && this._rxSequenceNumber && sequenceNumber <= this._rxSequenceNumber) | ||
process = false; | ||
@@ -89,4 +89,4 @@ | ||
// TODO: Magic number 10, what is it? | ||
var cemi = new Buffer(datagram.Length - 10); | ||
datagram.copy(cemi, 0, 10, datagram.length - 10); | ||
var cemi = new Buffer(datagram.length - 10); | ||
datagram.copy(cemi, 0, 10, datagram.length); | ||
this.ProcessCEMI(knxDatagram, cemi); | ||
@@ -93,0 +93,0 @@ } |
64746
1307