24 lines
891 B
JavaScript
24 lines
891 B
JavaScript
//usage: node irconvert.js <pronto hex>
|
|
//steps from https://stackoverflow.com/a/27323452
|
|
//sourced from https://gist.github.com/XMB5/a877ab620d812260f2da8380aac050d3
|
|
|
|
numbers=process.argv[2].split(' ').map(x=>parseInt(x,16))
|
|
fullSequenceConverted=[]
|
|
|
|
carrierFrequency = 1000000/(numbers[1] * .241246)
|
|
codeLength = numbers[2]
|
|
repeatCodeLength = numbers[3]
|
|
|
|
for(i=4;i<numbers.length;i++) {
|
|
convertedToMicrosec = Math.round(1000000*(numbers[i]/carrierFrequency))
|
|
fullSequenceConverted.push(convertedToMicrosec)
|
|
}
|
|
|
|
sequence1EndPoint = 2 * codeLength
|
|
sequence2EndPoint = sequence1EndPoint + 2 * repeatCodeLength
|
|
|
|
firstSequence = fullSequenceConverted.slice(0, sequence1EndPoint)
|
|
secondSequence = fullSequenceConverted.slice(sequence1EndPoint, sequence2EndPoint)
|
|
|
|
console.log('first: ' + firstSequence.join(', '))
|
|
console.log('second: ' + secondSequence.join(', ')) |