Skip to content

Commit 2eb800a

Browse files
committed
libs/hardware/ir.py: Fix the error when importing hardware in XIAO.
Signed-off-by: lbuque <[email protected]>
1 parent 0549d22 commit 2eb800a

File tree

3 files changed

+29
-36
lines changed

3 files changed

+29
-36
lines changed

m5stack/libs/hardware/__init__.py

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,8 @@
33
# SPDX-License-Identifier: MIT
44

55
from machine import *
6-
from .rgb import *
6+
from .rgb import RGB
77
from .button import Button
8-
9-
try:
10-
from .imu import *
11-
except ImportError:
12-
pass
13-
148
from .ir import IR
159
from .rfid import RFID
1610
from .rotary import Rotary

m5stack/libs/hardware/ir.py

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -4,38 +4,38 @@
44

55
from driver.ir.nec import NEC, NEC_8
66
import M5
7-
from machine import Pin
7+
import machine
88

99

1010
class IR:
11-
_pin_map = {
12-
M5.BOARD.M5AtomS3: (None, 4),
13-
M5.BOARD.M5AtomS3Lite: (None, 4),
14-
M5.BOARD.M5AtomS3U: (None, 12),
15-
M5.BOARD.M5Capsule: (None, 4),
16-
M5.BOARD.M5Cardputer: (None, 44),
17-
M5.BOARD.M5StickCPlus: (None, 9),
18-
M5.BOARD.M5StickC: (None, 9),
19-
M5.BOARD.M5StickCPlus2: (None, 19),
20-
M5.BOARD.M5AtomU: (None, 12),
21-
M5.BOARD.M5Atom: (None, 12),
22-
M5.BOARD.M5AtomEcho: (None, 12),
23-
M5.BOARD.M5NanoC6: (None, 3),
24-
}
25-
2611
def __init__(self) -> None:
27-
self._port = self._pin_map.get(M5.getBoard())
28-
self._transmitter = NEC(Pin(self._port[1], Pin.OUT, value=0))
12+
_pin_map = {
13+
M5.BOARD.M5AtomS3: (None, 4),
14+
M5.BOARD.M5AtomS3Lite: (None, 4),
15+
M5.BOARD.M5AtomS3U: (None, 12),
16+
M5.BOARD.M5Capsule: (None, 4),
17+
M5.BOARD.M5Cardputer: (None, 44),
18+
M5.BOARD.M5StickCPlus: (None, 9),
19+
M5.BOARD.M5StickC: (None, 9),
20+
M5.BOARD.M5StickCPlus2: (None, 19),
21+
M5.BOARD.M5AtomU: (None, 12),
22+
M5.BOARD.M5Atom: (None, 12),
23+
M5.BOARD.M5AtomEcho: (None, 12),
24+
M5.BOARD.M5NanoC6: (None, 3),
25+
}
26+
(self._rx_pin, self._tx_pin) = _pin_map.get(M5.getBoard())
27+
if self._tx_pin:
28+
self._transmitter = NEC(machine.Pin(self._tx_pin, machine.Pin.OUT, value=0))
2929
self._receiver = None
3030

3131
def tx(self, cmd, data):
3232
self._transmitter.transmit(cmd, data)
3333

3434
def rx_cb(self, cb):
35-
if self._port[0] is None:
36-
return
35+
if self._rx_pin is None:
36+
raise NotImplementedError("IR receiver is not supported on this board")
3737

38-
if self._receiver is None:
39-
self._receiver = NEC_8(Pin(self._port[0], Pin.IN), cb)
40-
else:
38+
if self._receiver:
4139
self._receiver.close()
40+
41+
self._receiver = NEC_8(machine.Pin(self._rx_pin, machine.Pin.IN), cb)

m5stack/libs/unit/ir.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#
33
# SPDX-License-Identifier: MIT
44
from driver.ir.nec import NEC, NEC_8
5-
from machine import Pin
5+
import machine
66

77

88
class IRUnit:
@@ -11,15 +11,14 @@ class IRUnit:
1111
# return NEC(Pin(port[1], Pin.IN))
1212

1313
def __init__(self, port) -> None:
14-
self._port = port
15-
self._transmitter = NEC(Pin(self._port[1], Pin.OUT, value=0))
14+
(self._rx_pin, self._tx_pin) = port
15+
self._transmitter = NEC(machine.Pin(self._tx_pin, machine.Pin.OUT, value=0))
1616
self._receiver = None
1717

1818
def tx(self, cmd, data):
1919
self._transmitter.transmit(cmd, data)
2020

2121
def rx_cb(self, cb):
22-
if self._receiver is None:
23-
self._receiver = NEC_8(Pin(self._port[0], Pin.IN), cb)
24-
else:
22+
if self._receiver:
2523
self._receiver.close()
24+
self._receiver = NEC_8(machine.Pin(self._rx_pin, machine.Pin.IN), cb)

0 commit comments

Comments
 (0)