Skip to content

Commit

Permalink
Merge pull request #7 from jachwe/master
Browse files Browse the repository at this point in the history
Changed Server to read unsigned 8Bit int from Buffer to fix faulty normalization
  • Loading branch information
BrianMMcClain committed Feb 10, 2015
2 parents 5d0a1f7 + dda9c7e commit c88416f
Showing 1 changed file with 10 additions and 23 deletions.
33 changes: 10 additions & 23 deletions lib/artnet_server.js
Expand Up @@ -9,32 +9,19 @@ exports.listen = function(port, cb) {

// Set up the socket
var sock = dgram.createSocket("udp4", function (msg, peer) {
var data = new Array();
for (i = 0; i < msg.length; i++) {
var d = msg.toString().charCodeAt(i);
// Since we can't do unsigned 8-bit integers, do some normalization
if (d < 0) {
d = 0;
} else if (d > 255) {
d = 255;
}

// Append the byte to the array
data.push(d);
}

// Deseralize the data - magic numbers are as per the Art-Net protocol
var sequence = data[12];
var physical = data[13];
var universe = (data[14] * 256) + data[15];
var length = (data[16] * 256) + data[17];
var sequence = msg.readUInt8(12,true);
var physical = msg.readUInt8(13,true);
var universe = msg.readUInt8(14,true);
var offset = msg.readUInt8(16,true);
var length = msg.readUInt8(17,true);

var rawData = new Array();
for (i = 0; i < length; i++) {
rawData.push(data[i + 18]);
var rawData = [];

for( i = 18; i < 18 + length; i++ ){
rawData.push( msg.readUInt8(i) );
}

// Build the associative array to return

var retData = {sequence: sequence, physical: physical, universe: universe, length: length, data: rawData};

// And call the callback passing the deseralized data
Expand Down

0 comments on commit c88416f

Please sign in to comment.