rfcontroljs
Advanced tools
Comparing version 0.0.11 to 0.0.12
@@ -110,4 +110,33 @@ var doesProtocolMatch, helper, protocols, sortIndices; | ||
}, | ||
fixPulses: function(pulseLengths, pulses) { | ||
var i, newPulseLength, newPulseLengths, newPulses; | ||
if (pulseLengths.length <= 3) { | ||
return null; | ||
} | ||
i = 1; | ||
while (i < pulseLengths.length) { | ||
if (pulseLengths[i - 1] * 2 < pulseLengths[i]) { | ||
i++; | ||
continue; | ||
} | ||
newPulseLength = Math.floor((pulseLengths[i - 1] + pulseLengths[i]) / 2); | ||
newPulseLengths = pulseLengths.slice(); | ||
newPulseLengths.splice(i - 1, 2, newPulseLength); | ||
break; | ||
} | ||
if (i === pulseLengths.length) { | ||
return null; | ||
} | ||
newPulses = pulses; | ||
while (i < pulseLengths.length) { | ||
newPulses = newPulses.replace(new RegExp("" + i, 'g'), "" + (i - 1)); | ||
i++; | ||
} | ||
return { | ||
pulseLengths: newPulseLengths, | ||
pulses: newPulses | ||
}; | ||
}, | ||
decodePulses: function(pulseLengths, pulses) { | ||
var err, p, results, values, _i, _len; | ||
var err, fixed, p, results, values, _i, _len; | ||
results = []; | ||
@@ -134,3 +163,7 @@ for (_i = 0, _len = protocols.length; _i < _len; _i++) { | ||
} | ||
return results; | ||
fixed = this.fixPulses(pulseLengths, pulses); | ||
if (fixed == null) { | ||
return results; | ||
} | ||
return results.concat(this.decodePulses(fixed.pulseLengths, fixed.pulses)); | ||
}, | ||
@@ -137,0 +170,0 @@ encodeMessage: function(protocolName, message) { |
{ | ||
"name": "rfcontroljs", | ||
"version": "0.0.11", | ||
"version": "0.0.12", | ||
"description": "Protocol support for different 433mhz switches and weather stations for the RFControl Arduino library", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
73343
656