kopia lustrzana https://github.com/pimoroni/pimoroni-pico
QA: Lint MicroPython modules.
rodzic
42da5174bb
commit
c7461571ac
|
@ -145,6 +145,7 @@ class Automation2040W():
|
|||
return self.__relays[relay].value()
|
||||
|
||||
self.__relays[relay].value(actuate)
|
||||
return None
|
||||
|
||||
def actuate_relay(self, relay):
|
||||
if relay < 0 or relay >= self.NUM_RELAYS:
|
||||
|
@ -172,7 +173,7 @@ class Automation2040W():
|
|||
try:
|
||||
if value >= 0.0 and value <= 100.0:
|
||||
self.__outputs[output].duty_u16(int((value / 100.0) * 65535))
|
||||
return
|
||||
return None
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
|
@ -338,6 +339,7 @@ class Automation2040WMini():
|
|||
return self.__relay.value()
|
||||
|
||||
self.__relay.value(actuate)
|
||||
return None
|
||||
|
||||
def actuate_relay(self):
|
||||
self.__relay.on()
|
||||
|
@ -361,7 +363,7 @@ class Automation2040WMini():
|
|||
try:
|
||||
if value >= 0.0 and value <= 100.0:
|
||||
self.__outputs[output].duty_u16(int((value / 100.0) * 65535))
|
||||
return
|
||||
return None
|
||||
except TypeError:
|
||||
pass
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
from pimoroni import RGBLED, Button
|
||||
from picographics import PicoGraphics, DISPLAY_INTERSTATE75_32X32, DISPLAY_INTERSTATE75_64X32, DISPLAY_INTERSTATE75_96X32, DISPLAY_INTERSTATE75_96X48, DISPLAY_INTERSTATE75_128X32, DISPLAY_INTERSTATE75_64X64, DISPLAY_INTERSTATE75_128X64, DISPLAY_INTERSTATE75_192X64, DISPLAY_INTERSTATE75_256X64
|
||||
from picographics import PicoGraphics, DISPLAY_INTERSTATE75_32X32, DISPLAY_INTERSTATE75_64X32, DISPLAY_INTERSTATE75_96X32, DISPLAY_INTERSTATE75_96X48, DISPLAY_INTERSTATE75_128X32, DISPLAY_INTERSTATE75_64X64, DISPLAY_INTERSTATE75_128X64, DISPLAY_INTERSTATE75_192X64, DISPLAY_INTERSTATE75_256X64, DISPLAY_INTERSTATE75_128X128
|
||||
from pimoroni_i2c import PimoroniI2C
|
||||
import hub75
|
||||
import sys
|
||||
|
@ -29,6 +29,7 @@ class Interstate75:
|
|||
DISPLAY_INTERSTATE75_128X64 = DISPLAY_INTERSTATE75_128X64
|
||||
DISPLAY_INTERSTATE75_192X64 = DISPLAY_INTERSTATE75_192X64
|
||||
DISPLAY_INTERSTATE75_256X64 = DISPLAY_INTERSTATE75_256X64
|
||||
DISPLAY_INTERSTATE75_128X128 = DISPLAY_INTERSTATE75_128X128
|
||||
|
||||
PANEL_GENERIC = hub75.PANEL_GENERIC
|
||||
PANEL_FM6126A = hub75.PANEL_FM6126A
|
||||
|
@ -43,10 +44,18 @@ class Interstate75:
|
|||
NUM_SWITCHES = 2
|
||||
|
||||
def __init__(self, display, panel_type=hub75.PANEL_GENERIC, stb_invert=False, color_order=hub75.COLOR_ORDER_RGB):
|
||||
self.interstate75w = "Pico W" in sys.implementation._machine
|
||||
self.interstate75w = "Pico W" in sys.implementation._machine # noqa: SLF001
|
||||
self.display = PicoGraphics(display=display)
|
||||
self.width, self.height = self.display.get_bounds()
|
||||
self.hub75 = hub75.Hub75(self.width, self.height, panel_type=panel_type, stb_invert=stb_invert, color_order=color_order)
|
||||
|
||||
out_width = self.width
|
||||
out_height = self.height
|
||||
|
||||
if display == DISPLAY_INTERSTATE75_128X128:
|
||||
out_width = 256
|
||||
out_height = 64
|
||||
|
||||
self.hub75 = hub75.Hub75(out_width, out_height, panel_type=panel_type, stb_invert=stb_invert, color_order=color_order)
|
||||
self.hub75.start()
|
||||
if self.interstate75w:
|
||||
self._switch_pins = self.SWITCH_PINS_W
|
||||
|
|
|
@ -116,9 +116,9 @@ class Inventor2040W():
|
|||
def play_tone(self, frequency):
|
||||
try:
|
||||
self.audio_pwm.freq(frequency)
|
||||
except ValueError:
|
||||
except ValueError as e:
|
||||
self.play_silence()
|
||||
raise ValueError("frequency of range. Expected greater than 0")
|
||||
raise ValueError("frequency of range. Expected greater than 0") from e
|
||||
|
||||
corrected_volume = (self.__volume ** 4) # Correct for RC Filter curve
|
||||
self.audio_pwm.duty_u16(int(32768 * corrected_volume))
|
||||
|
@ -143,6 +143,7 @@ class Inventor2040W():
|
|||
raise ValueError("volume out of range. Expected 0.0 to 1.0")
|
||||
|
||||
self.__volume = volume
|
||||
return None
|
||||
|
||||
def mute_audio(self):
|
||||
self.__amp_en.off()
|
||||
|
|
|
@ -54,8 +54,7 @@ class LTE():
|
|||
def ipconfig(self, *args, **kwargs):
|
||||
if len(args):
|
||||
return self._ppp.ipconfig(*args)
|
||||
else:
|
||||
return self._ppp.ipconfig(**kwargs)
|
||||
return self._ppp.ipconfig(**kwargs)
|
||||
|
||||
def iccid(self):
|
||||
try:
|
||||
|
@ -73,8 +72,7 @@ class LTE():
|
|||
response = self._send_at_command("AT+CSQ", 1)
|
||||
quality = int(response.split(":")[1].split(",")[0])
|
||||
# Conversion as per AT command set datasheet
|
||||
db = -113 + (2 * quality)
|
||||
return db
|
||||
return -113 + (2 * quality)
|
||||
except CellularError:
|
||||
pass
|
||||
return None
|
||||
|
@ -125,7 +123,7 @@ class LTE():
|
|||
self._wait_ready()
|
||||
|
||||
self._send_at_command("ATE0") # Disable local echo
|
||||
self._send_at_command(f"AT+CGDCONT=1,\"IP\",\"{self._apn}\"") # Set apn and activate pdp context
|
||||
self._send_at_command(f'AT+CGDCONT=1,"IP","{self._apn}"') # Set apn and activate pdp context
|
||||
|
||||
# Wait for roaming lte connection to be established
|
||||
giveup = time.time() + timeout
|
||||
|
@ -137,8 +135,8 @@ class LTE():
|
|||
raise CellularError("timed out getting network registration")
|
||||
|
||||
# Disable server and client certification validation
|
||||
self._send_at_command("AT+CSSLCFG=\"authmode\",0,0")
|
||||
self._send_at_command("AT+CSSLCFG=\"enableSNI\",0,1")
|
||||
self._send_at_command('AT+CSSLCFG="authmode",0,0')
|
||||
self._send_at_command('AT+CSSLCFG="enableSNI",0,1')
|
||||
|
||||
print(f" - SIM ICCID is {self.iccid()}")
|
||||
|
||||
|
|
|
@ -29,8 +29,7 @@ class Analog:
|
|||
def read_current(self):
|
||||
if self.resistor > 0:
|
||||
return self.read_voltage() / self.resistor
|
||||
else:
|
||||
return self.read_voltage()
|
||||
return self.read_voltage()
|
||||
|
||||
|
||||
class AnalogMux:
|
||||
|
@ -50,46 +49,46 @@ class AnalogMux:
|
|||
def select(self, address):
|
||||
if address < 0:
|
||||
raise ValueError("address is less than zero")
|
||||
elif address > self.max_address:
|
||||
if address > self.max_address:
|
||||
raise ValueError("address is greater than number of available addresses")
|
||||
else:
|
||||
if self.muxed_pin and self.pulls[address] is None:
|
||||
self.muxed_pin.init(Pin.IN, None)
|
||||
|
||||
self.addr0_pin.value(address & 0b001)
|
||||
if self.muxed_pin and self.pulls[address] is None:
|
||||
self.muxed_pin.init(Pin.IN, None)
|
||||
|
||||
if self.addr1_pin is not None:
|
||||
self.addr1_pin.value(address & 0b010)
|
||||
self.addr0_pin.value(address & 0b001)
|
||||
|
||||
if self.addr2_pin is not None:
|
||||
self.addr2_pin.value(address & 0b100)
|
||||
if self.addr1_pin is not None:
|
||||
self.addr1_pin.value(address & 0b010)
|
||||
|
||||
if self.en_pin is not None:
|
||||
self.en_pin.value(1)
|
||||
if self.addr2_pin is not None:
|
||||
self.addr2_pin.value(address & 0b100)
|
||||
|
||||
if self.muxed_pin and self.pulls[address] is not None:
|
||||
self.muxed_pin.init(Pin.IN, self.pulls[address])
|
||||
if self.en_pin is not None:
|
||||
self.en_pin.value(1)
|
||||
|
||||
if self.muxed_pin and self.pulls[address] is not None:
|
||||
self.muxed_pin.init(Pin.IN, self.pulls[address])
|
||||
|
||||
def disable(self):
|
||||
if self.en_pin is not None:
|
||||
self.en_pin.value(0)
|
||||
else:
|
||||
if self.en_pin is None:
|
||||
raise RuntimeError("there is no enable pin assigned to this mux")
|
||||
|
||||
self.en_pin.value(0)
|
||||
|
||||
def configure_pull(self, address, pull=None):
|
||||
if address < 0:
|
||||
raise ValueError("address is less than zero")
|
||||
elif address > self.max_address:
|
||||
if address > self.max_address:
|
||||
raise ValueError("address is greater than number of available addresses")
|
||||
else:
|
||||
self.pulls[address] = pull
|
||||
|
||||
self.pulls[address] = pull
|
||||
|
||||
def read(self):
|
||||
if self.muxed_pin is not None:
|
||||
return self.muxed_pin.value()
|
||||
else:
|
||||
if self.muxed_pin is None:
|
||||
raise RuntimeError("there is no muxed pin assigned to this mux")
|
||||
|
||||
return self.muxed_pin.value()
|
||||
|
||||
|
||||
class Button:
|
||||
def __init__(self, button, invert=True, repeat_time=200, hold_time=1000):
|
||||
|
@ -113,10 +112,9 @@ class Button:
|
|||
self.pressed = True
|
||||
self.last_time = current_time
|
||||
return True
|
||||
else:
|
||||
self.pressed_time = 0
|
||||
self.pressed = False
|
||||
self.last_time = 0
|
||||
self.pressed_time = 0
|
||||
self.pressed = False
|
||||
self.last_time = 0
|
||||
|
||||
if self.repeat_time == 0:
|
||||
return False
|
||||
|
@ -132,10 +130,7 @@ class Button:
|
|||
return False
|
||||
|
||||
def raw(self):
|
||||
if self.invert:
|
||||
return not self.pin.value()
|
||||
else:
|
||||
return self.pin.value()
|
||||
return self.pin.value() ^ self.invert
|
||||
|
||||
@property
|
||||
def is_pressed(self):
|
||||
|
|
Ładowanie…
Reference in New Issue