|
1 | | -/** |
2 | | - * For old version |
3 | | - */ |
4 | 1 | +(function (factory) { |
5 | 2 | if (typeof exports === 'undefined') { |
6 | 3 | factory(webduino || {}); |
|
12 | 9 |
|
13 | 10 | var Module = scope.Module, |
14 | 11 | BoardEvent = scope.BoardEvent; |
| 12 | + var self; |
15 | 13 | var proto; |
16 | 14 | var sendLen = 32; |
17 | 15 | var lastSendIR = false; |
|
27 | 25 | Module.call(this); |
28 | 26 | this._board = board; |
29 | 27 | this.pinSendIR = this.pinRecvIR = -1; |
30 | | - // this = this; |
| 28 | + self = this; |
31 | 29 | if (typeof pinMapping === 'object') { |
32 | 30 | if (pinMapping['send']) { |
33 | 31 | this.pinSendIR = pinMapping['send']; |
|
36 | 34 | this.pinRecvIR = pinMapping['recv']; |
37 | 35 | } |
38 | 36 | } |
39 | | - onMessage(this); |
| 37 | + onMessage(); |
40 | 38 | } |
41 | 39 |
|
42 | | - function onMessage(self) { |
| 40 | + function onMessage() { |
43 | 41 | self._board.on(webduino.BoardEvent.SYSEX_MESSAGE, function (event) { |
44 | 42 | var m = event.message; |
45 | 43 | //send IR data to Board |
|
63 | 61 | var strInfo = ''; |
64 | 62 | for (var i = 3; i < m.length; i++) { |
65 | 63 | strInfo += String.fromCharCode(m[i]); |
66 | | - } |
67 | | - self.irData = strInfo; |
| 64 | + } |
| 65 | + self.irData = strInfo.substring(4); |
68 | 66 | self.irRecvCallback(self.irData); |
69 | 67 | } else { |
70 | 68 | log(event); |
|
73 | 71 | } |
74 | 72 |
|
75 | 73 |
|
76 | | - function send(startPos, data, self) { |
| 74 | + function send(startPos, data) { |
77 | 75 | var CMD = [0xf0, 0x04, 0x09, 0x0A]; |
78 | 76 | var raw = []; |
79 | 77 | raw = raw.concat(CMD); |
|
90 | 88 | raw.push(data.charCodeAt(i)); |
91 | 89 | } |
92 | 90 | raw.push(0xf7); |
93 | | - // console.log(raw); |
94 | 91 | self._board.send(raw); |
95 | 92 | } |
96 | 93 |
|
97 | | - function sendIRCmd(cmd, len, self) { |
| 94 | + function sendIRCmd(cmd, len) { |
98 | 95 | for (var i = 0; i < cmd.length; i = i + len) { |
99 | 96 | var data = cmd.substring(i, i + len); |
100 | | - send(i / 4, data, self); |
| 97 | + send(i / 8, data); |
101 | 98 | } |
102 | 99 | lastSendIR = true; |
103 | 100 | } |
|
109 | 106 | }); |
110 | 107 |
|
111 | 108 | proto.receive = function (callback) { |
112 | | - console.log("receive:" + this.pinRecvIR); |
113 | | - this.irRecvCallback = callback; |
114 | | - if (this.pinRecvIR > 0) { |
115 | | - // this._board.send([0xF0, 0x04, 0x09, 0x0D, this.pinRecvIR, 0xF7]); |
116 | | - this._board.send([0xF0, 0x04, 0x0A, 0x00, 0x02, 0xF7]); |
| 109 | + self.irRecvCallback = callback; |
| 110 | + if (self.pinRecvIR > 0) { |
| 111 | + self._board.send([0xF0, 0x04, 0x09, 0x0D, self.pinRecvIR, 0xF7]); |
117 | 112 | log("wait for receiving..."); |
118 | 113 | } |
119 | 114 | }; |
120 | 115 |
|
121 | 116 | proto.send = function (data, callback) { |
122 | | - console.log("send:" + this.pinSendIR); |
123 | | - if (this.pinSendIR > 0) { |
124 | | - sendIRCmd(data, sendLen, this); |
125 | | - this.irSendCallback = callback; |
| 117 | + if (self.pinSendIR > 0) { |
| 118 | + sendIRCmd(data, sendLen); |
| 119 | + self.irSendCallback = callback; |
126 | 120 | } |
127 | 121 | } |
128 | 122 |
|
129 | 123 | proto.debug = function (val) { |
130 | 124 | if (typeof val == 'boolean') { |
131 | | - this.isDebug = val; |
| 125 | + self.isDebug = val; |
132 | 126 | } |
133 | 127 | } |
134 | 128 |
|
|
0 commit comments