|
23 | 23 | function IrRaw(board, pinMapping) { |
24 | 24 | Module.call(this); |
25 | 25 | this._board = board; |
| 26 | + this._irInfo = ""; |
26 | 27 | this.pinSendIR = this.pinRecvIR = -1; |
27 | 28 | // this = this; |
28 | 29 | if (typeof pinMapping === 'object') { |
|
40 | 41 | self._board.on(webduino.BoardEvent.SYSEX_MESSAGE, function (event) { |
41 | 42 | var m = event.message; |
42 | 43 | //send IR data to Board |
| 44 | + |
43 | 45 | if (m[0] == 0x04 && m[1] == 0x09 && m[2] == 0x0B) { |
44 | 46 | log("send IR data to Board callback"); |
45 | 47 | if (lastSendIR) { |
|
57 | 59 | //record IR data |
58 | 60 | else if (m[0] == 0x04 && m[1] == 0x09 && m[2] == 0x0D) { |
59 | 61 | log("record IR callback..."); |
60 | | - var strInfo = ''; |
| 62 | + var strData = ""; |
61 | 63 | for (var i = 3; i < m.length; i++) { |
62 | | - strInfo += String.fromCharCode(m[i]); |
| 64 | + strData += String.fromCharCode(m[i]); |
63 | 65 | } |
64 | | - self.irData = strInfo; |
65 | | - self.irRecvCallback(self.irData); |
66 | | - } else { |
| 66 | + self._irInfo += strData; |
| 67 | + |
| 68 | + } |
| 69 | + else if (m[0] == 0x04 && m[1] == 0x09 && m[2] == 0x0E) { |
| 70 | + self.irRecvCallback(self._irInfo); |
| 71 | + self._irInfo = ""; |
| 72 | + } |
| 73 | + else { |
67 | 74 | log(event); |
68 | 75 | } |
69 | 76 | }); |
|
106 | 113 | }); |
107 | 114 |
|
108 | 115 | proto.receive = function (callback) { |
109 | | - console.log("receive:" + this.pinRecvIR); |
110 | 116 | this.irRecvCallback = callback; |
111 | 117 | if (this.pinRecvIR > 0) { |
112 | 118 | // this._board.send([0xF0, 0x04, 0x09, 0x0D, this.pinRecvIR, 0xF7]); |
|
116 | 122 | }; |
117 | 123 |
|
118 | 124 | proto.send = function (data, callback) { |
119 | | - console.log("send:" + this.pinSendIR); |
120 | 125 | if (this.pinSendIR > 0) { |
121 | 126 | sendIRCmd(data, sendLen, this); |
122 | 127 | this.irSendCallback = callback; |
|
0 commit comments