|
7 | 7 | }(function (scope) { |
8 | 8 | 'use strict'; |
9 | 9 |
|
10 | | - var Module = scope.Module; |
11 | | - var proto; |
12 | | - var sendLen = 32; |
13 | | - var self; |
14 | | - var lastSendIR = false; |
| 10 | + let Module = scope.Module; |
| 11 | + let WEBDUINO_COMMAND = 0x04; |
| 12 | + let SENSOR_IRRSEND = 0x09; |
| 13 | + let START_POS = 0x0A; |
| 14 | + let SEND_RAW_DATA = 0x0B; |
| 15 | + let TRIGGER_IR = 0x0C; |
| 16 | + let proto; |
| 17 | + let sendLen = 32; |
| 18 | + let self; |
| 19 | + // let lastSendIR = false; |
15 | 20 |
|
16 | 21 | function IrRawSend(board, pinSendIR) { |
17 | | - console.log("debug IrRawSend"); |
18 | 22 | self = this; |
19 | 23 | Module.call(self); |
20 | 24 | self._board = board; |
21 | 25 | self._pinSendIR = pinSendIR; |
22 | | - |
23 | 26 | onMessage(); |
24 | 27 | } |
25 | 28 |
|
26 | 29 | function onMessage() { |
27 | 30 | self._board.on(webduino.BoardEvent.SYSEX_MESSAGE, function (event) { |
28 | | - var m = event.message; |
| 31 | + let m = event.message; |
29 | 32 |
|
30 | | - if (m[0] == 0x04 && m[1] == 0x09 && m[2] == 0x0B) { |
| 33 | + /*if (m[0] == WEBDUINO_COMMAND && m[1] == SENSOR_IRRSEND && m[2] == 0x0B) { |
31 | 34 | if (lastSendIR) { |
32 | 35 | //store OK |
33 | 36 | lastSendIR = false; |
34 | | - self._board.send([0xf0, 0x04, 0x09, 0x0C, self._pinSendIR, 0xF7]); |
| 37 | + self._board.send([0xf0, WEBDUINO_COMMAND, SENSOR_IRRSEND, 0x0C, self._pinSendIR, 0xF7]); |
35 | 38 | } |
36 | | - } |
37 | | - //trigger IR send |
38 | | - else if (m[0] == 0x04 && m[1] == 0x09 && m[2] == 0x0C) { |
| 39 | + }*/ |
| 40 | + |
| 41 | + if (m[0] == WEBDUINO_COMMAND && m[1] == SENSOR_IRRSEND && m[2] == TRIGGER_IR) { |
39 | 42 | self.irSendCallback(); |
40 | 43 | } |
41 | 44 | }); |
|
44 | 47 |
|
45 | 48 | function send(startPos, data) { |
46 | 49 |
|
47 | | - var CMD = [0xf0, 0x04, 0x09, 0x0A]; |
48 | | - var raw = []; |
| 50 | + let CMD = [0xf0, WEBDUINO_COMMAND, SENSOR_IRRSEND, START_POS]; |
| 51 | + let raw = []; |
49 | 52 | raw = raw.concat(CMD); |
50 | | - var n = '0000' + startPos.toString(16); |
| 53 | + let n = '0000' + startPos.toString(16); |
51 | 54 | n = n.substring(n.length - 4); |
52 | | - for (var i = 0; i < 4; i++) { |
| 55 | + for (let i = 0; i < 4; i++) { |
53 | 56 | raw.push(n.charCodeAt(i)); |
54 | 57 | } |
55 | 58 | raw.push(0xf7); |
56 | | - // send Data // |
57 | | - CMD = [0xf0, 0x04, 0x09, 0x0B]; |
| 59 | + |
| 60 | + // send raw data |
| 61 | + CMD = [0xf0, WEBDUINO_COMMAND, SENSOR_IRRSEND, SEND_RAW_DATA]; |
58 | 62 | raw = raw.concat(CMD); |
59 | 63 | for (i = 0; i < data.length; i++) { |
60 | 64 | raw.push(data.charCodeAt(i)); |
|
64 | 68 | } |
65 | 69 |
|
66 | 70 | function sendIRCmd(cmd, len) { |
67 | | - for (var i = 0; i < cmd.length; i = i + len) { |
68 | | - var data = cmd.substring(i, i + len); |
| 71 | + for (let i = 0; i < cmd.length; i = i + len) { |
| 72 | + let data = cmd.substring(i, i + len); |
69 | 73 | send(i / 4, data); |
70 | 74 | } |
71 | | - lastSendIR = true; |
| 75 | + // lastSendIR = true; |
| 76 | + self._board.send([0xf0, WEBDUINO_COMMAND, SENSOR_IRRSEND, TRIGGER_IR, self._pinSendIR, 0xF7]); |
72 | 77 | } |
73 | 78 |
|
74 | 79 | IrRawSend.prototype = proto = Object.create(Module.prototype, { |
|
77 | 82 | } |
78 | 83 | }); |
79 | 84 |
|
80 | | - proto.send = function (data, callback) { |
| 85 | + proto.send = (data, callback) => { |
81 | 86 | sendIRCmd(data, sendLen); |
82 | 87 | self.irSendCallback = callback; |
83 | 88 | } |
|
0 commit comments