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