Merge remote-tracking branch 'upstream/main' into stm32-i2cstart

This commit is contained in:
Lucian Copeland 2021-02-11 16:19:12 -05:00
commit a061768ceb
128 changed files with 5894 additions and 1004 deletions

1
.gitattributes vendored
View File

@ -18,6 +18,7 @@
*.deb binary
*.zip binary
*.pdf binary
*.wav binary
# These should also not be modified by git.
tests/basics/string_cr_conversion.py -text

View File

@ -208,6 +208,7 @@ jobs:
- "datum_imu"
- "datum_light"
- "datum_weather"
- "dynalora_usb"
- "dynossat_edu_eps"
- "dynossat_edu_obc"
- "electronut_labs_blip"

94
WEBUSB_README.md Normal file
View File

@ -0,0 +1,94 @@
<!--
SPDX-FileCopyrightText: 2014 MicroPython & CircuitPython contributors (https://github.com/adafruit/circuitpython/graphs/contributors)
SPDX-License-Identifier: MIT
-->
# WebUSB Serial Support
To date, this has only been tested on one port (esp32s2), on one board (espressif_kaluga_1).
## What it does
If you have ever used CircuitPython on a platform with a graphical LCD display, you have probably
already seen multiple "consoles" in use (although the LCD console is "output only").
New compile-time option CIRCUITPY_USB_VENDOR enables an additional "console" that can be used in
parallel with the original (CDC) serial console.
Web pages that support the WebUSB standard can connect to the "vendor" interface and activate
this WebUSB serial console at any time.
You can type into either console, and CircuitPython output is sent to all active consoles.
One example of a web page you can use to test drive this feature can be found at:
https://adafruit.github.io/Adafruit_TinyUSB_Arduino/examples/webusb-serial/index.html
## How to enable
Update your platform's mpconfigboard.mk file to enable and disable specific types of USB interfaces.
CIRCUITPY_USB_HID = xxx
CIRCUITPY_USB_MIDI = xxx
CIRCUITPY_USB_VENDOR = xxx
On at least some of the hardware platforms, the maximum number of USB endpoints is fixed.
For example, on the ESP32S2, you must pick only one of the above 3 interfaces to be enabled.
Original espressif_kaluga_1 mpconfigboard.mk settings:
CIRCUITPY_USB_HID = 1
CIRCUITPY_USB_MIDI = 0
CIRCUITPY_USB_VENDOR = 0
Settings to enable WebUSB instead:
CIRCUITPY_USB_HID = 0
CIRCUITPY_USB_MIDI = 0
CIRCUITPY_USB_VENDOR = 1
Notice that to enable VENDOR on ESP32-S2, we had to give up HID. There may be platforms that can have both, or even all three.
## Implementation Notes
CircuitPython uses the tinyusb library.
The tinyusb library already has support for WebUSB serial.
The tinyusb examples already include a "WebUSB serial" example.
Sidenote - The use of the term "vendor" instead of "WebUSB" was done to match tinyusb.
Basically, this feature was ported into CircuitPython by pulling code snippets out of the
tinyusb example, and putting them where they best belonged in the CircuitPython codebase.
There was one complication:
tinyusb uses C preprocessor macros to define things like USB descriptors.
CircuitPython uses a Python program (tools/gen_usb_descriptor.py) to create USB descriptors (etc.)
using "helper objects" from another repo (adafruit_usb_descriptor). This means some of the example
code had to be adapted to the new programing model, and gen_usb_descriptor gained new command-line
options to control the generated code.
The generated files go into the "build" directory, look for autogen_usb_descriptor.c and
genhdr/autogen_usb_descriptor.h.
Also worth pointing out - the re-use of the CDC connect/disconnect mechanism is not actually part
of the WebUSB standard, it's more of "common idiom". We make use of it here because we need to know
when we should be paying attention to the WebUSB serial interface, and when we should ignore it..
## Possible future work areas
The current code uses the existing Python infrastructure to create the Interface descriptor, but
simply outputs the code snippets from the original tinyusb demo code to create the WEBUSB_URL,
BOS, and MS_OS_20 descriptors. I suppose additional work could be done to add these to the
adafruit_usb_descriptor project, and then gen_usb_descriptor.py could be modified to make use
of them.
Program gen_usb_descriptor.py creates objects for most interface types, regardless of whether or
not they are actually enabled. This increases the size of a generated string table. I made the
new vendor-interface-related code not do this (because some of the ARM platforms would no longer
build), but I did not go back and do this for the other interface types (CDC, MIDI, HID, etc.)
Some FLASH savings are probably possible if this is done.

View File

@ -46,6 +46,7 @@ Full Table of Contents
../BUILDING
../CODE_OF_CONDUCT
../license.rst
../WEBUSB_README
Indices and tables
==================

View File

@ -344,6 +344,10 @@ msgstr "Semua perangkat UART sedang digunakan"
msgid "All event channels in use"
msgstr "Semua channel event sedang digunakan"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Semua channel event yang disinkronisasi sedang digunakan"
@ -392,6 +396,7 @@ msgstr "AnalogIn tidak didukung pada pin yang diberikan"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "fungsionalitas AnalogOut tidak didukung"
@ -593,6 +598,7 @@ msgstr "Tidak dapat menghapus nilai"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "Tidak bisa mendapatkan pull pada saat mode output"
@ -636,6 +642,10 @@ msgstr ""
"Tidak dapat melakukan reset ke bootloader karena tidak ada bootloader yang "
"terisi"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "Tidak dapat menetapkan nilai saat arah input."
@ -878,11 +888,12 @@ msgstr "Channel EXTINT sedang digunakan"
msgid "Error in regex"
msgstr "Error pada regex"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -936,7 +947,7 @@ msgstr "FFT didefinisikan hanya untuk ndarrays"
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1064,6 +1075,10 @@ msgstr "operasi I/O pada file tertutup"
msgid "I2C Init Error"
msgstr "Gagal Inisialisasi I2C"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr ""
@ -1089,6 +1104,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "Ukuran penyangga salah"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr ""
@ -1101,6 +1120,31 @@ msgstr ""
msgid "Input/output error"
msgstr "Kesalahan input/output"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "Otentikasi tidak cukup"
@ -1152,7 +1196,7 @@ msgstr "Pin DAC yang diberikan tidak valid"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Frekuensi PWM tidak valid"
@ -1246,6 +1290,8 @@ msgstr "Pin untuk channel kanan tidak valid"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Pin-pin tidak valid"
@ -1274,7 +1320,7 @@ msgstr "security_mode tidak valid"
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1282,10 +1328,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Suara tidak valid"
@ -1302,10 +1344,6 @@ msgstr "File wave tidak valid"
msgid "Invalid word/bit length"
msgstr "Panjang kata/bit tidak valid"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "Panjang kunci harus 16, 24, atau 32 byte"
@ -1367,6 +1405,36 @@ msgstr "Penundaan mulai mikrofon harus dalam kisaran 0,0 hingga 1,0"
msgid "Missing MISO or MOSI Pin"
msgstr "Tidak menemukan Pin MISO atau MOSI"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Harus berupa subclass %q."
@ -1420,14 +1488,14 @@ msgstr "Tidak ada Pin MOSI"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Tidak pin RX"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Tidak ada pin TX"
@ -1484,6 +1552,16 @@ msgstr "Tidak ada lagi penghitung waktu yang tersedia pada pin ini."
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "Tidak ada pull-down pada pin; 1Mohm direkomendasikan"
@ -1541,6 +1619,10 @@ msgstr "Parity ganjil tidak didukung"
msgid "Only 8 or 16 bit mono with "
msgstr "Hanya 8 atau 16 bit mono dengan "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1594,7 +1676,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1619,6 +1701,7 @@ msgstr ""
"konstruksi."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "ParallelBus belum didukung"
@ -1631,11 +1714,20 @@ msgstr ""
msgid "Permission denied"
msgstr "Izin ditolak"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "Pin tidak mempunya kemampuan untuk ADC (Analog Digital Converter)"
@ -1699,10 +1791,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "Pull tidak digunakan saat arah output."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr "Kesalahan DeInit RNG"
@ -1711,6 +1827,10 @@ msgstr "Kesalahan DeInit RNG"
msgid "RNG Init Error"
msgstr "Kesalahan Init RNG"
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1718,6 +1838,7 @@ msgstr "Pembalikan RS485 ditentukan saat tidak dalam mode RS485"
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "Kalibrasi RTC tidak didukung pada board ini"
@ -1726,7 +1847,7 @@ msgid "RTC is not supported on this board"
msgstr "RTC tidak didukung di board ini"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr "RTS/CTS/RS485 Belum didukung pada perangkat ini"
@ -1784,11 +1905,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA atau SCL membutuhkan pull up"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1807,6 +1923,10 @@ msgstr "Kesalahan Init SPI"
msgid "SPI Re-initialization error"
msgstr "Kesalahan Inisialisasi ulang SPI"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "Tingkat sampel harus positif"
@ -1837,6 +1957,14 @@ msgstr "Serializer sedang digunakan"
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr ""
@ -2009,6 +2137,10 @@ msgstr "Kesalahan Init UART"
msgid "UART Re-init error"
msgstr "Kesalahan Re-init UART"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "Kesalahan penulisan UART"
@ -2072,7 +2204,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr "Tipe urf nrfx tak sesuai"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2115,7 +2247,8 @@ msgstr ""
"perangkat lain ditolak atau diabaikan."
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Baudrate tidak didukung"
@ -2167,6 +2300,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "PERINGATAN: Nama file kode anda mempunyai dua ekstensi\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2379,7 +2513,7 @@ msgstr ""
msgid "buffer too small"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3540,6 +3674,10 @@ msgstr "Muncul dari PulseIn yang kosong"
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr ""
@ -3556,6 +3694,7 @@ msgstr ""
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3573,6 +3712,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "antrian meluap (overflow)"
@ -3776,6 +3923,7 @@ msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
@ -4059,6 +4207,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA atau SCL membutuhkan pull up"
#~ msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
#~ msgstr "pin alamat %d dan pin rgb %d menunjukkan tinggi %d, bukan %d"

View File

@ -363,6 +363,7 @@ msgstr ""
#: ports/esp32s2/common-hal/pulseio/PulseOut.c
#: ports/nrf/common-hal/audiopwmio/PWMAudioOut.c
#: ports/nrf/common-hal/pulseio/PulseIn.c ports/nrf/peripherals/nrf/timers.c
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
#: ports/stm/peripherals/timers.c shared-bindings/pwmio/PWMOut.c
msgid "All timers in use"
msgstr ""
@ -629,6 +630,10 @@ msgstr ""
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr ""
@ -865,7 +870,7 @@ msgstr ""
msgid "Error in regex"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
@ -924,7 +929,7 @@ msgstr ""
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1295,7 +1300,7 @@ msgstr ""
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1303,10 +1308,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1323,10 +1324,6 @@ msgstr ""
msgid "Invalid word/bit length"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr ""
@ -1450,9 +1447,14 @@ msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
msgid "No DMA channel found"
msgstr ""
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
msgid "No DMA pacing timer found"
msgstr ""
#: shared-module/adafruit_bus_device/I2CDevice.c
#, c-format
msgid "No I2C device at address: %x"
@ -1539,6 +1541,12 @@ msgstr ""
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
@ -1647,7 +1655,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1722,6 +1730,10 @@ msgid ""
"constructor"
msgstr ""
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
msgid "Pins must share PWM slice"
msgstr ""
#: py/builtinhelp.c
msgid "Plus any modules on the filesystem\n"
msgstr ""
@ -1793,6 +1805,10 @@ msgstr ""
msgid "RNG Init Error"
msgstr ""
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1800,6 +1816,7 @@ msgstr ""
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr ""
@ -1808,7 +1825,7 @@ msgid "RTC is not supported on this board"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr ""
@ -1865,12 +1882,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1962,6 +1973,14 @@ msgstr ""
msgid "Stack size must be at least 256"
msgstr ""
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
msgid "Stereo left must be on PWM channel A"
msgstr ""
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
msgid "Stereo right must be on PWM channel B"
msgstr ""
#: shared-bindings/multiterminal/__init__.c
msgid "Stream missing readinto() or write() method."
msgstr ""
@ -2125,6 +2144,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
#: ports/raspberrypi/common-hal/audiopwmio/PWMAudioOut.c
msgid "Unable to allocate buffers for signed conversion"
msgstr ""
@ -2162,7 +2182,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2461,7 +2481,7 @@ msgstr ""
msgid "buffer too small"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3621,6 +3641,10 @@ msgstr ""
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr ""

View File

@ -342,6 +342,10 @@ msgstr ""
msgid "All event channels in use"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr ""
@ -390,6 +394,7 @@ msgstr ""
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr ""
@ -589,6 +594,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr ""
@ -626,6 +632,10 @@ msgstr ""
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr ""
@ -862,11 +872,12 @@ msgstr ""
msgid "Error in regex"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -920,7 +931,7 @@ msgstr ""
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1048,6 +1059,10 @@ msgstr ""
msgid "I2C Init Error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr ""
@ -1071,6 +1086,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr ""
@ -1083,6 +1102,31 @@ msgstr ""
msgid "Input/output error"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr ""
@ -1134,7 +1178,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr ""
@ -1228,6 +1272,8 @@ msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr ""
@ -1256,7 +1302,7 @@ msgstr ""
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1264,10 +1310,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1284,10 +1326,6 @@ msgstr ""
msgid "Invalid word/bit length"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr ""
@ -1349,6 +1387,36 @@ msgstr ""
msgid "Missing MISO or MOSI Pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1402,14 +1470,14 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr ""
@ -1466,6 +1534,16 @@ msgstr ""
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
@ -1521,6 +1599,10 @@ msgstr ""
msgid "Only 8 or 16 bit mono with "
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1570,7 +1652,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1593,6 +1675,7 @@ msgid ""
msgstr ""
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@ -1605,11 +1688,20 @@ msgstr ""
msgid "Permission denied"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr ""
@ -1670,10 +1762,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr ""
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr ""
@ -1682,6 +1798,10 @@ msgstr ""
msgid "RNG Init Error"
msgstr ""
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1689,6 +1809,7 @@ msgstr ""
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr ""
@ -1697,7 +1818,7 @@ msgid "RTC is not supported on this board"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr ""
@ -1754,11 +1875,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1777,6 +1893,10 @@ msgstr ""
msgid "SPI Re-initialization error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
@ -1807,6 +1927,14 @@ msgstr ""
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr ""
@ -1971,6 +2099,10 @@ msgstr ""
msgid "UART Re-init error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr ""
@ -2034,7 +2166,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2075,7 +2207,8 @@ msgid ""
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr ""
@ -2126,6 +2259,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2331,7 +2465,7 @@ msgstr ""
msgid "buffer too small"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3491,6 +3625,10 @@ msgstr ""
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr ""
@ -3507,6 +3645,7 @@ msgstr ""
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3524,6 +3663,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr ""
@ -3727,6 +3874,7 @@ msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""

View File

@ -6,14 +6,14 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-07 18:01+0000\n"
"Last-Translator: Dennis Schweer <dennis.schweer@ruhr-uni-bochum.de>\n"
"PO-Revision-Date: 2021-02-05 15:41+0000\n"
"Last-Translator: Jeff Epler <jepler@gmail.com>\n"
"Language: de_DE\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4.1-dev\n"
"X-Generator: Weblate 4.5-dev\n"
#: main.c
msgid ""
@ -120,7 +120,8 @@ msgstr "%q sollte ein integer sein"
#: py/bc.c py/objnamedtuple.c
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() nimmt %d Argumente ohne Keyword an, aber es wurden %d angegeben"
msgstr ""
"%q() nimmt %d Argumente ohne Schlüsselwort an, aber es wurden %d angegeben"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
@ -235,7 +236,7 @@ msgstr "'await' außerhalb einer Funktion"
#: py/compile.c
msgid "'await', 'async for' or 'async with' outside async function"
msgstr ""
msgstr "'await', 'async for' oder 'async with' außerhalb einer async Funktion"
#: py/compile.c
msgid "'break' outside loop"
@ -267,7 +268,7 @@ msgstr "'return' außerhalb einer Funktion"
#: py/compile.c
msgid "'yield from' inside async function"
msgstr ""
msgstr "'yield from' innerhalb einer async Funktion"
#: py/compile.c
msgid "'yield' outside function"
@ -313,7 +314,7 @@ msgstr "Adresstyp außerhalb des zulässigen Bereichs"
#: ports/esp32s2/common-hal/canio/CAN.c
msgid "All CAN peripherals are in use"
msgstr ""
msgstr "Alle CAN Schnittstellen sind in Benutzung"
#: ports/esp32s2/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use"
@ -329,7 +330,7 @@ msgstr "Alle PCNT Einheiten sind in Benutzung"
#: ports/esp32s2/common-hal/canio/Listener.c
#: ports/stm/common-hal/canio/Listener.c
msgid "All RX FIFOs in use"
msgstr ""
msgstr "Alle RX FIFOs sind in Benutzung"
#: ports/esp32s2/common-hal/busio/SPI.c ports/nrf/common-hal/busio/SPI.c
msgid "All SPI peripherals are in use"
@ -343,6 +344,10 @@ msgstr "Alle UART-Peripheriegeräte sind in Benutzung"
msgid "All event channels in use"
msgstr "Alle event Kanäle werden benutzt"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Alle sync event Kanäle werden benutzt"
@ -391,6 +396,7 @@ msgstr "AnalogIn ist an diesem Pin nicht unterstützt"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "AnalogOut-Funktion wird nicht unterstützt"
@ -536,7 +542,7 @@ msgstr "Puffer zu groß und kann nicht reserviert werden"
#: shared-bindings/_bleio/PacketBuffer.c
#, c-format
msgid "Buffer too short by %d bytes"
msgstr "Buffer um %d Bytes zu kurz"
msgstr "Puffer um %d Bytes zu kurz"
#: ports/atmel-samd/common-hal/displayio/ParallelBus.c
#: ports/esp32s2/common-hal/displayio/ParallelBus.c
@ -594,6 +600,7 @@ msgstr "Kann Werte nicht löschen"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "Pull up im Ausgabemodus nicht möglich"
@ -632,6 +639,10 @@ msgstr "Kann '/' nicht remounten when USB aktiv ist."
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr "Reset zum bootloader nicht möglich da bootloader nicht vorhanden."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "Der Wert kann nicht gesetzt werden, wenn die Richtung input ist."
@ -685,7 +696,7 @@ msgstr ""
#: supervisor/shared/safe_mode.c
msgid "CircuitPython was unable to allocate the heap.\n"
msgstr ""
msgstr "CircuitPython war es nicht möglich heap-Speicher zu allozieren.\n"
#: shared-module/bitbangio/SPI.c
msgid "Clock pin init failed."
@ -763,7 +774,7 @@ msgstr "PWM konnte nicht neu gestartet werden"
#: ports/esp32s2/common-hal/neopixel_write/__init__.c
msgid "Could not retrieve clock"
msgstr ""
msgstr "Clock konnte nicht ermittelt werden"
#: shared-bindings/_bleio/Adapter.c
msgid "Could not set address"
@ -801,7 +812,7 @@ msgstr "Absturz in den HardFault_Handler."
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Channel Init Error"
msgstr "DAC Kanal Intialisierungs Fehler"
msgstr "DAC Kanal Initialisierungsfehler"
#: ports/stm/common-hal/analogio/AnalogOut.c
msgid "DAC Device Init Error"
@ -874,11 +885,12 @@ msgstr "EXTINT Kanal ist schon in Benutzung"
msgid "Error in regex"
msgstr "Fehler in regex"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -933,7 +945,7 @@ msgstr "FFT ist nur für ndarrays definiert"
msgid "FFT is implemented for linear arrays only"
msgstr "FFT ist nur für lineare Arrays implementiert"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr "SSL Handshake fehlgeschlagen"
@ -966,7 +978,7 @@ msgstr "Zuweisung des Wifi Speichers ist fehlgeschlagen"
#: ports/esp32s2/common-hal/wifi/ScannedNetworks.c
msgid "Failed to allocate wifi scan memory"
msgstr ""
msgstr "Zuweisung des Wifi Scan Speichers ist fehlgeschlagen"
#: ports/nrf/common-hal/_bleio/Adapter.c
msgid "Failed to connect: internal error"
@ -982,7 +994,7 @@ msgstr "Wifi Initialisierung ist fehlgeschlagen"
#: shared-module/audiomp3/MP3Decoder.c
msgid "Failed to parse MP3 file"
msgstr "Parsen der MP3 Datei fehlgeschlagen"
msgstr "MP3-Datei konnte nicht analysiert werden"
#: ports/nrf/sd_mutex.c
#, c-format
@ -1005,7 +1017,7 @@ msgstr "Filter zu komplex"
#: ports/esp32s2/common-hal/dualbank/__init__.c
msgid "Firmware image is invalid"
msgstr ""
msgstr "Firmware Image ist ungültig"
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Format not supported"
@ -1063,6 +1075,10 @@ msgstr "Lese/Schreibe-operation an geschlossener Datei"
msgid "I2C Init Error"
msgstr "I2C-Init-Fehler"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr "I2SOut nicht verfügbar"
@ -1088,6 +1104,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "Inkorrekte Puffergröße"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr "Initialisierung aufgrund von Speichermangel fehlgeschlagen"
@ -1100,6 +1120,31 @@ msgstr ""
msgid "Input/output error"
msgstr "Eingabe-/Ausgabefehler"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "Unzureichende Authentifizierung"
@ -1151,7 +1196,7 @@ msgstr "Ungültiger DAC-Pin angegeben"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Ungültige PWM Frequenz"
@ -1245,6 +1290,8 @@ msgstr "Ungültiger Pin für rechten Kanal"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Ungültige Pins"
@ -1273,7 +1320,7 @@ msgstr "Ungültiger security_mode"
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1281,10 +1328,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Ungültige Stimme"
@ -1301,10 +1344,6 @@ msgstr "Ungültige wave Datei"
msgid "Invalid word/bit length"
msgstr "Ungültige Wort- / Bitlänge"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "Der Schlüssel muss 16, 24 oder 32 Byte lang sein"
@ -1368,6 +1407,36 @@ msgstr ""
msgid "Missing MISO or MOSI Pin"
msgstr "Fehlender MISO- oder MOSI-Pin"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Muss eine %q Unterklasse sein."
@ -1421,14 +1490,14 @@ msgstr "Kein MOSI Pin"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Kein RX Pin"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Kein TX Pin"
@ -1485,6 +1554,16 @@ msgstr "An diesem Pin sind keine Timer mehr verfügbar."
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "Kein Pulldown Widerstand am Pin; 1Mohm wird vorgeschlagen"
@ -1542,6 +1621,10 @@ msgstr "Eine ungerade Parität wird nicht unterstützt"
msgid "Only 8 or 16 bit mono with "
msgstr "Nur 8 oder 16 bit mono mit "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1595,7 +1678,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1618,6 +1701,7 @@ msgid ""
msgstr "Die PWM-Frequenz ist nicht schreibbar wenn variable_Frequenz = False."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "ParallelBus wird noch nicht unterstützt"
@ -1630,11 +1714,20 @@ msgstr ""
msgid "Permission denied"
msgstr "Zugang verweigert"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "Pin hat keine ADC Funktionalität"
@ -1698,10 +1791,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "Pull wird nicht verwendet, wenn die Richtung output ist."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr "RNG DeInit-Fehler"
@ -1710,6 +1827,10 @@ msgstr "RNG DeInit-Fehler"
msgid "RNG Init Error"
msgstr "RNG Init Fehler"
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1717,6 +1838,7 @@ msgstr "RS485-Inversion angegeben, wenn nicht im RS485-Modus"
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "Die RTC-Kalibrierung wird auf diesem Board nicht unterstützt"
@ -1725,7 +1847,7 @@ msgid "RTC is not supported on this board"
msgstr "Eine RTC wird auf diesem Board nicht unterstützt"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr "RTS / CTS / RS485 Wird von diesem Gerät noch nicht unterstützt"
@ -1782,11 +1904,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA oder SCL brauchen pull up"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1805,6 +1922,10 @@ msgstr "SPI-Init-Fehler"
msgid "SPI Re-initialization error"
msgstr "SPI-Neuinitialisierungsfehler"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "Abtastrate muss positiv sein"
@ -1835,6 +1956,14 @@ msgstr "Serializer wird benutzt"
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr ""
@ -2013,6 +2142,10 @@ msgstr "UART Init Fehler"
msgid "UART Re-init error"
msgstr "UART Re-Init-Fehler"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "UART-Schreibfehler"
@ -2076,7 +2209,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr "Unerwarteter nrfx uuid-Typ"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2121,7 +2254,8 @@ msgstr ""
"Eingabeaufforderung auf dem anderen Gerät abgelehnt oder ignoriert."
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Baudrate wird nicht unterstützt"
@ -2173,6 +2307,7 @@ msgstr ""
"WARNUNG: Der Dateiname deines Programms hat zwei Dateityperweiterungen\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2388,7 +2523,7 @@ msgstr "Puffersegmente müssen gleich lang sein"
msgid "buffer too small"
msgstr "Der Puffer ist zu klein"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -2769,7 +2904,7 @@ msgstr "erwarte tuple/list"
#: py/modthread.c
msgid "expecting a dict for keyword args"
msgstr "erwarte ein dict als Keyword-Argumente"
msgstr "erwarte ein dict als Schlüsselwort-Argumente"
#: py/compile.c
msgid "expecting an assembler instruction"
@ -2789,11 +2924,11 @@ msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "Es wurden zusätzliche Keyword-Argumente angegeben"
msgstr "Es wurden zusätzliche Schlüsselwort-Argumente angegeben"
#: py/argcheck.c
msgid "extra positional arguments given"
msgstr "Es wurden zusätzliche Argumente ohne Keyword angegeben"
msgstr "Es wurden zusätzliche Argumente ohne Schlüsselwort angegeben"
#: py/parse.c
msgid "f-string expression part cannot include a '#'"
@ -2874,7 +3009,7 @@ msgstr "voll"
#: py/argcheck.c
msgid "function does not take keyword arguments"
msgstr "Funktion akzeptiert keine Keyword-Argumente"
msgstr "Funktion akzeptiert keine Schlüsselwort-Argumente"
#: py/argcheck.c
#, c-format
@ -2896,26 +3031,27 @@ msgstr ""
#: py/argcheck.c
#, c-format
msgid "function missing %d required positional arguments"
msgstr "Funktion vermisst %d benötigte Argumente ohne Keyword"
msgstr "Funktion vermisst %d benötigte Argumente ohne Schlüsselwort"
#: py/bc.c
msgid "function missing keyword-only argument"
msgstr "Funktion vermisst Keyword-only-Argument"
msgstr "Funktion vermisst Nur-Schlüsselwort-Argument"
#: py/bc.c
msgid "function missing required keyword argument '%q'"
msgstr "Funktion vermisst benötigtes Keyword-Argumente '%q'"
msgstr "Funktion vermisst benötigtes Schlüsselwort-Argumente '%q'"
#: py/bc.c
#, c-format
msgid "function missing required positional argument #%d"
msgstr "Funktion vermisst benötigtes Argumente ohne Keyword #%d"
msgstr "Funktion vermisst benötigtes Argumente ohne Schlüsselwort #%d"
#: py/argcheck.c py/bc.c py/objnamedtuple.c shared-bindings/time/__init__.c
#, c-format
msgid "function takes %d positional arguments but %d were given"
msgstr ""
"Funktion nimmt %d Argumente ohne Keyword an, aber es wurden %d angegeben"
"Funktion nimmt %d Argumente ohne Schlüsselwort an, aber es wurden %d "
"angegeben"
#: shared-bindings/time/__init__.c
msgid "function takes exactly 9 arguments"
@ -3145,8 +3281,8 @@ msgstr ""
#: py/argcheck.c
msgid "keyword argument(s) not yet implemented - use normal args instead"
msgstr ""
"Keyword-Argument(e) noch nicht implementiert - verwenden Sie stattdessen "
"normale Argumente"
"Schlüsselwort-Argument(e) noch nicht implementiert - verwenden Sie "
"stattdessen normale Argumente"
#: py/bc.c
msgid "keywords must be strings"
@ -3571,6 +3707,10 @@ msgstr "pop von einem leeren PulseIn"
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "pow() drittes Argument darf nicht 0 sein"
@ -3587,6 +3727,7 @@ msgstr "pow () mit 3 Argumenten erfordert Integer"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3604,6 +3745,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "Warteschlangenüberlauf"
@ -3810,6 +3959,7 @@ msgstr "time.struct_time() nimmt eine 9-Sequenz an"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "Das Zeitlimit hat den maximal zulässigen Wert überschritten"
@ -3926,11 +4076,11 @@ msgstr ""
#: py/bc.c
msgid "unexpected keyword argument"
msgstr "unerwartetes Keyword-Argument"
msgstr "unerwartetes Schlüsselwort-Argument"
#: py/bc.c py/objnamedtuple.c
msgid "unexpected keyword argument '%q'"
msgstr "unerwartetes Keyword-Argument '%q'"
msgstr "unerwartetes Schlüsselwort-Argument '%q'"
#: py/lexer.c
msgid "unicode name escapes"
@ -4096,6 +4246,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA oder SCL brauchen pull up"
#~ msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
#~ msgstr ""
#~ "%d Adress-Pins und %d rgb-Pins zeigen eine Höhe von %d, nicht von %d"

View File

@ -339,6 +339,10 @@ msgstr ""
msgid "All event channels in use"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr ""
@ -387,6 +391,7 @@ msgstr ""
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr ""
@ -586,6 +591,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr ""
@ -623,6 +629,10 @@ msgstr ""
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr ""
@ -859,11 +869,12 @@ msgstr ""
msgid "Error in regex"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -917,7 +928,7 @@ msgstr ""
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1045,6 +1056,10 @@ msgstr ""
msgid "I2C Init Error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr ""
@ -1068,6 +1083,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr ""
@ -1080,6 +1099,31 @@ msgstr ""
msgid "Input/output error"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr ""
@ -1131,7 +1175,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr ""
@ -1225,6 +1269,8 @@ msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr ""
@ -1253,7 +1299,7 @@ msgstr ""
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1261,10 +1307,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1281,10 +1323,6 @@ msgstr ""
msgid "Invalid word/bit length"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr ""
@ -1346,6 +1384,36 @@ msgstr ""
msgid "Missing MISO or MOSI Pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1399,14 +1467,14 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr ""
@ -1463,6 +1531,16 @@ msgstr ""
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
@ -1518,6 +1596,10 @@ msgstr ""
msgid "Only 8 or 16 bit mono with "
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1567,7 +1649,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1590,6 +1672,7 @@ msgid ""
msgstr ""
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@ -1602,11 +1685,20 @@ msgstr ""
msgid "Permission denied"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr ""
@ -1667,10 +1759,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr ""
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr ""
@ -1679,6 +1795,10 @@ msgstr ""
msgid "RNG Init Error"
msgstr ""
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1686,6 +1806,7 @@ msgstr ""
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr ""
@ -1694,7 +1815,7 @@ msgid "RTC is not supported on this board"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr ""
@ -1751,11 +1872,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1774,6 +1890,10 @@ msgstr ""
msgid "SPI Re-initialization error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
@ -1804,6 +1924,14 @@ msgstr ""
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr ""
@ -1968,6 +2096,10 @@ msgstr ""
msgid "UART Re-init error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr ""
@ -2031,7 +2163,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2072,7 +2204,8 @@ msgid ""
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr ""
@ -2123,6 +2256,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2328,7 +2462,7 @@ msgstr ""
msgid "buffer too small"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3488,6 +3622,10 @@ msgstr ""
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr ""
@ -3504,6 +3642,7 @@ msgstr ""
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3521,6 +3660,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr ""
@ -3724,6 +3871,7 @@ msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""

View File

@ -8,27 +8,31 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2020-12-30 22:25+0000\n"
"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
"PO-Revision-Date: 2021-02-08 21:21+0000\n"
"Last-Translator: Alvaro Figueroa <alvaro@greencore.co.cr>\n"
"Language-Team: \n"
"Language: es\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.4.1-dev\n"
"X-Generator: Weblate 4.5-dev\n"
#: main.c
msgid ""
"\n"
"Code done running.\n"
msgstr ""
"\n"
"El código terminó de ejecutar.\n"
#: main.c
msgid ""
"\n"
"Code stopped by auto-reload.\n"
msgstr ""
"\n"
"El código fue detenido por el auto-reiniciado.\n"
#: supervisor/shared/safe_mode.c
msgid ""
@ -50,7 +54,7 @@ msgstr " Archivo \"%q\", línea %d"
#: py/builtinhelp.c
msgid " is of type %q\n"
msgstr ""
msgstr " es de tipo %q\n"
#: main.c
msgid " output:\n"
@ -126,7 +130,7 @@ msgstr "%q() toma %d argumentos posicionales pero %d fueron dados"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
msgstr "%s error 0x%x"
#: py/argcheck.c
msgid "'%q' argument required"
@ -292,7 +296,7 @@ msgstr "pow() con 3 argumentos no soportado"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
msgstr "tipos de 64 bit"
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
@ -344,6 +348,10 @@ msgstr "Todos los periféricos UART están siendo usados"
msgid "All event channels in use"
msgstr "Todos los canales de eventos estan siendo usados"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr "Todas las máquinas de estado en uso"
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr ""
@ -394,6 +402,7 @@ msgstr "El pin proporcionado no soporta AnalogIn"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "Funcionalidad AnalogOut no soportada"
@ -562,7 +571,7 @@ msgstr "Los bloques CBC deben ser múltiplos de 16 bytes"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
msgstr "CRC o suma de comprobación inválida"
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
@ -597,6 +606,7 @@ msgstr "No se puede eliminar valores"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "No puede ser pull mientras este en modo de salida"
@ -636,6 +646,10 @@ msgstr "No se puede volver a montar '/' cuando el USB esta activo."
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr "No se puede reiniciar a bootloader porque no hay bootloader presente."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr "No se pueden definir opciones para enchufe"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "No se puede asignar un valor cuando la dirección es input."
@ -876,11 +890,12 @@ msgstr "El canal EXTINT ya está siendo utilizado"
msgid "Error in regex"
msgstr "Error en regex"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -934,7 +949,7 @@ msgstr "FFT se define solo para ndarrays"
msgid "FFT is implemented for linear arrays only"
msgstr "FFT solo esta implementado para arrays lineales"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr "Fallo en saludo SSL"
@ -1006,7 +1021,7 @@ msgstr "Filtros muy complejos"
#: ports/esp32s2/common-hal/dualbank/__init__.c
msgid "Firmware image is invalid"
msgstr ""
msgstr "La imagen de firmware es inválida"
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Format not supported"
@ -1029,7 +1044,7 @@ msgstr "La función requiere lock"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
msgstr "Fallo Genérico"
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
@ -1063,6 +1078,10 @@ msgstr "Operación I/O en archivo cerrado"
msgid "I2C Init Error"
msgstr "I2C Error de inicio"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr "Dispositivo I2C en uso"
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr "I2SOut no disponible"
@ -1088,6 +1107,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "Tamaño incorrecto del buffer"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr "Inicializacion fallida por falta de memoria"
@ -1100,6 +1123,31 @@ msgstr "La entrada está durando mucho tiempo"
msgid "Input/output error"
msgstr "error Input/output"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "Autenticación insuficiente"
@ -1151,7 +1199,7 @@ msgstr "Pin suministrado inválido para DAC"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Frecuencia PWM inválida"
@ -1245,6 +1293,8 @@ msgstr "Pin inválido para canal derecho"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "pines inválidos"
@ -1273,7 +1323,7 @@ msgstr "'security_mode' no válido"
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1281,10 +1331,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Voz inválida"
@ -1301,10 +1347,6 @@ msgstr "Archivo wave inválido"
msgid "Invalid word/bit length"
msgstr "Tamaño no válido de palabra/bit"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "La llave debe tener 16, 24 o 32 bytes de longitud"
@ -1366,6 +1408,36 @@ msgstr "Micrófono demora de inicio debe estar en el rango 0.0 a 1.0"
msgid "Missing MISO or MOSI Pin"
msgstr "Falta el pin MISO o MOSI"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Debe de ser una subclase de %q."
@ -1419,14 +1491,14 @@ msgstr "Sin pin MOSI"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Sin pin RX"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Sin pin TX"
@ -1483,6 +1555,16 @@ msgstr "No hay más temporizadores disponibles en este pin."
msgid "No network with that ssid"
msgstr "No hay una red con ese ssid"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "No hay pulldown en el pin; 1Mohm recomendado"
@ -1540,6 +1622,10 @@ msgstr "Paridad impar no soportada"
msgid "Only 8 or 16 bit mono with "
msgstr "Solo mono de 8 ó 16 bit con "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr "Solo hay capacidad para direcciones IPv4"
@ -1593,7 +1679,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Se acabaron los enchufes"
@ -1618,6 +1704,7 @@ msgstr ""
"construcción."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "ParallelBus todavía no soportado"
@ -1630,11 +1717,20 @@ msgstr ""
msgid "Permission denied"
msgstr "Permiso denegado"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "Pin no tiene capacidad ADC"
@ -1702,10 +1798,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "Pull no se usa cuando la dirección es output."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr "Error de desinicialización de RNG"
@ -1714,6 +1834,10 @@ msgstr "Error de desinicialización de RNG"
msgid "RNG Init Error"
msgstr "Error de inicialización de RNG"
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1721,6 +1845,7 @@ msgstr "Se especifica inversión de RS485 si no está en modo RS485"
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "Calibración de RTC no es soportada en esta placa"
@ -1729,7 +1854,7 @@ msgid "RTC is not supported on this board"
msgstr "RTC no soportado en esta placa"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr "Sin capacidad de RTS/CTS/RS485 para este dispositivo"
@ -1786,11 +1911,6 @@ msgstr "¡Corriendo en modo seguro! "
msgid "SD card CSD format not supported"
msgstr "Sin capacidad para formato CSD para tarjeta SD"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA o SCL necesitan una pull up"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1809,6 +1929,10 @@ msgstr "Error de inicio de SPI"
msgid "SPI Re-initialization error"
msgstr "Error de reinicialización de SPI"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "Sample rate debe ser positivo"
@ -1839,6 +1963,14 @@ msgstr "Serializer está siendo utilizado"
msgid "Server side context cannot have hostname"
msgstr "El contexto del lado del servidor no puede tener un hostname"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr "Sin capacidades para el tamaño"
@ -2017,6 +2149,10 @@ msgstr "Error de inicialización de UART"
msgid "UART Re-init error"
msgstr "Error de reinicialización de UART"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "Error de escritura UART"
@ -2080,7 +2216,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr "Tipo de uuid nrfx inesperado"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr "Error no manejado de ESP TLS %d %d %x %d"
@ -2123,7 +2259,8 @@ msgstr ""
"dispositivo fue denegada o ignorada."
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Baudrate no soportado"
@ -2174,6 +2311,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "ADVERTENCIA: El nombre de archivo de tu código tiene dos extensiones\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
"WatchDogTimer no se puede desinicializar luego de definirse en modo RESET"
@ -2388,7 +2526,7 @@ msgstr "Las secciones del buffer necesitan tener longitud igual"
msgid "buffer too small"
msgstr "buffer demasiado pequeño"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr "búfer muy pequeño para los bytes solicitados"
@ -3561,6 +3699,10 @@ msgstr "pop de un PulseIn vacío"
msgid "pop from empty %q"
msgstr "pop desde %q vacía"
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "el 3er argumento de pow() no puede ser 0"
@ -3577,6 +3719,7 @@ msgstr "pow() con 3 argumentos requiere enteros"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3594,6 +3737,14 @@ msgstr "presionando botón de arranque al inicio.\n"
msgid "pressing both buttons at start up.\n"
msgstr "presionando ambos botones al inicio.\n"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "desbordamiento de cola(queue)"
@ -3799,6 +3950,7 @@ msgstr "time.struct_time() toma un sequencio 9"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
"la duración de tiempo de espera ha excedido la capacidad máxima del valor"
@ -4082,6 +4234,9 @@ msgstr "zi debe ser de tipo flotante"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi debe ser una forma (n_section,2)"
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA o SCL necesitan una pull up"
#~ msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
#~ msgstr ""
#~ "%d pines de dirección y %d pines rgb indican una altura de %d, no de %d"

View File

@ -342,6 +342,10 @@ msgstr "Lahat ng I2C peripherals ginagamit"
msgid "All event channels in use"
msgstr "Lahat ng event channels ginagamit"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Lahat ng sync event channels ay ginagamit"
@ -390,6 +394,7 @@ msgstr ""
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "Hindi supportado ang AnalogOut"
@ -592,6 +597,7 @@ msgstr "Hindi mabura ang values"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "Hindi makakakuha ng pull habang nasa output mode"
@ -630,6 +636,10 @@ msgstr "Hindi ma-remount '/' kapag aktibo ang USB."
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr "Hindi ma-reset sa bootloader dahil walang bootloader."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "Hindi ma i-set ang value kapag ang direksyon ay input."
@ -870,11 +880,12 @@ msgstr "Ginagamit na ang EXTINT channel"
msgid "Error in regex"
msgstr "May pagkakamali sa REGEX"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -930,7 +941,7 @@ msgstr ""
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1058,6 +1069,10 @@ msgstr "I/O operasyon sa saradong file"
msgid "I2C Init Error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr ""
@ -1083,6 +1098,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr ""
@ -1095,6 +1114,31 @@ msgstr ""
msgid "Input/output error"
msgstr "May mali sa Input/Output"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr ""
@ -1146,7 +1190,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Mali ang PWM frequency"
@ -1240,6 +1284,8 @@ msgstr "Mali ang pin para sa kanang channel"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Mali ang pins"
@ -1268,7 +1314,7 @@ msgstr ""
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1276,10 +1322,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1296,10 +1338,6 @@ msgstr "May hindi tama sa wave file"
msgid "Invalid word/bit length"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr ""
@ -1361,6 +1399,36 @@ msgstr "Ang delay ng startup ng mikropono ay dapat na nasa 0.0 hanggang 1.0"
msgid "Missing MISO or MOSI Pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1414,14 +1482,14 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Walang RX pin"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Walang TX pin"
@ -1478,6 +1546,16 @@ msgstr ""
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
@ -1536,6 +1614,10 @@ msgstr "Odd na parity ay hindi supportado"
msgid "Only 8 or 16 bit mono with "
msgstr "Tanging 8 o 16 na bit mono na may "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1585,7 +1667,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1609,6 +1691,7 @@ msgstr ""
"PWM frequency hindi writable kapag variable_frequency ay False sa pag buo."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@ -1621,11 +1704,20 @@ msgstr ""
msgid "Permission denied"
msgstr "Walang pahintulot"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "Ang pin ay walang kakayahan sa ADC"
@ -1686,10 +1778,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "Pull hindi ginagamit kapag ang direksyon ay output."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr ""
@ -1698,6 +1814,10 @@ msgstr ""
msgid "RNG Init Error"
msgstr ""
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1705,6 +1825,7 @@ msgstr ""
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "RTC calibration ay hindi supportado ng board na ito"
@ -1713,7 +1834,7 @@ msgid "RTC is not supported on this board"
msgstr "Hindi supportado ang RTC sa board na ito"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr ""
@ -1771,11 +1892,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "Kailangan ng pull up resistors ang SDA o SCL"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1794,6 +1910,10 @@ msgstr ""
msgid "SPI Re-initialization error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "Sample rate ay dapat positibo"
@ -1824,6 +1944,14 @@ msgstr "Serializer ginagamit"
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr ""
@ -1988,6 +2116,10 @@ msgstr ""
msgid "UART Re-init error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr ""
@ -2052,7 +2184,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr "hindi inaasahang indent"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2093,7 +2225,8 @@ msgid ""
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Hindi supportadong baudrate"
@ -2147,6 +2280,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "BABALA: Ang pangalan ng file ay may dalawang extension\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2359,7 +2493,7 @@ msgstr "aarehas na haba dapat ang buffer slices"
msgid "buffer too small"
msgstr "masyadong maliit ang buffer"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3537,6 +3671,10 @@ msgstr "pop mula sa walang laman na PulseIn"
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "pow() 3rd argument ay hindi maaring 0"
@ -3553,6 +3691,7 @@ msgstr "pow() na may 3 argumento kailangan ng integers"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3570,6 +3709,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "puno na ang pila (overflow)"
@ -3776,6 +3923,7 @@ msgstr "time.struct_time() kumukuha ng 9-sequence"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
@ -4061,6 +4209,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "Kailangan ng pull up resistors ang SDA o SCL"
#~ msgid "tuple index out of range"
#~ msgstr "indeks ng tuple wala sa sakop"

View File

@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-17 12:55+0000\n"
"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
"PO-Revision-Date: 2021-01-30 02:32+0000\n"
"Last-Translator: Antonin ENFRUN <antonin.e@me.com>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
@ -54,7 +54,7 @@ msgstr " Fichier \"%q\", ligne %d"
#: py/builtinhelp.c
msgid " is of type %q\n"
msgstr ""
msgstr " est de type %q\n"
#: main.c
msgid " output:\n"
@ -70,6 +70,8 @@ msgstr "%%c nécessite un chiffre entier 'int' ou un caractère 'char'"
msgid ""
"%d address pins, %d rgb pins and %d tiles indicate a height of %d, not %d"
msgstr ""
"%d broches d'adresse, %d broches RGB et %d pour tile indique une hauteur de "
"%d, et non %d"
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
msgid "%q failure: %d"
@ -348,6 +350,10 @@ msgstr "Tous les périphériques UART sont utilisés"
msgid "All event channels in use"
msgstr "Tous les canaux d'événements sont utilisés"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Tous les canaux d'événements sync (sync event channels) sont utilisés"
@ -396,6 +402,7 @@ msgstr "'AnalogOut' n'est pas supporté sur la broche indiquée"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "Fonctionnalité AnalogOut non supportée"
@ -606,6 +613,7 @@ msgstr "Impossible de supprimer les valeurs"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "Ne peut être tiré ('pull') en mode sortie ('output')"
@ -646,6 +654,10 @@ msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
"Ne peut être redémarré vers le bootloader car il n'y a pas de bootloader."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr ""
@ -832,7 +844,7 @@ msgstr "La broche 'Data 0' doit être aligné sur l'octet"
#: ports/esp32s2/common-hal/displayio/ParallelBus.c
msgid "Data 0 pin must be byte aligned."
msgstr ""
msgstr "La broche Data 0 doit être aligné sur l'octet."
#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
@ -889,11 +901,12 @@ msgstr "Canal EXTINT déjà utilisé"
msgid "Error in regex"
msgstr "Erreur dans l'expression régulière"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
msgstr "Erreur : Impossible de lier"
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -948,7 +961,7 @@ msgstr "La FFT est définie uniquement pour les ndarrays"
msgid "FFT is implemented for linear arrays only"
msgstr "FFT n'est implémenté que pour les tableaux linéaires"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr "Échec du handshake SSL"
@ -1078,6 +1091,10 @@ msgstr "Opération d'E/S sur un fichier fermé"
msgid "I2C Init Error"
msgstr "Erreur d'initialisation I2C"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr "I2SOut n'est pas disponible"
@ -1103,6 +1120,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "Taille de tampon incorrecte"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr "Échec d'initialisation par manque de mémoire"
@ -1115,6 +1136,31 @@ msgstr "L'entrée prend trop de temps"
msgid "Input/output error"
msgstr "Erreur d'entrée/sortie"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "Authentification insuffisante"
@ -1166,7 +1212,7 @@ msgstr "Broche DAC non valide fournie"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Fréquence de PWM invalide"
@ -1260,6 +1306,8 @@ msgstr "Broche invalide pour le canal droit"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Broches invalides"
@ -1288,18 +1336,14 @@ msgstr "'security_mode' invalide"
msgid "Invalid size"
msgstr "Taille invalide"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
msgstr "Socket non valide pour TLS"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr "État invalide"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Voix invalide"
@ -1316,10 +1360,6 @@ msgstr "Fichier WAVE invalide"
msgid "Invalid word/bit length"
msgstr "Longueur de mot / bit invalide"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "La clé doit comporter 16, 24 ou 32 octets"
@ -1381,6 +1421,36 @@ msgstr "Le délais au démarrage du micro doit être entre 0.0 et 1.0"
msgid "Missing MISO or MOSI Pin"
msgstr "Broche MISO ou MOSI manquante"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Doit être une sous-classe de %q."
@ -1434,14 +1504,14 @@ msgstr "Pas de broche MOSI"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Pas de broche RX"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Pas de broche TX"
@ -1498,6 +1568,16 @@ msgstr "Plus de minuteurs disponibles sur cette broche."
msgid "No network with that ssid"
msgstr "Aucun réseau avec ce ssid"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "Pas de pulldown sur la broche ; 1Mohm recommandé"
@ -1555,6 +1635,10 @@ msgstr "Parité impaire non supportée"
msgid "Only 8 or 16 bit mono with "
msgstr "Uniquement 8 ou 16 bit mono avec "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr "Seulement les adresses IPv4 sont supportées"
@ -1608,7 +1692,7 @@ msgstr "Timeout de l'opération"
msgid "Out of memory"
msgstr "Hors de mémoire"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Plus de sockets"
@ -1635,6 +1719,7 @@ msgstr ""
"à la construction."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "ParallelBus pas encore supporté"
@ -1647,11 +1732,20 @@ msgstr "Périphérique en utilisation"
msgid "Permission denied"
msgstr "Permission refusée"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "La broche 'pin' ne supporte pas les capacitées ADC"
@ -1722,10 +1816,34 @@ msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
"Feinte de someil profond jusqu'à l'alarme, CTRL-C ou écriture au fichier.\n"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "Le tirage 'pull' n'est pas utilisé quand la direction est 'output'."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr "Erreur de désinitiation du RNG (RNG DeInit)"
@ -1734,6 +1852,10 @@ msgstr "Erreur de désinitiation du RNG (RNG DeInit)"
msgid "RNG Init Error"
msgstr "Erreur d'initialisation du RNG (RNG Init)"
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1741,6 +1863,7 @@ msgstr "Inversion RS485 spécifiée sans être en mode RS485"
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "La calibration du RTC non supportée sur cette carte"
@ -1749,7 +1872,7 @@ msgid "RTC is not supported on this board"
msgstr "RTC non supporté sur cette carte"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr "RTS / CTS / RS485 Pas encore supporté sur cet appareil"
@ -1806,11 +1929,6 @@ msgstr "Exécution en mode sécurisé! "
msgid "SD card CSD format not supported"
msgstr "Le format de carte SD CSD n'est pas supporté"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1829,6 +1947,10 @@ msgstr "Erreur d'initialisation SPI"
msgid "SPI Re-initialization error"
msgstr "Erreur de réinitialisation SPI"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "Le taux d'échantillonage doit être positif"
@ -1859,6 +1981,14 @@ msgstr "Sérialiseur en cours d'utilisation"
msgid "Server side context cannot have hostname"
msgstr "Un contexte niveau serveur ne peut avoir de hostname"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr "Taille n'est pas supportée"
@ -2035,6 +2165,10 @@ msgstr "Erreur d'initialisation UART"
msgid "UART Re-init error"
msgstr "Erreur de réinitialisation UART"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "Erreur d'écriture UART"
@ -2101,7 +2235,7 @@ msgstr "Écriture impossible vers sleep_memory."
msgid "Unexpected nrfx uuid type"
msgstr "Type inattendu pour l'uuid nrfx"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr "Erreur ESP TLS non gérée %d %d %x %d"
@ -2145,7 +2279,8 @@ msgstr ""
"appareil ait été refusée ou ignorée."
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Débit en bauds non supporté"
@ -2197,6 +2332,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "ATTENTION : le nom de fichier de votre code a deux extensions\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
"WatchDogTimer ne peut pas être désinitialisé une fois que le mode est réglé "
@ -2411,7 +2547,7 @@ msgstr "les tranches de tampon doivent être de longueurs égales"
msgid "buffer too small"
msgstr "tampon trop petit"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr "tampon trop petit pour le nombre d'octets demandé"
@ -3423,7 +3559,7 @@ msgstr "le nombre de points doit être d'au moins 2"
#: py/builtinhelp.c
msgid "object "
msgstr ""
msgstr "objet "
#: py/obj.c
msgid "object '%q' is not a tuple or list"
@ -3596,6 +3732,10 @@ msgstr "'pop' d'une entrée PulseIn vide"
msgid "pop from empty %q"
msgstr "pop sur %q vide"
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "le 3e argument de pow() ne peut être 0"
@ -3612,6 +3752,7 @@ msgstr "pow() avec 3 arguments nécessite des entiers"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3629,6 +3770,14 @@ msgstr "bouton boot appuyé lors du démarrage.\n"
msgid "pressing both buttons at start up.\n"
msgstr "les deux boutons appuyés lors du démarrage.\n"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "dépassement de file"
@ -3827,7 +3976,7 @@ msgstr "le seuil doit être dans la portée 0-65536"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "tile must be greater than zero"
msgstr ""
msgstr "tile doit être plus que zéro"
#: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence"
@ -3835,6 +3984,7 @@ msgstr "time.struct_time() prend une séquence de longueur 9"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "le délai d'expiration a dépassé la valeur maximale prise en charge"
@ -4047,11 +4197,11 @@ msgstr "watchdog timeout doit être supérieur à 0"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "width must be greater than zero"
msgstr "width doit être plus grand que zero"
msgstr "width doit être plus que zero"
#: ports/esp32s2/common-hal/wifi/Radio.c
msgid "wifi is not enabled"
msgstr ""
msgstr "wifi nest pas activé"
#: shared-bindings/_bleio/Adapter.c
msgid "window must be <= interval"
@ -4117,6 +4267,15 @@ msgstr "zi doit être de type float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi doit être de forme (n_section, 2)"
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')"
#~ msgid "Invalid use of TLS Socket"
#~ msgstr "Utilisation incorrecte de socket TLS"
#~ msgid "Issue setting SO_REUSEADDR"
#~ msgstr "Problème en activant SO_REUSEADDR"
#~ msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
#~ msgstr ""
#~ "Les broches d'adresse %d et les broches RVB %d indiquent une hauteur de "

View File

@ -339,6 +339,10 @@ msgstr ""
msgid "All event channels in use"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr ""
@ -387,6 +391,7 @@ msgstr ""
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr ""
@ -586,6 +591,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr ""
@ -623,6 +629,10 @@ msgstr ""
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr ""
@ -859,11 +869,12 @@ msgstr ""
msgid "Error in regex"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -917,7 +928,7 @@ msgstr ""
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1045,6 +1056,10 @@ msgstr ""
msgid "I2C Init Error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr ""
@ -1068,6 +1083,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr ""
@ -1080,6 +1099,31 @@ msgstr ""
msgid "Input/output error"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr ""
@ -1131,7 +1175,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr ""
@ -1225,6 +1269,8 @@ msgstr ""
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr ""
@ -1253,7 +1299,7 @@ msgstr ""
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1261,10 +1307,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1281,10 +1323,6 @@ msgstr ""
msgid "Invalid word/bit length"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr ""
@ -1346,6 +1384,36 @@ msgstr ""
msgid "Missing MISO or MOSI Pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1399,14 +1467,14 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr ""
@ -1463,6 +1531,16 @@ msgstr ""
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
@ -1518,6 +1596,10 @@ msgstr ""
msgid "Only 8 or 16 bit mono with "
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1567,7 +1649,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1590,6 +1672,7 @@ msgid ""
msgstr ""
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@ -1602,11 +1685,20 @@ msgstr ""
msgid "Permission denied"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr ""
@ -1667,10 +1759,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr ""
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr ""
@ -1679,6 +1795,10 @@ msgstr ""
msgid "RNG Init Error"
msgstr ""
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1686,6 +1806,7 @@ msgstr ""
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr ""
@ -1694,7 +1815,7 @@ msgid "RTC is not supported on this board"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr ""
@ -1751,11 +1872,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1774,6 +1890,10 @@ msgstr ""
msgid "SPI Re-initialization error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
@ -1804,6 +1924,14 @@ msgstr ""
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr ""
@ -1968,6 +2096,10 @@ msgstr ""
msgid "UART Re-init error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr ""
@ -2031,7 +2163,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2072,7 +2204,8 @@ msgid ""
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr ""
@ -2123,6 +2256,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2328,7 +2462,7 @@ msgstr ""
msgid "buffer too small"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3488,6 +3622,10 @@ msgstr ""
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr ""
@ -3504,6 +3642,7 @@ msgstr ""
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3521,6 +3660,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr ""
@ -3724,6 +3871,7 @@ msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""

View File

@ -341,6 +341,10 @@ msgstr "Tutte le periferiche I2C sono in uso"
msgid "All event channels in use"
msgstr "Tutti i canali eventi utilizati"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Tutti i canali di eventi sincronizzati in uso"
@ -389,6 +393,7 @@ msgstr ""
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "funzionalità AnalogOut non supportata"
@ -592,6 +597,7 @@ msgstr "Impossibile cancellare valori"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "non si può tirare quando nella modalita output"
@ -631,6 +637,10 @@ msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
"Impossibile resettare nel bootloader poiché nessun bootloader è presente."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "non si può impostare un valore quando direzione è input"
@ -870,11 +880,12 @@ msgstr "Canale EXTINT già in uso"
msgid "Error in regex"
msgstr "Errore nella regex"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -930,7 +941,7 @@ msgstr ""
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1058,6 +1069,10 @@ msgstr "operazione I/O su file chiuso"
msgid "I2C Init Error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr ""
@ -1083,6 +1098,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr ""
@ -1095,6 +1114,31 @@ msgstr ""
msgid "Input/output error"
msgstr "Errore input/output"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr ""
@ -1146,7 +1190,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Frequenza PWM non valida"
@ -1242,6 +1286,8 @@ msgstr "Pin non valido per il canale destro"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Pin non validi"
@ -1270,7 +1316,7 @@ msgstr ""
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1278,10 +1324,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1299,10 +1341,6 @@ msgstr "File wave non valido"
msgid "Invalid word/bit length"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr ""
@ -1365,6 +1403,36 @@ msgstr ""
msgid "Missing MISO or MOSI Pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1418,14 +1486,14 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Nessun pin RX"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Nessun pin TX"
@ -1482,6 +1550,16 @@ msgstr ""
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
@ -1541,6 +1619,10 @@ msgstr "operazione I2C non supportata"
msgid "Only 8 or 16 bit mono with "
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1590,7 +1672,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1618,6 +1700,7 @@ msgstr ""
"impostato nel costruttore a False."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@ -1630,11 +1713,20 @@ msgstr ""
msgid "Permission denied"
msgstr "Permesso negato"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "Il pin non ha capacità di ADC"
@ -1696,10 +1788,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr ""
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr ""
@ -1708,6 +1824,10 @@ msgstr ""
msgid "RNG Init Error"
msgstr ""
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1715,6 +1835,7 @@ msgstr ""
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "calibrazione RTC non supportata su questa scheda"
@ -1723,7 +1844,7 @@ msgid "RTC is not supported on this board"
msgstr "RTC non supportato su questa scheda"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr ""
@ -1781,11 +1902,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA o SCL necessitano un pull-up"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1804,6 +1920,10 @@ msgstr ""
msgid "SPI Re-initialization error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
#, fuzzy
msgid "Sample rate must be positive"
@ -1836,6 +1956,14 @@ msgstr "Serializer in uso"
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr ""
@ -2000,6 +2128,10 @@ msgstr ""
msgid "UART Re-init error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr ""
@ -2064,7 +2196,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr "indentazione inaspettata"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2105,7 +2237,8 @@ msgid ""
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "baudrate non supportato"
@ -2157,6 +2290,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "ATTENZIONE: Il nome del sorgente ha due estensioni\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2365,7 +2499,7 @@ msgstr "slice del buffer devono essere della stessa lunghezza"
msgid "buffer too small"
msgstr "buffer troppo piccolo"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3545,6 +3679,10 @@ msgstr "pop sun un PulseIn vuoto"
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "il terzo argomento di pow() non può essere 0"
@ -3561,6 +3699,7 @@ msgstr "pow() con 3 argomenti richiede interi"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3578,6 +3717,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "overflow della coda"
@ -3784,6 +3931,7 @@ msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
@ -4069,6 +4217,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA o SCL necessitano un pull-up"
#~ msgid "tuple index out of range"
#~ msgstr "indice della tupla fuori intervallo"

View File

@ -344,6 +344,10 @@ msgstr "全てのUART周辺機器が使用中"
msgid "All event channels in use"
msgstr "全てのイベントチャネルが使用中"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "全ての同期イベントチャネルが使用中"
@ -392,6 +396,7 @@ msgstr "指定のピンはAnalogInに対応していません"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "AnalogOut機能に対応していません"
@ -595,6 +600,7 @@ msgstr "値を削除できません"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "出力モード時はpullを取得できません"
@ -632,6 +638,10 @@ msgstr "USBがアクティブの時に'/'を再マウントできません"
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr "ブートローダが存在しないためブートローダへとリセットできません"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "方向がinputのときは値を設定できません"
@ -870,11 +880,12 @@ msgstr "EXTINTチャネルはすでに使用されています"
msgid "Error in regex"
msgstr "正規表現にエラーがあります"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -928,7 +939,7 @@ msgstr "FFTはndarrayでのみ使えます"
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1056,6 +1067,10 @@ msgstr "閉じられたファイルへのI/O操作"
msgid "I2C Init Error"
msgstr "I2C初期化エラー"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr "I2SOutが利用できません"
@ -1081,6 +1096,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "バッファサイズが正しくありません"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr ""
@ -1093,6 +1112,31 @@ msgstr ""
msgid "Input/output error"
msgstr "入力/出力エラー"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "認証が不十分"
@ -1144,7 +1188,7 @@ msgstr "不正なDACピンが与えられました"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "無効なPWM周波数"
@ -1238,6 +1282,8 @@ msgstr "右チャネルのピンが不正"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "ピンが不正"
@ -1266,7 +1312,7 @@ msgstr "不正なsecurity_mode"
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1274,10 +1320,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "不正なボイス"
@ -1294,10 +1336,6 @@ msgstr "不正なwaveファイル"
msgid "Invalid word/bit length"
msgstr "不正なワード/ビット長"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "Keyの長さは、16, 24, 32バイトのいずれかでなければなりません"
@ -1359,6 +1397,36 @@ msgstr "マイクのスタートアップディレイは 0.0 から 1.0 の間
msgid "Missing MISO or MOSI Pin"
msgstr "MISOまたはMOSIピンがありません"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "%q のサブクラスでなければなりません"
@ -1412,14 +1480,14 @@ msgstr "MOSIピンがありません"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "RXピンがありません"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "TXピンがありません"
@ -1476,6 +1544,16 @@ msgstr "このピンには使えるタイマーがもうありません"
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "ピンにプルダウンがありません。1Mオーム推奨"
@ -1533,6 +1611,10 @@ msgstr "奇数パリティには対応していません"
msgid "Only 8 or 16 bit mono with "
msgstr "8または16ビットの "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1582,7 +1664,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1606,6 +1688,7 @@ msgid ""
msgstr "PWM周波数は生成時のvariable_frequencyがFalseのとき書き換え不可"
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "ParallelBusにはまだ対応していません"
@ -1618,11 +1701,20 @@ msgstr ""
msgid "Permission denied"
msgstr "パーミッション拒否"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "ピンにADCの能力がありません"
@ -1683,10 +1775,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "方向がoutputのときpullは使われません"
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr "RNG解体エラー"
@ -1695,6 +1811,10 @@ msgstr "RNG解体エラー"
msgid "RNG Init Error"
msgstr "乱数生成器の初期化エラー"
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1702,6 +1822,7 @@ msgstr ""
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "このボードはRTCのキャリブレーションに非対応"
@ -1710,7 +1831,7 @@ msgid "RTC is not supported on this board"
msgstr "このボードはRTCに対応していません"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr "RTS/CTS/RS485はこのデバイスでは未対応"
@ -1767,11 +1888,6 @@ msgstr "セーフモードで実行中! "
msgid "SD card CSD format not supported"
msgstr "SDカードのCSDフォーマットは非対応"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDAとSCLにプルアップが必要"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1790,6 +1906,10 @@ msgstr "SPI初期化エラー"
msgid "SPI Re-initialization error"
msgstr "SPI再初期化エラー"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "サンプルレートは正数でなければなりません"
@ -1820,6 +1940,14 @@ msgstr "シリアライザは使用中"
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr "サイズは対応していません"
@ -1990,6 +2118,10 @@ msgstr "UARTの初期化エラー"
msgid "UART Re-init error"
msgstr "UARTの再初期化エラー"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "UART書き込みエラー"
@ -2054,7 +2186,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr "想定されていないnrfx UUID型"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2095,7 +2227,8 @@ msgid ""
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "非対応のbaudrate"
@ -2146,6 +2279,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2351,7 +2485,7 @@ msgstr "バッファのスライスは同じ長さでなければなりません
msgid "buffer too small"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3518,6 +3652,10 @@ msgstr ""
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "pow()の3つ目の引数は0にできません"
@ -3534,6 +3672,7 @@ msgstr "pow()の第3引数には整数が必要"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3551,6 +3690,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "キューがオーバーフローしました"
@ -3755,6 +3902,7 @@ msgstr "time.struct_time()は9要素のシーケンスを受け取ります"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "タイムアウト長は対応する最大値を超えています"
@ -4037,6 +4185,9 @@ msgstr "ziはfloat値でなければなりません"
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDAとSCLにプルアップが必要"
#~ msgid ""
#~ "\n"
#~ "Code done running. Waiting for reload.\n"

View File

@ -340,6 +340,10 @@ msgstr "사용중인 모든 UART주변 기기"
msgid "All event channels in use"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr ""
@ -388,6 +392,7 @@ msgstr ""
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr ""
@ -589,6 +594,7 @@ msgstr "값을 삭제할 수 없습니다"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr ""
@ -626,6 +632,10 @@ msgstr ""
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr ""
@ -862,11 +872,12 @@ msgstr ""
msgid "Error in regex"
msgstr "Regex에 오류가 있습니다."
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -920,7 +931,7 @@ msgstr ""
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1048,6 +1059,10 @@ msgstr ""
msgid "I2C Init Error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr ""
@ -1071,6 +1086,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr ""
@ -1083,6 +1102,31 @@ msgstr ""
msgid "Input/output error"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr ""
@ -1134,7 +1178,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr ""
@ -1228,6 +1272,8 @@ msgstr "오른쪽 채널 핀이 잘못되었습니다"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "핀이 유효하지 않습니다"
@ -1256,7 +1302,7 @@ msgstr ""
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1264,10 +1310,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1284,10 +1326,6 @@ msgstr ""
msgid "Invalid word/bit length"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr ""
@ -1349,6 +1387,36 @@ msgstr ""
msgid "Missing MISO or MOSI Pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1402,14 +1470,14 @@ msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr ""
@ -1466,6 +1534,16 @@ msgstr ""
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
@ -1521,6 +1599,10 @@ msgstr ""
msgid "Only 8 or 16 bit mono with "
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1570,7 +1652,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1593,6 +1675,7 @@ msgid ""
msgstr ""
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr ""
@ -1605,11 +1688,20 @@ msgstr ""
msgid "Permission denied"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr ""
@ -1670,10 +1762,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr ""
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr ""
@ -1682,6 +1798,10 @@ msgstr ""
msgid "RNG Init Error"
msgstr ""
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1689,6 +1809,7 @@ msgstr ""
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr ""
@ -1697,7 +1818,7 @@ msgid "RTC is not supported on this board"
msgstr ""
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr ""
@ -1754,11 +1875,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr ""
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1777,6 +1893,10 @@ msgstr ""
msgid "SPI Re-initialization error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr ""
@ -1807,6 +1927,14 @@ msgstr ""
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr ""
@ -1971,6 +2099,10 @@ msgstr ""
msgid "UART Re-init error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr ""
@ -2035,7 +2167,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2076,7 +2208,8 @@ msgid ""
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr ""
@ -2127,6 +2260,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr ""
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2332,7 +2466,7 @@ msgstr ""
msgid "buffer too small"
msgstr ""
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3492,6 +3626,10 @@ msgstr ""
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr ""
@ -3508,6 +3646,7 @@ msgstr ""
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3525,6 +3664,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr ""
@ -3728,6 +3875,7 @@ msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""

View File

@ -342,6 +342,10 @@ msgstr "Alle UART peripherals zijn in gebruik"
msgid "All event channels in use"
msgstr "Alle event kanalen zijn in gebruik"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Alle sync event kanalen zijn in gebruik"
@ -390,6 +394,7 @@ msgstr "AnalogIn niet ondersteund door gegeven pin"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "AnalogOut functionaliteit niet ondersteund"
@ -591,6 +596,7 @@ msgstr "Kan waardes niet verwijderen"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "get pull kan niet gedurende output mode"
@ -630,6 +636,10 @@ msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
"Kan niet resetten naar bootloader omdat er geen bootloader aanwezig is."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "Kan de waarde niet toewijzen als de richting input is."
@ -870,11 +880,12 @@ msgstr "EXTINT kanaal al in gebruik"
msgid "Error in regex"
msgstr "Fout in regex"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -928,7 +939,7 @@ msgstr "FFT alleen voor ndarrays gedefineerd"
msgid "FFT is implemented for linear arrays only"
msgstr "FFT is alleen geïmplementeerd voor lineaire arrays"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr "SSL handdruk mislukt"
@ -1057,6 +1068,10 @@ msgstr "I/O actie op gesloten bestand"
msgid "I2C Init Error"
msgstr "I2C Init Fout"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr "I2SOut is niet beschikbaar"
@ -1082,6 +1097,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "Incorrecte buffer grootte"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr "De initialisatie is mislukt vanwege een gebrek aan geheugen"
@ -1094,6 +1113,31 @@ msgstr "Invoer duurt te lang"
msgid "Input/output error"
msgstr "Input/Output fout"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "Onvoldoende authenticatie"
@ -1145,7 +1189,7 @@ msgstr "Ongeldige DAC pin opgegeven"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Ongeldige PWM frequentie"
@ -1239,6 +1283,8 @@ msgstr "Ongeldige pin voor rechter kanaal"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Ongeldige pinnen"
@ -1267,7 +1313,7 @@ msgstr "Ongeldige security_mode"
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1275,10 +1321,6 @@ msgstr ""
msgid "Invalid state"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Ongeldige stem"
@ -1295,10 +1337,6 @@ msgstr "Ongeldig wave bestand"
msgid "Invalid word/bit length"
msgstr "Ongeldig woord/bit lengte"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "Sleutel moet 16, 24, of 32 bytes lang zijn"
@ -1360,6 +1398,36 @@ msgstr "Microfoon opstart vertraging moet in bereik van 0.0 tot 1.0 zijn"
msgid "Missing MISO or MOSI Pin"
msgstr "Ontbrekende MISO of MOSI Pin"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "%q moet een subklasse zijn."
@ -1413,14 +1481,14 @@ msgstr "Geen MOSI pin"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Geen RX pin"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Geen TX pin"
@ -1477,6 +1545,16 @@ msgstr "Geen timers meer beschikbaar op deze pin."
msgid "No network with that ssid"
msgstr "Geen netwerk met dat SSID gevonden"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "Geen pulldown op pin; 1MOhm aangeraden"
@ -1534,6 +1612,10 @@ msgstr "Oneven pariteit is niet ondersteund"
msgid "Only 8 or 16 bit mono with "
msgstr "Alleen 8 of 16 bit mono met "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr "Alleen IPv4 adressen worden ondersteund"
@ -1587,7 +1669,7 @@ msgstr ""
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Geen sockets meer beschikbaar"
@ -1613,6 +1695,7 @@ msgstr ""
"tijdens constructie."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "ParallelBus nog niet ondersteund"
@ -1625,11 +1708,20 @@ msgstr ""
msgid "Permission denied"
msgstr "Toegang geweigerd"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "Pin heeft geen ADC mogelijkheden"
@ -1699,10 +1791,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "Pull niet gebruikt wanneer de richting output is."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr "RNG DeInit Fout"
@ -1711,6 +1827,10 @@ msgstr "RNG DeInit Fout"
msgid "RNG Init Error"
msgstr "RNG Init Fout"
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1718,6 +1838,7 @@ msgstr "RS485 inversie gespecificeerd terwijl niet in RS485 modus"
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "RTC calibratie niet ondersteund door dit board"
@ -1726,7 +1847,7 @@ msgid "RTC is not supported on this board"
msgstr "RTC is niet ondersteund door dit board"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr "RTS/CTS/RS485 Nog niet ondersteund door dit apparaat"
@ -1783,11 +1904,6 @@ msgstr "Veilige modus wordt uitgevoerd! "
msgid "SD card CSD format not supported"
msgstr "SD kaart CSD formaat niet ondersteund"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA of SCL hebben een pullup nodig"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1806,6 +1922,10 @@ msgstr "SPI Init Fout"
msgid "SPI Re-initialization error"
msgstr "SPI Herinitialisatie Fout"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "Sample rate moet positief zijn"
@ -1836,6 +1956,14 @@ msgstr "Serializer in gebruik"
msgid "Server side context cannot have hostname"
msgstr "Context aan de serverkant kan geen hostnaam hebben"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr "Afmeting niet ondersteund"
@ -2010,6 +2138,10 @@ msgstr "UART Init Fout"
msgid "UART Re-init error"
msgstr "UART Re-init Fout"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "UART schrijf fout"
@ -2073,7 +2205,7 @@ msgstr "Kan niet naar sleep_memory schrijven."
msgid "Unexpected nrfx uuid type"
msgstr "Onverwacht mrfx uuid type"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr "Niet behandelde ESP TLS fout %d %d %x %d"
@ -2116,7 +2248,8 @@ msgstr ""
"apparaat geweigerd of genegeerd werd."
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Niet-ondersteunde baudsnelheid"
@ -2167,6 +2300,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "WAARSCHUWING: De bestandsnaam van de code heeft twee extensies\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
"WatchDogTimer kan niet worden gedeïnitialiseerd zodra de modus in ingesteld "
@ -2381,7 +2515,7 @@ msgstr "buffer slices moeten van gelijke grootte zijn"
msgid "buffer too small"
msgstr "buffer te klein"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr "buffer te klein voor gevraagde bytes"
@ -3550,6 +3684,10 @@ msgstr "pop van een lege PulseIn"
msgid "pop from empty %q"
msgstr "pop van een lege %q"
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "derde argument van pow() mag geen 0 zijn"
@ -3566,6 +3704,7 @@ msgstr "pow() met 3 argumenten vereist integers"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3583,6 +3722,14 @@ msgstr "druk bootknop in bij opstarten.\n"
msgid "pressing both buttons at start up.\n"
msgstr "druk beide knoppen in bij opstarten.\n"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "wachtrij overloop"
@ -3788,6 +3935,7 @@ msgstr "time.struct_time() accepteert een 9-rij"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "time-outduur is groter dan de ondersteunde maximale waarde"
@ -4070,6 +4218,9 @@ msgstr "zi moet van type float zijn"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi moet vorm (n_section, 2) hebben"
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA of SCL hebben een pullup nodig"
#~ msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
#~ msgstr "%d adres pins en %d RGB pins geven een hoogte van %d aan, niet %d"

View File

@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-27 01:31+0000\n"
"PO-Revision-Date: 2021-02-10 21:50+0000\n"
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
"Language-Team: pl\n"
"Language: pl\n"
@ -344,6 +344,10 @@ msgstr "Wszystkie peryferia UART w użyciu"
msgid "All event channels in use"
msgstr "Wszystkie kanały zdarzeń w użyciu"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr ""
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Wszystkie kanały zdarzeń synchronizacji w użyciu"
@ -392,6 +396,7 @@ msgstr "AnalogIn nie jest obsługiwany na danym pinie"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "AnalogOut jest niewspierane"
@ -593,6 +598,7 @@ msgstr "Nie można usunąć"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "Nie ma podciągnięcia w trybie wyjścia"
@ -630,6 +636,10 @@ msgstr "Nie można przemontować '/' gdy USB działa."
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr "Nie można zrestartować -- nie ma bootloadera."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "Nie można ustawić wartości w trybie wejścia."
@ -870,11 +880,12 @@ msgstr "Kanał EXTINT w użyciu"
msgid "Error in regex"
msgstr "Błąd w regex"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr ""
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -928,7 +939,7 @@ msgstr ""
msgid "FFT is implemented for linear arrays only"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr ""
@ -1056,6 +1067,10 @@ msgstr "Operacja I/O na zamkniętym pliku"
msgid "I2C Init Error"
msgstr "Błąd inicjalizacji I2C"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr ""
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr "I2SOut niedostępne"
@ -1081,6 +1096,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "Niewłaściwa wielkość bufora"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr ""
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr "Inicjalizacja nie powiodła się z powodu braku pamięci"
@ -1093,6 +1112,31 @@ msgstr ""
msgid "Input/output error"
msgstr "Błąd I/O"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr ""
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "Niewystarczające uwierzytelnienie"
@ -1144,7 +1188,7 @@ msgstr ""
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Zła częstotliwość PWM"
@ -1238,6 +1282,8 @@ msgstr "Zła nóżka dla prawego kanału"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Złe nóżki"
@ -1266,7 +1312,7 @@ msgstr "Nieprawidłowy security_mode"
msgid "Invalid size"
msgstr "Nieprawidłowy rozmiar"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr ""
@ -1274,10 +1320,6 @@ msgstr ""
msgid "Invalid state"
msgstr "Nieprawidłowy stan"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1294,10 +1336,6 @@ msgstr "Zły plik wave"
msgid "Invalid word/bit length"
msgstr "Niepoprawna długość słowa/bitu"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr ""
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "Klucz musi mieć długość 16, 24 lub 32 bajtów"
@ -1360,6 +1398,36 @@ msgstr "Opóźnienie włączenia mikrofonu musi być w zakresie od 0.0 do 1.0"
msgid "Missing MISO or MOSI Pin"
msgstr "Brak pinu MISO lub MOSI"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr ""
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr ""
@ -1413,14 +1481,14 @@ msgstr "Brak pinu MOSI"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Brak nóżki RX"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Brak nóżki TX"
@ -1477,6 +1545,16 @@ msgstr ""
msgid "No network with that ssid"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr ""
@ -1532,6 +1610,10 @@ msgstr "Nieparzysta parzystość nie jest wspierana"
msgid "Only 8 or 16 bit mono with "
msgstr "Tylko 8 lub 16 bitów mono z "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr ""
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr ""
@ -1581,7 +1663,7 @@ msgstr ""
msgid "Out of memory"
msgstr "Brak pamięci"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1604,6 +1686,7 @@ msgid ""
msgstr "Nie można zmienić częstotliwości PWM gdy variable_frequency=False."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "ParallelBus nie jest jeszcze obsługiwany"
@ -1616,11 +1699,20 @@ msgstr ""
msgid "Permission denied"
msgstr "Odmowa dostępu"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr ""
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "Nóżka nie obsługuje ADC"
@ -1681,10 +1773,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr ""
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr ""
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "Podciągnięcie nieużywane w trybie wyjścia."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr ""
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr ""
@ -1693,6 +1809,10 @@ msgstr ""
msgid "RNG Init Error"
msgstr ""
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr ""
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1700,6 +1820,7 @@ msgstr ""
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "Brak obsługi kalibracji RTC"
@ -1708,7 +1829,7 @@ msgid "RTC is not supported on this board"
msgstr "Brak obsługi RTC"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr ""
@ -1765,11 +1886,6 @@ msgstr ""
msgid "SD card CSD format not supported"
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA lub SCL wymagają podciągnięcia"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1788,6 +1904,10 @@ msgstr "Błąd inicjowania SPI"
msgid "SPI Re-initialization error"
msgstr "Błąd ponownej inicjalizacji SPI"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "Częstotliwość próbkowania musi być dodatnia"
@ -1818,6 +1938,14 @@ msgstr "Serializator w użyciu"
msgid "Server side context cannot have hostname"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr ""
@ -1982,6 +2110,10 @@ msgstr ""
msgid "UART Re-init error"
msgstr ""
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr ""
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "Błąd zapisu UART"
@ -2045,7 +2177,7 @@ msgstr ""
msgid "Unexpected nrfx uuid type"
msgstr "Nieoczekiwany typ nrfx uuid"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr ""
@ -2086,7 +2218,8 @@ msgid ""
msgstr ""
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Zła szybkość transmisji"
@ -2137,6 +2270,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "UWAGA: Nazwa pliku ma dwa rozszerzenia\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
@ -2348,7 +2482,7 @@ msgstr "fragmenty bufora muszą mieć tę samą długość"
msgid "buffer too small"
msgstr "zbyt mały bufor"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr ""
@ -3510,6 +3644,10 @@ msgstr "pop z pustego PulseIn"
msgid "pop from empty %q"
msgstr ""
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "trzeci argument pow() nie może być 0"
@ -3526,6 +3664,7 @@ msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3543,6 +3682,14 @@ msgstr ""
msgid "pressing both buttons at start up.\n"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr ""
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr ""
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "przepełnienie kolejki"
@ -3747,6 +3894,7 @@ msgstr "time.struct_time() wymaga 9-elementowej sekwencji"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr ""
@ -3959,7 +4107,7 @@ msgstr ""
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "width must be greater than zero"
msgstr ""
msgstr "szerokość musi być większa niż zero"
#: ports/esp32s2/common-hal/wifi/Radio.c
msgid "wifi is not enabled"
@ -3979,7 +4127,7 @@ msgstr ""
#: extmod/ulab/code/vector/vectorise.c
msgid "wrong input type"
msgstr ""
msgstr "nieprawidłowy typ wejścia"
#: extmod/ulab/code/ulab_create.c py/objstr.c
msgid "wrong number of arguments"
@ -3995,7 +4143,7 @@ msgstr "zły typ operandu"
#: extmod/ulab/code/vector/vectorise.c
msgid "wrong output type"
msgstr ""
msgstr "nieprawidłowy typ wyjścia"
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
@ -4029,6 +4177,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA lub SCL wymagają podciągnięcia"
#~ msgid "tuple index out of range"
#~ msgstr "indeks krotki poza zakresem"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-22 15:30+0000\n"
"PO-Revision-Date: 2021-02-09 14:03+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: \n"
"Language: pt_BR\n"
@ -68,6 +68,8 @@ msgstr "%%c requer int ou char"
msgid ""
"%d address pins, %d rgb pins and %d tiles indicate a height of %d, not %d"
msgstr ""
"%d pinos de endereço, %d pinos rgb e %d blocos indicam uma altura com %d, "
"não %d"
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
msgid "%q failure: %d"
@ -350,6 +352,10 @@ msgstr "Todos os periféricos UART estão em uso"
msgid "All event channels in use"
msgstr "Todos os canais de eventos em uso"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr "O estado de todas as máquinas em uso"
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Todos os canais dos eventos de sincronização em uso"
@ -398,6 +404,7 @@ msgstr "O AnalogIn não é compatível no pino informado"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "Funcionalidade AnalogOut não suportada"
@ -606,6 +613,7 @@ msgstr "Não é possível excluir valores"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "Não é possível obter (pull) enquanto estiver no modo saída"
@ -646,6 +654,10 @@ msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
"Não é possível redefinir para o bootloader porque o mesmo não está presente."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr "Não foi possível definir as opções do socket"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "Não é possível definir o valor quando a direção é inserida."
@ -830,7 +842,7 @@ msgstr "O pino de dados 0 deve ser alinhado por bytes"
#: ports/esp32s2/common-hal/displayio/ParallelBus.c
msgid "Data 0 pin must be byte aligned."
msgstr ""
msgstr "O pino de dados 0 deve ser alinhado por bytes."
#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
@ -886,11 +898,12 @@ msgstr "Canal EXTINT em uso"
msgid "Error in regex"
msgstr "Erro no regex"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Erro: Falha na vinculação"
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -944,7 +957,7 @@ msgstr "O FFT é definido apenas para ndarrays"
msgid "FFT is implemented for linear arrays only"
msgstr "O FFT é implementado apenas para matrizes lineares"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr "Houve uma falha no handshake do SSL"
@ -1073,6 +1086,10 @@ msgstr "Operação I/O no arquivo fechado"
msgid "I2C Init Error"
msgstr "Erro de inicialização do I2C"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr "Periférico I2C em uso"
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr "O I2SOut não está disponível"
@ -1098,6 +1115,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "O tamanho do buffer está incorreto"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr "O tamanho do programa Init é inválido"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr "A inicialização falhou devido à falta de memória"
@ -1110,6 +1131,31 @@ msgstr "A entrada está demorando demais"
msgid "Input/output error"
msgstr "Erro de entrada/saída"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr "A instrução %d salta no pino"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr "A instrução %d muda com mais bits do que a quantidade dos pinos"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr "A instrução %d desloca mais bits do que a quantidade dos pinos"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr "A instrução %d usa um pino extra"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr "A instrução %d aguarda a entrada de fora da contagem"
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "Autenticação insuficiente"
@ -1161,7 +1207,7 @@ msgstr "O pino DAC informado é inválido"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Frequência PWM inválida"
@ -1255,6 +1301,8 @@ msgstr "Pino inválido para canal direito"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Pinos inválidos"
@ -1283,7 +1331,7 @@ msgstr "O Security_mode é inválido"
msgid "Invalid size"
msgstr "Tamanho inválido"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr "Soquete inválido para o TLS"
@ -1291,10 +1339,6 @@ msgstr "Soquete inválido para o TLS"
msgid "Invalid state"
msgstr "Estado inválido"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr "Uso inválido do soquete TLS"
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "A voz é inválida"
@ -1311,10 +1355,6 @@ msgstr "Aqruivo de ondas inválido"
msgid "Invalid word/bit length"
msgstr "O comprimento do bit/palavra são inválidos"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr "Problema na configuração do SO_REUSEADDR"
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "A chave deve ter 16, 24 ou 32 bytes de comprimento"
@ -1376,6 +1416,36 @@ msgstr "O atraso na inicialização do microfone deve estar entre 0,0 e 1,0"
msgid "Missing MISO or MOSI Pin"
msgstr "O pino MISO ou MOSI está ausente"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr "Faltando first_in_pin. A instrução %d lê pinos(s)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr "Faltando first_in_pin. A instrução %d muda a partir do(s) pino(s)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr "Faltando first_in_pin. A instrução %d aguarda com base no pino"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr "Faltando first_out_pin. A instrução %d muda para o(s) pinos(s)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr "Faltando first_out_pin. A instrução %d escreve nos pinos(s)"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "Faltando first_set_pin. A instrução %d define os pinos(s)"
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Deve ser uma subclasse %q."
@ -1429,14 +1499,14 @@ msgstr "Nenhum pino MOSI"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Nenhum pino RX"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Nenhum pino TX"
@ -1493,6 +1563,18 @@ msgstr "Não há mais temporizadores disponíveis neste pino."
msgid "No network with that ssid"
msgstr "Não há rede com este ssid"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr "Sem saída no programa"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr ""
"Nenhum pull up foi encontrado no SDA ou no SCL; verifique o fio das suas "
"conexões"
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "Não há pulldown no pino; É recomendável utilizar um resistor de 1M ohm"
@ -1549,6 +1631,10 @@ msgstr "A paridade ímpar não é compatível"
msgid "Only 8 or 16 bit mono with "
msgstr "Apenas mono com 8 ou 16 bits com "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr "Somente IN/OUT de até 8 suportados"
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr "Somente os endereços IPv4 são suportados"
@ -1602,7 +1688,7 @@ msgstr "A operação expirou"
msgid "Out of memory"
msgstr "Sem memória"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Sem soquetes"
@ -1629,6 +1715,7 @@ msgstr ""
"na construção."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "O ParallelBus ainda não é compatível"
@ -1641,11 +1728,20 @@ msgstr "O periférico está em uso"
msgid "Permission denied"
msgstr "Permissão negada"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr "A contagem dos pinos deve ser com pelo menos 1"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr "A contagem dos pinos é muito grande"
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "O pino não tem recursos de ADC"
@ -1718,10 +1814,34 @@ msgstr ""
"Tentando entrar no deep sleep até o alarme, pressione CTRL-C ou grave o "
"arquivo.\n"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr "O programa faz IN sem carregar o ISR"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr "O programa faz OUT sem carregar o OSR"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr "O programa deve conter pelo menos uma instrução com 16 bits."
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr "O tamanho do programa é inválido"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr "O programa é muito grande"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "O Pull não foi usado quando a direção for gerada."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr "O modo RAISE não foi implementado"
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr "Erro DeInit RNG"
@ -1730,6 +1850,10 @@ msgstr "Erro DeInit RNG"
msgid "RNG Init Error"
msgstr "Houve um erro na inicialização do RNG"
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr "Ainda não há suporte para o RS485 neste dispositivo"
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1737,6 +1861,7 @@ msgstr "A definição da inversão do RS485 quando não está no modo RS485"
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "A calibração RTC não é suportada nesta placa"
@ -1745,7 +1870,7 @@ msgid "RTC is not supported on this board"
msgstr "O RTC não é suportado nesta placa"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr "RTS/CTS/RS485 Ainda não é compatível neste dispositivo"
@ -1802,11 +1927,6 @@ msgstr "Executando no modo de segurança! "
msgid "SD card CSD format not supported"
msgstr "O formato CSD do Cartão SD não é compatível"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA ou SCL precisa de um pull up"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1825,6 +1945,10 @@ msgstr "Houve um erro na inicialização SPI"
msgid "SPI Re-initialization error"
msgstr "Houve um erro na reinicialização SPI"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr "O periférico SPI está em uso"
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "A taxa de amostragem deve ser positiva"
@ -1855,6 +1979,15 @@ msgstr "Serializer em uso"
msgid "Server side context cannot have hostname"
msgstr "O contexto do lado do servidor não pode ter nome de host"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr "A definição da contagem dos pinos deve estar entre 1 e 5"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr ""
"A definição da contagem dos pinos do conjunto lateral deve estar entre 1 e 5"
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr "O tamanho não é suportado"
@ -2033,6 +2166,10 @@ msgstr "Houve um erro na inicialização do UART"
msgid "UART Re-init error"
msgstr "Houve um erro na reinicialização do UART"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr "O UART ainda não é suportado"
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "Houve um erro na gravação UART"
@ -2096,7 +2233,7 @@ msgstr "Não foi possível escrever no sleep_memory."
msgid "Unexpected nrfx uuid type"
msgstr "Tipo uuid nrfx inesperado"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr "Erro não tratado do ESP TLS %d %d %x %d"
@ -2139,7 +2276,8 @@ msgstr ""
"dispositivo tenha sido recusado ou ignorado."
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Taxa de transmissão não suportada"
@ -2190,6 +2328,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "AVISO: Seu arquivo de código tem duas extensões\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr ""
"O WatchDogTimer não pode ser não-inicializado uma vez que o modo é definido "
@ -2405,7 +2544,7 @@ msgstr "as fatias do buffer devem ter o mesmo comprimento"
msgid "buffer too small"
msgstr "o buffer é muito pequeno"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr "o buffer é pequeno demais para os bytes requisitados"
@ -3585,6 +3724,10 @@ msgstr "pop a partir de um PulseIn vazio"
msgid "pop from empty %q"
msgstr "pop a partir do %q vazio"
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr "a porta deve ser > = 0"
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "O terceiro argumento pow() não pode ser 0"
@ -3601,6 +3744,7 @@ msgstr "o pow() com 3 argumentos requer números inteiros"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3618,6 +3762,14 @@ msgstr "pressionando o botão de boot na inicialização.\n"
msgid "pressing both buttons at start up.\n"
msgstr "pressionando ambos os botões durante a inicialização.\n"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr "O pull_threshold deve ser entre 1 e 32"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr "O pull_threshold deve ser entre 1 e 32"
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "estouro de fila"
@ -3815,7 +3967,7 @@ msgstr "Limite deve estar no alcance de 0-65536"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "tile must be greater than zero"
msgstr ""
msgstr "o bloco deve ser maior que zero"
#: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence"
@ -3823,6 +3975,7 @@ msgstr "time.struct_time() leva uma sequência com 9"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "a duração do tempo limite excedeu o valor máximo suportado"
@ -4105,6 +4258,15 @@ msgstr "zi deve ser de um tipo float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi deve estar na forma (n_section, 2)"
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA ou SCL precisa de um pull up"
#~ msgid "Invalid use of TLS Socket"
#~ msgstr "Uso inválido do soquete TLS"
#~ msgid "Issue setting SO_REUSEADDR"
#~ msgstr "Problema na configuração do SO_REUSEADDR"
#~ msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
#~ msgstr ""
#~ "%d endereços dos pinos e %d pinos rgb indicam uma altura do %d, não %d"

View File

@ -6,7 +6,7 @@ msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-25 19:32+0000\n"
"PO-Revision-Date: 2021-02-05 19:47+0000\n"
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: sv\n"
@ -68,6 +68,7 @@ msgstr "%%c kräver int eller char"
msgid ""
"%d address pins, %d rgb pins and %d tiles indicate a height of %d, not %d"
msgstr ""
"%d adresspinnar, %d rgb-stift och %d brickor anger en höjd på %d, inte %d"
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
msgid "%q failure: %d"
@ -346,6 +347,10 @@ msgstr "Alla UART-kringutrustning används"
msgid "All event channels in use"
msgstr "Alla händelsekanaler används"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr "Alla tillståndsmaskiner används"
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Alla händelsekanaler används"
@ -394,6 +399,7 @@ msgstr "AnalogIn stöds inte på angiven pinne"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "AnalogOut-funktionalitet stöds inte"
@ -596,6 +602,7 @@ msgstr "Kan inte radera värden"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "Kan inte ange pull i output-läge"
@ -635,6 +642,10 @@ msgid "Cannot reset into bootloader because no bootloader is present."
msgstr ""
"Det går inte att återställa till bootloader eftersom bootloader saknas."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr "Det går inte att ange socketalternativ"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "Kan inte sätta värde när riktning är input."
@ -819,7 +830,7 @@ msgstr "Datapinne 0 måste vara bytejusterad"
#: ports/esp32s2/common-hal/displayio/ParallelBus.c
msgid "Data 0 pin must be byte aligned."
msgstr ""
msgstr "Datapinne 0 måste vara byte-justerad."
#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
@ -875,11 +886,12 @@ msgstr "EXTINT-kanalen används redan"
msgid "Error in regex"
msgstr "Fel i regex"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "Fel: Bind misslyckades"
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -933,7 +945,7 @@ msgstr "FFT är enbart definierade för ndarrays"
msgid "FFT is implemented for linear arrays only"
msgstr "FTT är enbart implementerad för linjära matriser"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr "Misslyckad SSL-handskakning"
@ -1061,6 +1073,10 @@ msgstr "I/O-operation på stängd fil"
msgid "I2C Init Error"
msgstr "I2C init-fel"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr "I2C-enhet används redan"
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr "I2SOut är inte tillgängligt"
@ -1086,6 +1102,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "Fel buffertstorlek"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr "Storlek på init-program ogiltigt"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr "Initieringen misslyckades på grund av minnesbrist"
@ -1098,6 +1118,31 @@ msgstr "Indata tar för lång tid"
msgid "Input/output error"
msgstr "Indata-/utdatafel"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr "Instruktion %d hoppar på pinne"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr "Instruktion %d skiftar fler bitar än antalet pinnar"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr "Instruktion %d skiftar fler bitar än antal pinnar"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr "Instruktion %d använder extra pinne"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr "Instruktion %d väntar på inmatning utanför intervallet"
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "Otillräcklig autentisering"
@ -1149,7 +1194,7 @@ msgstr "Ogiltig DAC-pinne angiven"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Ogiltig PWM-frekvens"
@ -1243,6 +1288,8 @@ msgstr "Ogiltig pinne för höger kanal"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Ogiltiga pinnar"
@ -1271,7 +1318,7 @@ msgstr "Ogiltigt säkerhetsläge"
msgid "Invalid size"
msgstr "Ogiltig storlek"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr "Ogiltig socket för TLS"
@ -1279,10 +1326,6 @@ msgstr "Ogiltig socket för TLS"
msgid "Invalid state"
msgstr "Ogiltigt tillstånd"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr "Ogiltig användning av TLS Socket"
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Ogiltig kanal"
@ -1299,10 +1342,6 @@ msgstr "Ogiltig wave-fil"
msgid "Invalid word/bit length"
msgstr "Ogiltig word-/bitlängd"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr "Misslyckades att sätta SO_REUSEADDR"
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "Nyckeln måste vara 16, 24 eller 32 byte lång"
@ -1365,6 +1404,36 @@ msgstr ""
msgid "Missing MISO or MOSI Pin"
msgstr "MISO- eller MOSI-pinne saknas"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr "Saknad first_in_pin. Instruktion %d läser pinnar"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr "Saknad first_in_pin. Instruktion %d skiftar in från pinnar"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr "Saknad first_in_pin. Instruktion %d väntar baserat på pinne"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr "Saknad first_out_pin. Instruktion %d skiftar ut till pinnar"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr "Saknad first_out_pin. Instruktion %d skriver till pinnar"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "Saknad first_set_pin. Instruktion %d sätter pinnar"
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Måste vara en %q-subklass."
@ -1418,14 +1487,14 @@ msgstr "Ingen MOSI-pinne"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Ingen RX-pinne"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Ingen TX-pinne"
@ -1482,6 +1551,16 @@ msgstr "Inga fler timers tillgängliga på denna pinne."
msgid "No network with that ssid"
msgstr "Inget nätverk med sådant ssid"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr "Inget out i programmet"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr "Ingen pull-up hittades på SDA eller SCL; kontrollera inkopplingen"
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "Ingen pulldown på pinnen; 1Mohm rekommenderas"
@ -1539,6 +1618,10 @@ msgstr "Udda paritet stöds inte"
msgid "Only 8 or 16 bit mono with "
msgstr "Endast 8 eller 16 bitars mono med "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr "Endast IN/OUT på upp till 8 stöds"
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr "Endast IPv4-adresser stöds"
@ -1591,7 +1674,7 @@ msgstr "Åtgärden orsakade timeout"
msgid "Out of memory"
msgstr "Slut på minne"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Slut på sockets"
@ -1616,6 +1699,7 @@ msgstr ""
"skapandet."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "ParallelBus stöds ännu inte"
@ -1628,11 +1712,20 @@ msgstr "Periferi i bruk"
msgid "Permission denied"
msgstr "Åtkomst nekad"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr "Antalet pinnar måste vara minst 1"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr "Antal pinnar för stort"
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "Pinnen har inte ADC-funktionalitet"
@ -1702,10 +1795,34 @@ msgstr ""
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr "Fingerar djup sömn tills larm, Ctrl-C eller filskrivning.\n"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr "Program gör IN utan att ladda ISR"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr "Program gör OUT utan att läsa in OSR"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr "Programmet måste innehålla minst en 16-bitars instruktion."
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr "Programstorlek ogiltig"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr "Programmet är för stort"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "Pull används inte när riktningen är output."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr "RAISE-läge är inte implementerat"
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr "RNG DeInit-fel"
@ -1714,6 +1831,10 @@ msgstr "RNG DeInit-fel"
msgid "RNG Init Error"
msgstr "RNG Init-fel"
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr "RS485 stöds ännu inte på den här enheten"
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1721,6 +1842,7 @@ msgstr "RS485-inversion specificerad när den inte är i RS485-läge"
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "RTC-kalibrering stöds inte av detta kort"
@ -1729,7 +1851,7 @@ msgid "RTC is not supported on this board"
msgstr "RTC stöds inte av detta kort"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr "RTS/CTS/RS485 Stöds ännu inte på den här enheten"
@ -1786,11 +1908,6 @@ msgstr "Kör i säkert läge! "
msgid "SD card CSD format not supported"
msgstr "SD-kort CSD-format stöds inte"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA eller SCL behöver en pullup"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1809,6 +1926,10 @@ msgstr "SPI Init-fel"
msgid "SPI Re-initialization error"
msgstr "SPI reinitialiseringsfel"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr "SPI-enhet används redan"
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "Samplingsfrekvensen måste vara positiv"
@ -1839,6 +1960,14 @@ msgstr "Serializern används redan"
msgid "Server side context cannot have hostname"
msgstr "Serversidans kontext kan inte ha värdnamn"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr "Inställt antal pinnar måste vara mellan 1 och 5"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr "Sido-setets antal pinnar måste vara mellan 1 och 5"
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr "Storleken stöds inte"
@ -2013,6 +2142,10 @@ msgstr "UART Init-fel"
msgid "UART Re-init error"
msgstr "UART reinit-fel"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr "UART stöds ännu inte"
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "UART skrivfel"
@ -2076,7 +2209,7 @@ msgstr "Det gick inte att skriva till sleep_memory."
msgid "Unexpected nrfx uuid type"
msgstr "Oväntad nrfx uuid-typ"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr "Ej hanterat ESP TLS-fel %d-%d-%x-%d"
@ -2119,7 +2252,8 @@ msgstr ""
"eller ignorerades."
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Baudrate stöd inte"
@ -2170,6 +2304,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "VARNING: Ditt filnamn för kod har två tillägg\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr "WatchDogTimer kan inte avinitialiseras när läget är inställt på RESET"
@ -2381,7 +2516,7 @@ msgstr "buffertsegmenten måste vara lika långa"
msgid "buffer too small"
msgstr "buffert för liten"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr "buffert för liten för begärd längd"
@ -3550,6 +3685,10 @@ msgstr "pop från en tom PulseIn"
msgid "pop from empty %q"
msgstr "pop från tom %q"
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr ""
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "pow() 3: e argument kan inte vara 0"
@ -3566,6 +3705,7 @@ msgstr "pow() med 3 argument kräver heltal"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3583,6 +3723,14 @@ msgstr "trycka på startknappen vid start.\n"
msgid "pressing both buttons at start up.\n"
msgstr "trycka båda knapparna vid uppstart.\n"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr "pull_threshold måste vara mellan 1 och 32"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr "push_threshold måste vara mellan 1 och 32"
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "köstorlek överskreds"
@ -3780,7 +3928,7 @@ msgstr "tröskelvärdet måste ligga i intervallet 0-65536"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "tile must be greater than zero"
msgstr ""
msgstr "tile måste vara större än noll"
#: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence"
@ -3788,6 +3936,7 @@ msgstr "time.struct_time() kräver en 9-sekvens"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "timeout-längd överskred det maximala värde som stöds"
@ -4070,6 +4219,15 @@ msgstr "zi måste vara av typ float"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi måste vara i formen (n_section, 2)"
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA eller SCL behöver en pullup"
#~ msgid "Invalid use of TLS Socket"
#~ msgstr "Ogiltig användning av TLS Socket"
#~ msgid "Issue setting SO_REUSEADDR"
#~ msgstr "Misslyckades att sätta SO_REUSEADDR"
#~ msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
#~ msgstr "%d adresspinnar och %d RGB-pinnar indikerar en höjd av %d, inte %d"

View File

@ -7,7 +7,7 @@ msgstr ""
"Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-25 19:32+0000\n"
"PO-Revision-Date: 2021-02-09 14:03+0000\n"
"Last-Translator: hexthat <hexthat@gmail.com>\n"
"Language-Team: Chinese Hanyu Pinyin\n"
"Language: zh_Latn_pinyin\n"
@ -69,6 +69,8 @@ msgstr "%%c xūyào zhěngshù huò char"
msgid ""
"%d address pins, %d rgb pins and %d tiles indicate a height of %d, not %d"
msgstr ""
"%d de zhǐ yǐn jiǎo , %d rgb yǐn jiǎo hé %d qiē piàn biǎo shì %d de gāo dù, "
"ér bù shì %d"
#: ports/atmel-samd/common-hal/sdioio/SDCard.c
msgid "%q failure: %d"
@ -347,6 +349,10 @@ msgstr "Suǒyǒu UART wàiwéi zhèngzài shǐyòng"
msgid "All event channels in use"
msgstr "Suǒyǒu shǐyòng de shìjiàn píndào"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "All state machines in use"
msgstr "suǒ yǒu zhèng zài shǐ yòng de zhuàng tài jī"
#: ports/atmel-samd/audio_dma.c ports/atmel-samd/common-hal/audiobusio/PDMIn.c
msgid "All sync event channels in use"
msgstr "Suǒyǒu tóngbù shìjiàn píndào shǐyòng"
@ -395,6 +401,7 @@ msgstr "Gěi dìng de yǐn jiǎo bù zhīchí AnalogIn"
#: ports/cxd56/common-hal/analogio/AnalogOut.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogOut.c
#: ports/nrf/common-hal/analogio/AnalogOut.c
#: ports/raspberrypi/common-hal/analogio/AnalogOut.c
msgid "AnalogOut functionality not supported"
msgstr "Bù zhīchí AnalogOut gōngnéng"
@ -598,6 +605,7 @@ msgstr "Wúfǎ shānchú zhí"
#: ports/atmel-samd/common-hal/digitalio/DigitalInOut.c
#: ports/mimxrt10xx/common-hal/digitalio/DigitalInOut.c
#: ports/nrf/common-hal/digitalio/DigitalInOut.c
#: ports/raspberrypi/common-hal/digitalio/DigitalInOut.c
msgid "Cannot get pull while in output mode"
msgstr "Zài shūchū móshì xià wúfǎ huòqǔ lādòng"
@ -635,6 +643,10 @@ msgstr "USB jīhuó shí wúfǎ chóngxīn bǎng ding '/'."
msgid "Cannot reset into bootloader because no bootloader is present."
msgstr "Wúfǎ chóng zhì wèi bootloader, yīnwèi méiyǒu bootloader cúnzài."
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Cannot set socket options"
msgstr "wú fǎ shè zhì tào jiē zì xuǎn xiàng"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Cannot set value when direction is input."
msgstr "Dāng fāngxiàng xiàng nèi shí, bùnéng shèzhì gāi zhí."
@ -817,7 +829,7 @@ msgstr "Shùjù 0 de yǐn jiǎo bìxū shì zì jié duìqí"
#: ports/esp32s2/common-hal/displayio/ParallelBus.c
msgid "Data 0 pin must be byte aligned."
msgstr ""
msgstr "shù jù 0 yǐn jiǎo bì xū àn zì jié duì qí."
#: shared-module/audiocore/WaveFile.c
msgid "Data chunk must follow fmt chunk"
@ -873,11 +885,12 @@ msgstr "EXTINT píndào yǐjīng shǐyòng"
msgid "Error in regex"
msgstr "Zhèngzé biǎodá shì cuòwù"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "Error: Failure to bind"
msgstr "cuò wù: bǎng dìng shī bài"
#: py/enum.c shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c py/enum.c
#: shared-bindings/_bleio/__init__.c shared-bindings/aesio/aes.c
#: shared-bindings/busio/SPI.c shared-bindings/microcontroller/Pin.c
#: shared-bindings/neopixel_write/__init__.c
#: shared-bindings/terminalio/Terminal.c
@ -931,7 +944,7 @@ msgstr "FFT jǐn wéi ndarrays dìng yì"
msgid "FFT is implemented for linear arrays only"
msgstr "FFT jǐn shì yòng yú xiàn xìng zhèn liè"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
msgid "Failed SSL handshake"
msgstr "SSL wòshǒu shībài"
@ -1059,6 +1072,10 @@ msgstr "Wénjiàn shàng de I/ O cāozuò"
msgid "I2C Init Error"
msgstr "I2C chūshǐhuà cuòwù"
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "I2C peripheral in use"
msgstr "I2C wài shè zhèng zài shǐ yòng zhōng"
#: shared-bindings/audiobusio/I2SOut.c
msgid "I2SOut not available"
msgstr "I2SOut bù kě yòng"
@ -1084,6 +1101,10 @@ msgstr ""
msgid "Incorrect buffer size"
msgstr "Huǎnchōng qū dàxiǎo bù zhèngquè"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Init program size invalid"
msgstr "Init chéng xù dà xiǎo wú xiào"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr "yóu yú nèi cún bù zú, chū shǐ huà shī bài"
@ -1096,6 +1117,31 @@ msgstr "Shūrù shíjiānguò zhǎng"
msgid "Input/output error"
msgstr "Shūrù/shūchū cuòwù"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d jumps on pin"
msgstr "zhǐ lìng %d zài yǐn jiǎo shàng tiào zhuǎn"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts in more bits than pin count"
msgstr "zhǐ lìng %d yí wèi chāo guò yǐn jiǎo jì shù"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d shifts out more bits than pin count"
msgstr "zhǐ lìng %d yí chū de wèi bǐ yǐn jiǎo shù duō"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d uses extra pin"
msgstr "zhǐ lìng %d shǐ yòng é wài de yǐn jiǎo"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Instruction %d waits on input outside of count"
msgstr "zhǐ lìng %d děng dài jì shù zhī wài de shū rù"
#: ports/nrf/common-hal/_bleio/__init__.c
msgid "Insufficient authentication"
msgstr "Rènzhèng bùzú"
@ -1147,7 +1193,7 @@ msgstr "Tí gōng liǎo wúxiào de DAC yǐn jiǎo"
#: ports/atmel-samd/common-hal/pwmio/PWMOut.c
#: ports/cxd56/common-hal/pwmio/PWMOut.c ports/nrf/common-hal/pwmio/PWMOut.c
#: shared-bindings/pwmio/PWMOut.c
#: ports/raspberrypi/common-hal/pwmio/PWMOut.c shared-bindings/pwmio/PWMOut.c
msgid "Invalid PWM frequency"
msgstr "Wúxiào de PWM pínlǜ"
@ -1241,6 +1287,8 @@ msgstr "Yòuxián tōngdào yǐn jiǎo wúxiào"
#: ports/mimxrt10xx/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/SPI.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "Invalid pins"
msgstr "Wúxiào de yǐn jiǎo"
@ -1269,7 +1317,7 @@ msgstr "Ānquán móshì wúxiào"
msgid "Invalid size"
msgstr "dà xiǎo wú xiào"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLContext.c
msgid "Invalid socket for TLS"
msgstr "TLS de chā zuò wú xiào"
@ -1277,10 +1325,6 @@ msgstr "TLS de chā zuò wú xiào"
msgid "Invalid state"
msgstr "wú xiào zhuàng tài"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Invalid use of TLS Socket"
msgstr "TLS tào jiē zì de wú xiào shǐ yòng"
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Yǔyīn wúxiào"
@ -1297,10 +1341,6 @@ msgstr "Wúxiào de làng làngcháo wénjiàn"
msgid "Invalid word/bit length"
msgstr "Wúxiào de zì/wèi chángdù"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Issue setting SO_REUSEADDR"
msgstr "wèn tí shè zhì SO_REUSEADDR"
#: shared-bindings/aesio/aes.c
msgid "Key must be 16, 24, or 32 bytes long"
msgstr "mì yào bì xū wéi 16, 24 huò 32 zì jié cháng"
@ -1362,6 +1402,37 @@ msgstr "Màikèfēng qǐdòng yánchí bìxū zài 0.0 Dào 1.0 De fànwéi nèi
msgid "Missing MISO or MOSI Pin"
msgstr "Quēshǎo MISO huò MOSI yǐn jiǎo"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d reads pin(s)"
msgstr "shǒu xiān zài yǐn jiǎo zhōng quē shī. zhǐ lìng %d dú qǔ yǐn jiǎo"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d shifts in from pin(s)"
msgstr "shǒu xiān zài yǐn jiǎo zhōng quē shī. zhǐ lìng %d cóng yǐn jiǎo yí wèi"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_in_pin. Instruction %d waits based on pin"
msgstr ""
"shǒu xiān zài yǐn jiǎo zhōng quē shī. jī yú yǐn jiǎo de zhǐ lìng %d děng dài"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d shifts out to pin(s)"
msgstr "xiān lòu chū yǐn jiǎo. zhǐ lìng %d yí chū dào yǐn jiǎo"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_out_pin. Instruction %d writes pin(s)"
msgstr "xiān lòu chū yǐn jiǎo. zhǐ lìng %d xiě rù yǐn jiǎo"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
#, c-format
msgid "Missing first_set_pin. Instruction %d sets pin(s)"
msgstr "quē shǎo dì yī zǔ yǐn jiǎo. zhǐ lìng %d shè zhì yǐn jiǎo"
#: shared-bindings/displayio/Group.c
msgid "Must be a %q subclass."
msgstr "Bìxū shì %q zi lèi."
@ -1415,14 +1486,14 @@ msgstr "Méiyǒu MOSI yǐn jiǎo"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No RX pin"
msgstr "Wèi zhǎodào RX yǐn jiǎo"
#: ports/atmel-samd/common-hal/busio/UART.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
msgid "No TX pin"
msgstr "Wèi zhǎodào TX yǐn jiǎo"
@ -1479,6 +1550,16 @@ msgstr "Gāi yǐn jiǎo shàng méiyǒu kěyòng de dìngshí qì."
msgid "No network with that ssid"
msgstr "Méiyǒu wǎngluò yǔ gāi ssid"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "No out in program"
msgstr "chéng xù zhōng wèi tuì chū"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/busio/I2C.c
msgid "No pull up found on SDA or SCL; check your wiring"
msgstr "zài SDA huò SCL shàng wèi zhǎo dào shàng lā; jiǎn chá nín de xiàn lù"
#: shared-module/touchio/TouchIn.c
msgid "No pulldown on pin; 1Mohm recommended"
msgstr "Yǐn jiǎo shàng méiyǒu xiàlā; 1Mohm tuījiàn"
@ -1535,6 +1616,10 @@ msgstr "Bù zhīchí jīshù"
msgid "Only 8 or 16 bit mono with "
msgstr "Zhǐyǒu 8 huò 16 wèi dānwèi "
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Only IN/OUT of up to 8 supported"
msgstr "jǐn zhī chí zuì duō 8 gè IN/OUT"
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Only IPv4 addresses supported"
msgstr "Jǐn zhīchí IPv4 dìzhǐ"
@ -1588,7 +1673,7 @@ msgstr "cāo zuò yǐ fēn shí"
msgid "Out of memory"
msgstr "nèi cún bù zú"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "tào jiē zì wài"
@ -1612,6 +1697,7 @@ msgid ""
msgstr "Dāng biànliàng_pínlǜ shì False zài jiànzhú shí PWM pínlǜ bùkě xiě."
#: ports/mimxrt10xx/common-hal/displayio/ParallelBus.c
#: ports/raspberrypi/common-hal/displayio/ParallelBus.c
#: ports/stm/common-hal/displayio/ParallelBus.c
msgid "ParallelBus not yet supported"
msgstr "Shàng bù zhīchí ParallelBus"
@ -1624,11 +1710,20 @@ msgstr "shǐ yòng zhōng de wài shè"
msgid "Permission denied"
msgstr "Quánxiàn bèi jùjué"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Pin count must be at least 1"
msgstr "yǐn jiǎo jì shù bì xū zhì shǎo wéi 1"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Pin count too large"
msgstr "yǐn jiǎo jì shù tài dà"
#: ports/atmel-samd/common-hal/analogio/AnalogIn.c
#: ports/cxd56/common-hal/analogio/AnalogIn.c
#: ports/esp32s2/common-hal/analogio/AnalogIn.c
#: ports/mimxrt10xx/common-hal/analogio/AnalogIn.c
#: ports/nrf/common-hal/analogio/AnalogIn.c
#: ports/raspberrypi/common-hal/analogio/AnalogIn.c
#: ports/stm/common-hal/analogio/AnalogIn.c
msgid "Pin does not have ADC capabilities"
msgstr "Pin méiyǒu ADC nénglì"
@ -1695,10 +1790,34 @@ msgstr ""
"jiǎ zhuāng shēn dù shuì mián , zhí dào bào jǐng , CTRL-C huò wén jiàn xiě "
"rù .\n"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does IN without loading ISR"
msgstr "chéng xù zài bù jiā zǎi ISR de qíng kuàng xià wán chéng"
#: ports/raspberrypi/common-hal/rp2pio/StateMachine.c
msgid "Program does OUT without loading OSR"
msgstr "chéng xù zài bù jiā zǎi Osr de qíng kuàng xià zhí xíng OUT"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program must contain at least one 16-bit instruction."
msgstr "chéng xù bì xū zhì shǎo bāo hán yí gè 16 wèi zhǐ lìng ."
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program size invalid"
msgstr "chéng xù dà xiǎo wú xiào"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Program too large"
msgstr "chéng xù tài dà"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
msgstr "Fāngxiàng shūchū shí Pull méiyǒu shǐyòng."
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "RAISE mode is not implemented"
msgstr "wèi shí xiàn tí shēng mó shì"
#: ports/stm/common-hal/os/__init__.c
msgid "RNG DeInit Error"
msgstr "RNG qǔxiāo chūshǐhuà cuòwù"
@ -1707,6 +1826,10 @@ msgstr "RNG qǔxiāo chūshǐhuà cuòwù"
msgid "RNG Init Error"
msgstr "RNG chūshǐhuà cuòwù"
#: ports/nrf/common-hal/busio/UART.c
msgid "RS485 Not yet supported on this device"
msgstr "RS485 cǐ shè bèi shàng bù zhī chí"
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/mimxrt10xx/common-hal/busio/UART.c
msgid "RS485 inversion specified when not in RS485 mode"
@ -1714,6 +1837,7 @@ msgstr "Wèi chǔyú RS485 móshì shí zhǐdìngle RS485 fǎn zhuǎn"
#: ports/cxd56/common-hal/rtc/RTC.c ports/esp32s2/common-hal/rtc/RTC.c
#: ports/mimxrt10xx/common-hal/rtc/RTC.c ports/nrf/common-hal/rtc/RTC.c
#: ports/raspberrypi/common-hal/rtc/RTC.c
msgid "RTC calibration is not supported on this board"
msgstr "Cǐ bǎn bù zhīchí RTC jiàozhǔn"
@ -1722,7 +1846,7 @@ msgid "RTC is not supported on this board"
msgstr "Cǐ bǎn bù zhīchí RTC"
#: ports/atmel-samd/common-hal/busio/UART.c ports/cxd56/common-hal/busio/UART.c
#: ports/nrf/common-hal/busio/UART.c ports/stm/common-hal/busio/UART.c
#: ports/stm/common-hal/busio/UART.c
msgid "RTS/CTS/RS485 Not yet supported on this device"
msgstr "RTS/CTS/RS485 gāi shèbèi shàng bù zhīchí"
@ -1779,11 +1903,6 @@ msgstr "Zài ānquán móshì xià yùnxíng! "
msgid "SD card CSD format not supported"
msgstr "Bù zhīchí SD kǎ CSD géshì"
#: ports/atmel-samd/common-hal/busio/I2C.c ports/esp32s2/common-hal/busio/I2C.c
#: ports/mimxrt10xx/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
msgid "SDA or SCL needs a pull up"
msgstr "SDA huò SCL xūyào lādòng"
#: ports/stm/common-hal/sdioio/SDCard.c
#, c-format
msgid "SDIO GetCardInfo Error %d"
@ -1802,6 +1921,10 @@ msgstr "SPI chūshǐhuà cuòwù"
msgid "SPI Re-initialization error"
msgstr "SPI chóngxīn chūshǐhuà cuòwù"
#: ports/raspberrypi/common-hal/busio/SPI.c
msgid "SPI peripheral in use"
msgstr "SPI wài shè zhèng zài shǐ yòng zhōng"
#: shared-bindings/audiomixer/Mixer.c
msgid "Sample rate must be positive"
msgstr "Cǎiyàng lǜ bìxū wèi zhèng shù"
@ -1832,6 +1955,14 @@ msgstr "Xùliè huà yǐjīng shǐyòngguò"
msgid "Server side context cannot have hostname"
msgstr "Fúwùqì duān shàngxiàwén bùnéng jùyǒu zhǔjī míng"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Set pin count must be between 1 and 5"
msgstr "shè zhì yǐn jiǎo shù bì xū jiè yú 1 hé 5 zhī jiān"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "Side set pin count must be between 1 and 5"
msgstr "cè miàn shè zhì yǐn jiǎo shù bì xū jiè yú 1 hé 5 zhī jiān"
#: ports/cxd56/common-hal/camera/Camera.c
msgid "Size not supported"
msgstr "bù zhī chí dà xiǎo"
@ -2005,6 +2136,10 @@ msgstr "UART chūshǐhuà cuòwù"
msgid "UART Re-init error"
msgstr "UART chóngxīn chūshǐhuà cuòwù"
#: ports/raspberrypi/common-hal/busio/UART.c
msgid "UART not yet supported"
msgstr "UART shàng wèi shòu zhī chí"
#: ports/stm/common-hal/busio/UART.c
msgid "UART write error"
msgstr "UART xiě cuòwù"
@ -2068,7 +2203,7 @@ msgstr "wú fǎ xiě rù sleep_memory。"
msgid "Unexpected nrfx uuid type"
msgstr "Yìwài de nrfx uuid lèixíng"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#: ports/esp32s2/common-hal/ssl/SSLSocket.c
#, c-format
msgid "Unhandled ESP TLS error %d %d %x %d"
msgstr "Wèi chǔlǐ de ESP TLS cuòwù %d %d %x %d"
@ -2111,7 +2246,8 @@ msgstr ""
"huò hūlüè."
#: ports/atmel-samd/common-hal/busio/I2C.c ports/cxd56/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c ports/stm/common-hal/busio/I2C.c
#: ports/esp32s2/common-hal/busio/UART.c
#: ports/raspberrypi/common-hal/busio/I2C.c ports/stm/common-hal/busio/I2C.c
msgid "Unsupported baudrate"
msgstr "Bù zhīchí de baudrate"
@ -2162,6 +2298,7 @@ msgid "WARNING: Your code filename has two extensions\n"
msgstr "Jǐnggào: Nǐ de dàimǎ wénjiàn míng yǒu liǎng gè kuòzhǎn míng\n"
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "WatchDogTimer cannot be deinitialized once mode is set to RESET"
msgstr "Yīdàn jiāng móshì shèzhì wèi RESET, jiù wúfǎ chūshǐhuà WatchDog Timer"
@ -2374,7 +2511,7 @@ msgstr "huǎnchōng qū qiēpiàn bìxū chángdù xiāngděng"
msgid "buffer too small"
msgstr "huǎnchōng qū tài xiǎo"
#: shared-bindings/socketpool/Socket.c
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "buffer too small for requested bytes"
msgstr "huǎn chōng qū tài xiǎo, duì yú qǐng qiú de zì jié"
@ -3541,6 +3678,10 @@ msgstr "cóng kōng mài chōng tán chū"
msgid "pop from empty %q"
msgstr "cóng kōng %q dànchū"
#: shared-bindings/socketpool/Socket.c shared-bindings/ssl/SSLSocket.c
msgid "port must be >= 0"
msgstr "duān kǒu bì xū wéi >= 0"
#: py/objint_mpz.c
msgid "pow() 3rd argument cannot be 0"
msgstr "pow() 3 cān shǔ bùnéng wéi 0"
@ -3557,6 +3698,7 @@ msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
#: ports/esp32s2/boards/espressif_kaluga_1/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wroom/mpconfigboard.h
#: ports/esp32s2/boards/espressif_saola_1_wrover/mpconfigboard.h
#: ports/esp32s2/boards/lilygo_ttgo_t8_s2_st7789/mpconfigboard.h
#: ports/esp32s2/boards/microdev_micro_s2/mpconfigboard.h
#: ports/esp32s2/boards/muselab_nanoesp32_s2/mpconfigboard.h
#: ports/esp32s2/boards/targett_module_clip_wroom/mpconfigboard.h
@ -3574,6 +3716,14 @@ msgstr "Zài qǐdòng shí àn qǐdòng ànniǔ.\n"
msgid "pressing both buttons at start up.\n"
msgstr "zài qǐdòng shí tóngshí àn xià liǎng gè ànniǔ.\n"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "pull_threshold must be between 1 and 32"
msgstr "lā lì yù zhí bì xū jiè yú 1 hé 32 zhī jiān"
#: ports/raspberrypi/bindings/rp2pio/StateMachine.c
msgid "push_threshold must be between 1 and 32"
msgstr "tuī sòng yù zhí bì xū jiè yú 1 hé 32 zhī jiān"
#: extmod/modutimeq.c
msgid "queue overflow"
msgstr "duìliè yìchū"
@ -3771,7 +3921,7 @@ msgstr "yùzhí bìxū zài fànwéi 0-65536"
#: shared-bindings/rgbmatrix/RGBMatrix.c
msgid "tile must be greater than zero"
msgstr ""
msgstr "cí tiē bì xū dà yú líng"
#: shared-bindings/time/__init__.c
msgid "time.struct_time() takes a 9-sequence"
@ -3779,6 +3929,7 @@ msgstr "time.struct_time() xūyào 9 xùliè"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
#: ports/nrf/common-hal/watchdog/WatchDogTimer.c
#: ports/raspberrypi/common-hal/watchdog/WatchDogTimer.c
msgid "timeout duration exceeded the maximum supported value"
msgstr "chāoshí shíjiān chāoguò zuìdà zhīchí zhí"
@ -4061,6 +4212,15 @@ msgstr "zi bìxū wèi fú diǎn xíng"
msgid "zi must be of shape (n_section, 2)"
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
#~ msgid "SDA or SCL needs a pull up"
#~ msgstr "SDA huò SCL xūyào lādòng"
#~ msgid "Invalid use of TLS Socket"
#~ msgstr "TLS tào jiē zì de wú xiào shǐ yòng"
#~ msgid "Issue setting SO_REUSEADDR"
#~ msgstr "wèn tí shè zhì SO_REUSEADDR"
#~ msgid "%d address pins and %d rgb pins indicate a height of %d, not %d"
#~ msgstr ""
#~ "%d dìzhǐ yǐn jiǎo hé %d rgb yǐn jiǎo jiāng gāodù biǎoshì wèi %d, ér bùshì "

1
main.c
View File

@ -184,6 +184,7 @@ STATIC void stop_mp(void) {
#endif
background_callback_reset();
usb_background();
gc_deinit();
}

View File

@ -11,3 +11,4 @@ LONGINT_IMPL = NONE
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0
SUPEROPT_VM = 0

View File

@ -0,0 +1,37 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "supervisor/board.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,36 @@
#define MICROPY_HW_BOARD_NAME "DynaLoRa_USB"
#define MICROPY_HW_MCU_NAME "samd21e18"
#define MICROPY_HW_LED_STATUS (&pin_PA27)
#define MICROPY_HW_NEOPIXEL (&pin_PA19)
#define SPI_FLASH_MOSI_PIN &pin_PA04
#define SPI_FLASH_MISO_PIN &pin_PA05
#define SPI_FLASH_SCK_PIN &pin_PA07
#define SPI_FLASH_CS_PIN &pin_PA06
// These are pins not to reset.
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define DEFAULT_I2C_BUS_SCL (&pin_PA01)
#define DEFAULT_I2C_BUS_SDA (&pin_PA00)
#define DEFAULT_SPI_BUS_SCK (&pin_PA17)
#define DEFAULT_SPI_BUS_MOSI (&pin_PA16)
#define DEFAULT_SPI_BUS_MISO (&pin_PA18)
#define DEFAULT_UART_BUS_RX (&pin_PA00)
#define DEFAULT_UART_BUS_TX (&pin_PA01)
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA23 1
#define IGNORE_PIN_PA24 1
// Not connected
#define IGNORE_PIN_PA08 1
#define IGNORE_PIN_PA14 1
#define IGNORE_PIN_PA21 1
#define IGNORE_PIN_PA22 1
#define IGNORE_PIN_PA28 1

View File

@ -0,0 +1,39 @@
USB_VID = 0x04D8
USB_PID = 0xEA2A
USB_PRODUCT = "DynaLoRa_USB"
USB_MANUFACTURER = "BHDynamics"
CHIP_VARIANT = SAMD21E18A
CHIP_FAMILY = samd21
SPI_FLASH_FILESYSTEM = 1
EXTERNAL_FLASH_DEVICE_COUNT = 1
EXTERNAL_FLASH_DEVICES = GD25Q32C
LONGINT_IMPL = MPZ
CIRCUITPY_AUDIOBUSIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_GAMEPAD = 0
CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0
CFLAGS_BOARD = --param max-inline-insns-auto=15
ifeq ($(TRANSLATION), zh_Latn_pinyin)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
endif
ifeq ($(TRANSLATION), ja)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
endif
ifeq ($(TRANSLATION), de_DE)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
SUPEROPT_VM = 0
endif
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_RFM9x
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_SD

View File

@ -0,0 +1,41 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA00) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA01) },
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA30) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA31) },
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA00) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA01) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA18) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_RADIO_CS), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_RADIO_INT), MP_ROM_PTR(&pin_PA09) },
{ MP_ROM_QSTR(MP_QSTR_RADIO_RESET), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_PA03) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA01) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA00) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA01) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA00) },
{ MP_ROM_QSTR(MP_QSTR_MOSI1), MP_ROM_PTR(&pin_PA00) },
{ MP_ROM_QSTR(MP_QSTR_MISO1), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_SCK1), MP_ROM_PTR(&pin_PA01) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA27) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA19) },
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA15) },
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -11,3 +11,4 @@ LONGINT_IMPL = NONE
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0
SUPEROPT_VM = 0

View File

@ -11,14 +11,5 @@ LONGINT_IMPL = NONE
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0
CFLAGS_BOARD = --param max-inline-insns-auto=15
ifeq ($(TRANSLATION), zh_Latn_pinyin)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
endif
ifeq ($(TRANSLATION), de_DE)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
SUPEROPT_VM = 0
endif
CFLAGS_INLINE_LIMIT = 45

View File

@ -40,6 +40,7 @@
static uint8_t pewpew_tc_index = 0xff;
static volatile uint16_t pewpew_ticks = 0;
void pewpew_interrupt_handler(uint8_t index) {
@ -52,6 +53,7 @@ void pewpew_interrupt_handler(uint8_t index) {
}
pew_tick();
++pewpew_ticks;
// Clear the interrupt bit.
tc->COUNT16.INTFLAG.reg = TC_INTFLAG_MC0;
@ -123,3 +125,7 @@ void pew_reset(void) {
}
MP_STATE_VM(pew_singleton) = NULL;
}
uint16_t pew_get_ticks() {
return pewpew_ticks;
}

View File

@ -44,5 +44,6 @@ typedef struct {
void pew_init(void);
void pewpew_interrupt_handler(uint8_t index);
void pew_reset(void);
uint16_t pew_get_ticks(void);
#endif // MICROPY_INCLUDED_PEW_PEWPEW_H

View File

@ -97,7 +97,7 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
if (!gpio_get_pin_level(sda->number) || !gpio_get_pin_level(scl->number)) {
reset_pin_number(sda->number);
reset_pin_number(scl->number);
mp_raise_RuntimeError(translate("SDA or SCL needs a pull up"));
mp_raise_RuntimeError(translate("No pull up found on SDA or SCL; check your wiring"));
}
#endif

View File

@ -164,7 +164,9 @@ LIBS += -lm
endif
# TinyUSB defines
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_ESP32S2 -DCFG_TUSB_OS=OPT_OS_FREERTOS -DCFG_TUD_CDC_RX_BUFSIZE=1024 -DCFG_TUD_CDC_TX_BUFSIZE=1024 -DCFG_TUD_MSC_BUFSIZE=4096 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_MIDI_TX_BUFSIZE=128
CFLAGS += -DCFG_TUSB_MCU=OPT_MCU_ESP32S2 -DCFG_TUSB_OS=OPT_OS_FREERTOS -DCFG_TUD_CDC_RX_BUFSIZE=1024 -DCFG_TUD_CDC_TX_BUFSIZE=1024
CFLAGS += -DCFG_TUD_MSC_BUFSIZE=4096 -DCFG_TUD_MIDI_RX_BUFSIZE=128 -DCFG_TUD_MIDI_TX_BUFSIZE=128
CFLAGS += -DCFG_TUD_VENDOR_RX_BUFSIZE=128 -DCFG_TUD_VENDOR_TX_BUFSIZE=128
######################################

View File

@ -14,4 +14,10 @@ CIRCUITPY_ESP_FLASH_MODE=dio
CIRCUITPY_ESP_FLASH_FREQ=80m
CIRCUITPY_ESP_FLASH_SIZE=4MB
# We only have enough endpoints available in hardware to
# enable ONE of these at a time.
CIRCUITPY_USB_MIDI = 1
CIRCUITPY_USB_HID = 0
CIRCUITPY_USB_VENDOR = 0
CIRCUITPY_MODULE=wrover

View File

@ -27,6 +27,109 @@
#include "supervisor/board.h"
#include "mpconfigboard.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-module/displayio/__init__.h"
#include "shared-module/displayio/mipi_constants.h"
#define DELAY 0x80
// display init sequence according to LilyGO example app
uint8_t display_init_sequence[] = {
// sw reset
0x01, 0 | DELAY, 150,
// sleep out
0x11, 0 | DELAY, 255,
// normal display mode on
0x13, 0,
// display and color format settings
0x36, 1, 0x08,
0xB6, 2, 0x0A, 0x82,
0x3A, 1 | DELAY, 0x55, 10,
// ST7789V frame rate setting
0xB2, 5, 0x0C, 0x0C, 0x00, 0x33, 0x33,
// voltages: VGH / VGL
0xB7, 1, 0x35,
// ST7789V power setting
0xBB, 1, 0x28,
0xC0, 1, 0x0C,
0xC2, 2, 0x01, 0xFF,
0xC3, 1, 0x10,
0xC4, 1, 0x20,
0xC6, 1, 0x0F,
0xD0, 2, 0xA4, 0xA1,
// ST7789V gamma setting
0xE0, 14, 0xD0, 0x00, 0x02, 0x07, 0x0A, 0x28, 0x32, 0x44, 0x42, 0x06, 0x0E, 0x12, 0x14, 0x17,
0xE1, 14, 0xD0, 0x00, 0x02, 0x07, 0x0A, 0x28, 0x31, 0x54, 0x47, 0x0E, 0x1C, 0x17, 0x1B, 0x1E,
0x21, 0,
// display on
0x29, 0 | DELAY, 255,
};
static void display_init(void) {
busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus;
common_hal_busio_spi_construct(
spi,
&pin_GPIO36, // CLK
&pin_GPIO35, // MOSI
NULL // MISO not connected
);
common_hal_busio_spi_never_reset(spi);
displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
bus->base.type = &displayio_fourwire_type;
common_hal_displayio_fourwire_construct(
bus,
spi,
&pin_GPIO37, // DC
&pin_GPIO34, // CS
&pin_GPIO38, // RST
40000000, // baudrate
0, // polarity
0 // phase
);
displayio_display_obj_t* display = &displays[0].display;
display->base.type = &displayio_display_type;
// workaround as board_init() is called before reset_port() in main.c
pwmout_reset();
common_hal_displayio_display_construct(
display,
bus,
240, // width (after rotation)
135, // height (after rotation)
52, // column start
40, // row start
90, // rotation
16, // color depth
false, // grayscale
false, // pixels in a byte share a row. Only valid for depths < 8
1, // bytes per cell. Only valid for depths < 8
false, // reverse_pixels_in_byte. Only valid for depths < 8
true, // reverse_pixels_in_word
MIPI_COMMAND_SET_COLUMN_ADDRESS, // set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // set row command
MIPI_COMMAND_WRITE_MEMORY_START, // write memory command
0x37, // set vertical scroll command
display_init_sequence,
sizeof(display_init_sequence),
&pin_GPIO33, // backlight pin
NO_BRIGHTNESS_COMMAND,
1.0f, // brightness (ignored)
false, // auto_brightness
false, // single_byte_bounds
false, // data_as_commands
true, // auto_refresh
60, // native_frames_per_second
true, // backlight_on_high
false // SH1107_addressing
);
common_hal_never_reset_pin(&pin_GPIO33); // backlight pin
}
void board_init(void) {
// USB
@ -38,6 +141,9 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
// Display
display_init();
}
bool board_requests_safe_mode(void) {

View File

@ -1,4 +1,5 @@
#include "shared-bindings/board/__init__.h"
#include "shared-module/displayio/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_IO0), MP_ROM_PTR(&pin_GPIO0) },
@ -41,13 +42,13 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_SD_CS), MP_ROM_PTR(&pin_GPIO10) },
// 1.14 inch LCD ST7789
{ MP_ROM_QSTR(MP_QSTR_LCD_MISO), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_LCD_MOSI), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_LCD_CLK), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_LCD_CS), MP_ROM_PTR(&pin_GPIO34) },
{ MP_ROM_QSTR(MP_QSTR_LCD_RST), MP_ROM_PTR(&pin_GPIO38) },
{ MP_ROM_QSTR(MP_QSTR_LCD_BCKL), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_LCD_D_C), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display) },
// Peripheral Power control
{ MP_ROM_QSTR(MP_QSTR_PE_POWER), MP_ROM_PTR(&pin_GPIO14) },

View File

@ -150,6 +150,14 @@ void common_hal_alarm_set_deep_sleep_alarms(size_t n_alarms, const mp_obj_t *ala
void NORETURN alarm_enter_deep_sleep(void) {
alarm_pin_pinalarm_prepare_for_deep_sleep();
alarm_touch_touchalarm_prepare_for_deep_sleep();
// Disable brownout detection, which appears to be triggered sometimes when
// waking from deep sleep.
// See https://www.esp32.com/viewtopic.php?f=13&t=19208#p71084
// and https://github.com/adafruit/circuitpython/issues/4025#issuecomment-771027606
// TODO: We can remove this workaround when ESP-IDF handles this.
CLEAR_PERI_REG_MASK(RTC_CNTL_BROWN_OUT_REG, RTC_CNTL_BROWN_OUT_RST_ENA);
// The ESP-IDF caches the deep sleep settings and applies them before sleep.
// We don't need to worry about resetting them in the interim.
esp_deep_sleep_start();

View File

@ -63,6 +63,9 @@ void common_hal_audiobusio_i2sout_construct(audiobusio_i2sout_obj_t* self,
self->bit_clock = bit_clock;
self->word_select = word_select;
self->data = data;
claim_pin(bit_clock);
claim_pin(word_select);
claim_pin(data);
}
bool common_hal_audiobusio_i2sout_deinited(audiobusio_i2sout_obj_t* self) {

View File

@ -85,7 +85,7 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
if (gpio_get_level(sda->number) == 0 || gpio_get_level(scl->number) == 0) {
reset_pin_number(sda->number);
reset_pin_number(scl->number);
mp_raise_RuntimeError(translate("SDA or SCL needs a pull up"));
mp_raise_RuntimeError(translate("No pull up found on SDA or SCL; check your wiring"));
}
#endif

View File

@ -3,7 +3,6 @@
*
* The MIT License (MIT)
*
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
* Copyright (c) 2020 Lucian Copeland for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
@ -38,16 +37,15 @@
#include "components/lwip/lwip/src/include/lwip/sys.h"
#include "components/lwip/lwip/src/include/lwip/netdb.h"
STATIC socketpool_socket_obj_t * open_socket_handles[CONFIG_LWIP_MAX_SOCKETS]; // 4 on the wrover/wroom
STATIC socketpool_socket_obj_t * open_socket_handles[CONFIG_LWIP_MAX_SOCKETS];
void socket_reset(void) {
for (size_t i = 0; i < MP_ARRAY_SIZE(open_socket_handles); i++) {
if (open_socket_handles[i]) {
if (open_socket_handles[i]->num > 0) {
// Close automatically clears socket handle
common_hal_socketpool_socket_close(open_socket_handles[i]);
open_socket_handles[i] = NULL;
} else {
// accidentally got a TCP socket in here, or something.
open_socket_handles[i] = NULL;
}
}
@ -64,73 +62,14 @@ bool register_open_socket(socketpool_socket_obj_t* self) {
return false;
}
STATIC void _lazy_init_LWIP(socketpool_socket_obj_t* self) {
if (self->num != -1) {
return; //safe to call on existing socket
}
if (self->tls != NULL) {
mp_raise_RuntimeError(translate("Invalid use of TLS Socket"));
}
int socknum = -1;
socknum = lwip_socket(self->family, self->type, self->ipproto);
if (socknum < 0 || !register_open_socket(self)) {
mp_raise_RuntimeError(translate("Out of sockets"));
}
self->num = socknum;
lwip_fcntl(socknum, F_SETFL, O_NONBLOCK);
}
STATIC void _lazy_init_TLS(socketpool_socket_obj_t* self) {
if (self->type != SOCK_STREAM || self->num != -1) {
mp_raise_RuntimeError(translate("Invalid socket for TLS"));
}
esp_tls_t* tls_handle = esp_tls_init();
if (tls_handle == NULL) {
mp_raise_espidf_MemoryError();
}
self->tls = tls_handle;
}
void common_hal_socketpool_socket_settimeout(socketpool_socket_obj_t* self, mp_uint_t timeout_ms) {
self->timeout_ms = timeout_ms;
}
bool common_hal_socketpool_socket_bind(socketpool_socket_obj_t* self,
const char* host, size_t hostlen, uint8_t port) {
_lazy_init_LWIP(self);
struct sockaddr_in bind_addr;
bind_addr.sin_addr.s_addr = inet_addr(host);
bind_addr.sin_family = AF_INET;
bind_addr.sin_port = htons(port);
int opt = 1;
int err = lwip_setsockopt(self->num, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
if (err != 0) {
mp_raise_RuntimeError(translate("Issue setting SO_REUSEADDR"));
}
int result = lwip_bind(self->num, (struct sockaddr *)&bind_addr, sizeof(bind_addr)) == 0;
return result;
}
bool common_hal_socketpool_socket_listen(socketpool_socket_obj_t* self, int backlog) {
return lwip_listen(self->num, backlog) == 0;
}
socketpool_socket_obj_t* common_hal_socketpool_socket_accept(socketpool_socket_obj_t* self,
uint8_t* ip, uint *port) {
uint8_t* ip, uint32_t *port) {
struct sockaddr_in accept_addr;
socklen_t socklen = sizeof(accept_addr);
int newsoc = -1;
bool timed_out = false;
uint64_t start_ticks = supervisor_ticks_ms64();
if (self->timeout_ms != (uint)-1) {
mp_printf(&mp_plat_print, "will timeout");
} else {
mp_printf(&mp_plat_print, "won't timeout");
}
// Allow timeouts and interrupts
while (newsoc == -1 &&
!timed_out &&
@ -140,7 +79,7 @@ socketpool_socket_obj_t* common_hal_socketpool_socket_accept(socketpool_socket_o
}
RUN_BACKGROUND_TASKS;
newsoc = lwip_accept(self->num, (struct sockaddr *)&accept_addr, &socklen);
// In non-blocking mode, fail instead of looping
// In non-blocking mode, fail instead of timing out
if (newsoc == -1 && self->timeout_ms == 0) {
mp_raise_OSError(MP_EAGAIN);
}
@ -159,9 +98,8 @@ socketpool_socket_obj_t* common_hal_socketpool_socket_accept(socketpool_socket_o
socketpool_socket_obj_t *sock = m_new_obj_with_finaliser(socketpool_socket_obj_t);
sock->base.type = &socketpool_socket_type;
sock->num = newsoc;
sock->tls = NULL;
sock->ssl_context = NULL;
sock->pool = self->pool;
sock->connected = true;
if (!register_open_socket(sock)) {
mp_raise_OSError(MP_EBADF);
@ -175,182 +113,97 @@ socketpool_socket_obj_t* common_hal_socketpool_socket_accept(socketpool_socket_o
}
}
bool common_hal_socketpool_socket_bind(socketpool_socket_obj_t* self,
const char* host, size_t hostlen, uint32_t port) {
struct sockaddr_in bind_addr;
bind_addr.sin_addr.s_addr = inet_addr(host);
bind_addr.sin_family = AF_INET;
bind_addr.sin_port = htons(port);
int opt = 1;
int err = lwip_setsockopt(self->num, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt));
if (err != 0) {
mp_raise_RuntimeError(translate("Cannot set socket options"));
}
int result = lwip_bind(self->num, (struct sockaddr *)&bind_addr, sizeof(bind_addr)) == 0;
return result;
}
void common_hal_socketpool_socket_close(socketpool_socket_obj_t* self) {
self->connected = false;
if (self->num >= 0) {
lwip_shutdown(self->num, 0);
lwip_close(self->num);
self->num = -1;
}
// Remove socket record
for (size_t i = 0; i < MP_ARRAY_SIZE(open_socket_handles); i++) {
if (open_socket_handles[i] == self) {
open_socket_handles[i] = NULL;
}
}
}
bool common_hal_socketpool_socket_connect(socketpool_socket_obj_t* self,
const char* host, mp_uint_t hostlen, mp_int_t port) {
// For simplicity we use esp_tls for all TCP connections. If it's not SSL, ssl_context will be
// NULL and should still work. This makes regular TCP connections more memory expensive but TLS
// should become more and more common. Therefore, we optimize for the TLS case.
// Todo: move to SSL Wrapper and add lwip_connect()
_lazy_init_TLS(self);
esp_tls_cfg_t* tls_config = NULL;
if (self->ssl_context != NULL) {
tls_config = &self->ssl_context->ssl_config;
}
int result = esp_tls_conn_new_sync(host, hostlen, port, tls_config, self->tls);
self->connected = result >= 0;
if (result < 0) {
int esp_tls_code;
int flags;
esp_err_t err = esp_tls_get_and_clear_last_error(self->tls->error_handle, &esp_tls_code, &flags);
if (err == ESP_ERR_MBEDTLS_SSL_SETUP_FAILED) {
mp_raise_espidf_MemoryError();
} else if (ESP_ERR_MBEDTLS_SSL_HANDSHAKE_FAILED) {
mp_raise_OSError_msg_varg(translate("Failed SSL handshake"));
} else {
mp_raise_OSError_msg_varg(translate("Unhandled ESP TLS error %d %d %x %d"), esp_tls_code, flags, err, result);
}
} else {
// Connection successful, set the timeout on the underlying socket. We can't rely on the IDF
// to do it because the config structure is only used for TLS connections. Generally, we
// shouldn't hit this timeout because we try to only read available data. However, there is
// always a chance that we try to read something that is used internally.
int fd;
esp_tls_get_conn_sockfd(self->tls, &fd);
struct timeval tv;
tv.tv_sec = 2 * 60; // Two minutes
tv.tv_usec = 0;
setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
}
return self->connected;
}
bool common_hal_socketpool_socket_get_connected(socketpool_socket_obj_t* self) {
return self->connected;
}
mp_uint_t common_hal_socketpool_socket_send(socketpool_socket_obj_t* self, const uint8_t* buf, mp_uint_t len) {
int sent = -1;
if (self->num != -1) {
// LWIP Socket
// TODO: deal with potential failure/add timeout?
sent = lwip_send(self->num, buf, len, 0);
} else if (self->tls != NULL) {
// TLS Socket
sent = esp_tls_conn_write(self->tls, buf, len);
}
if (sent < 0) {
mp_raise_OSError(MP_ENOTCONN);
}
return sent;
}
mp_uint_t common_hal_socketpool_socket_recv_into(socketpool_socket_obj_t* self, const uint8_t* buf, mp_uint_t len) {
int received = 0;
bool timed_out = false;
if (self->num != -1) {
// LWIP Socket
uint64_t start_ticks = supervisor_ticks_ms64();
received = -1;
while (received == -1 &&
!timed_out &&
!mp_hal_is_interrupted()) {
if (self->timeout_ms != (uint)-1 && self->timeout_ms != 0) {
timed_out = supervisor_ticks_ms64() - start_ticks >= self->timeout_ms;
}
RUN_BACKGROUND_TASKS;
received = lwip_recv(self->num, (void*) buf, len - 1, 0);
// In non-blocking mode, fail instead of looping
if (received == -1 && self->timeout_ms == 0) {
mp_raise_OSError(MP_EAGAIN);
}
}
} else if (self->tls != NULL) {
// TLS Socket
int status = 0;
uint64_t start_ticks = supervisor_ticks_ms64();
int sockfd;
esp_err_t err = esp_tls_get_conn_sockfd(self->tls, &sockfd);
if (err != ESP_OK) {
mp_raise_OSError(MP_EBADF);
}
while (received == 0 &&
status >= 0 &&
!timed_out &&
!mp_hal_is_interrupted()) {
if (self->timeout_ms != (uint)-1) {
timed_out = self->timeout_ms == 0 || supervisor_ticks_ms64() - start_ticks >= self->timeout_ms;
}
RUN_BACKGROUND_TASKS;
size_t available = esp_tls_get_bytes_avail(self->tls);
if (available == 0) {
// This reads the raw socket buffer and is used for non-TLS connections
// and between encrypted TLS blocks.
status = lwip_ioctl(sockfd, FIONREAD, &available);
}
size_t remaining = len - received;
if (available > remaining) {
available = remaining;
}
if (available > 0) {
status = esp_tls_conn_read(self->tls, (void*) buf + received, available);
if (status == 0) {
// Reading zero when something is available indicates a closed
// connection. (The available bytes could have been TLS internal.)
break;
}
if (status > 0) {
received += status;
}
}
}
} else {
// Socket does not have a valid descriptor of either type
mp_raise_OSError(MP_EBADF);
}
if (timed_out) {
mp_raise_OSError(ETIMEDOUT);
}
return received;
}
mp_uint_t common_hal_socketpool_socket_sendto(socketpool_socket_obj_t* self,
const char* host, size_t hostlen, uint8_t port, const uint8_t* buf, mp_uint_t len) {
_lazy_init_LWIP(self);
// Get the IP address string
const char* host, size_t hostlen, uint32_t port) {
const struct addrinfo hints = {
.ai_family = AF_INET,
.ai_socktype = SOCK_STREAM,
};
struct addrinfo *result;
int error = lwip_getaddrinfo(host, NULL, &hints, &result);
if (error != 0 || result == NULL) {
return 0;
struct addrinfo *result_i;
int error = lwip_getaddrinfo(host, NULL, &hints, &result_i);
if (error != 0 || result_i == NULL) {
mp_raise_OSError(EHOSTUNREACH);
}
// Set parameters
struct sockaddr_in dest_addr;
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-align"
dest_addr.sin_addr.s_addr = ((struct sockaddr_in *)result->ai_addr)->sin_addr.s_addr;
dest_addr.sin_addr.s_addr = ((struct sockaddr_in *)result_i->ai_addr)->sin_addr.s_addr;
#pragma GCC diagnostic pop
freeaddrinfo(result);
freeaddrinfo(result_i);
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(port);
int bytes_sent = lwip_sendto(self->num, buf, len, 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
if (bytes_sent < 0) {
mp_raise_BrokenPipeError();
return 0;
// Replace above with function call -----
// Switch to blocking mode for this one call
int opts;
opts = lwip_fcntl(self->num,F_GETFL,0);
opts = opts & (~O_NONBLOCK);
lwip_fcntl(self->num, F_SETFL, opts);
int result = -1;
result = lwip_connect(self->num, (struct sockaddr *)&dest_addr, sizeof(struct sockaddr_in));
// Switch back once complete
opts = opts | O_NONBLOCK;
lwip_fcntl(self->num, F_SETFL, opts);
if (result >= 0) {
self->connected = true;
return true;
} else {
mp_raise_OSError(errno);
}
return bytes_sent;
}
bool common_hal_socketpool_socket_get_closed(socketpool_socket_obj_t* self) {
return self->num < 0;
}
bool common_hal_socketpool_socket_get_connected(socketpool_socket_obj_t* self) {
return self->connected;
}
bool common_hal_socketpool_socket_listen(socketpool_socket_obj_t* self, int backlog) {
return lwip_listen(self->num, backlog) == 0;
}
mp_uint_t common_hal_socketpool_socket_recvfrom_into(socketpool_socket_obj_t* self,
uint8_t* buf, mp_uint_t len, uint8_t* ip, uint *port) {
_lazy_init_LWIP(self);
uint8_t* buf, uint32_t len, uint8_t* ip, uint *port) {
struct sockaddr_in source_addr;
socklen_t socklen = sizeof(source_addr);
@ -362,7 +215,7 @@ mp_uint_t common_hal_socketpool_socket_recvfrom_into(socketpool_socket_obj_t* se
while (received == -1 &&
!timed_out &&
!mp_hal_is_interrupted()) {
if (self->timeout_ms != (uint)-1 && self->timeout_ms != 0) {
if (self->timeout_ms != (uint)-1 && self->timeout_ms != 0) {
timed_out = supervisor_ticks_ms64() - start_ticks >= self->timeout_ms;
}
RUN_BACKGROUND_TASKS;
@ -389,24 +242,87 @@ mp_uint_t common_hal_socketpool_socket_recvfrom_into(socketpool_socket_obj_t* se
return received;
}
void common_hal_socketpool_socket_close(socketpool_socket_obj_t* self) {
self->connected = false;
if (self->tls != NULL) {
esp_tls_conn_destroy(self->tls);
self->tls = NULL;
mp_uint_t common_hal_socketpool_socket_recv_into(socketpool_socket_obj_t* self, const uint8_t* buf, uint32_t len) {
int received = 0;
bool timed_out = false;
if (self->num != -1) {
// LWIP Socket
uint64_t start_ticks = supervisor_ticks_ms64();
received = -1;
while (received == -1 &&
!timed_out &&
!mp_hal_is_interrupted()) {
if (self->timeout_ms != (uint)-1 && self->timeout_ms != 0) {
timed_out = supervisor_ticks_ms64() - start_ticks >= self->timeout_ms;
}
RUN_BACKGROUND_TASKS;
received = lwip_recv(self->num, (void*) buf, len, 0);
// In non-blocking mode, fail instead of looping
if (received == -1 && self->timeout_ms == 0) {
mp_raise_OSError(MP_EAGAIN);
}
}
} else {
mp_raise_OSError(MP_EBADF);
}
if (self->num >= 0) {
lwip_shutdown(self->num, 0);
lwip_close(self->num);
self->num = -1;
if (timed_out) {
mp_raise_OSError(ETIMEDOUT);
}
return received;
}
bool common_hal_socketpool_socket_get_closed(socketpool_socket_obj_t* self) {
return self->tls == NULL && self->num < 0;
mp_uint_t common_hal_socketpool_socket_send(socketpool_socket_obj_t* self, const uint8_t* buf, uint32_t len) {
int sent = -1;
if (self->num != -1) {
// LWIP Socket
// TODO: deal with potential failure/add timeout?
sent = lwip_send(self->num, buf, len, 0);
} else {
mp_raise_OSError(MP_EBADF);
}
if (sent < 0) {
mp_raise_OSError(errno);
}
return sent;
}
mp_uint_t common_hal_socketpool_socket_sendto(socketpool_socket_obj_t* self,
const char* host, size_t hostlen, uint32_t port, const uint8_t* buf, uint32_t len) {
mp_uint_t common_hal_socketpool_socket_get_hash(socketpool_socket_obj_t* self) {
return self->num;
// Set parameters
const struct addrinfo hints = {
.ai_family = AF_INET,
.ai_socktype = SOCK_STREAM,
};
struct addrinfo *result_i;
int error = lwip_getaddrinfo(host, NULL, &hints, &result_i);
if (error != 0 || result_i == NULL) {
mp_raise_OSError(EHOSTUNREACH);
}
// Set parameters
struct sockaddr_in dest_addr;
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-align"
dest_addr.sin_addr.s_addr = ((struct sockaddr_in *)result_i->ai_addr)->sin_addr.s_addr;
#pragma GCC diagnostic pop
freeaddrinfo(result_i);
dest_addr.sin_family = AF_INET;
dest_addr.sin_port = htons(port);
int bytes_sent = lwip_sendto(self->num, buf, len, 0, (struct sockaddr *)&dest_addr, sizeof(dest_addr));
if (bytes_sent < 0) {
mp_raise_BrokenPipeError();
return 0;
}
return bytes_sent;
}
void common_hal_socketpool_socket_settimeout(socketpool_socket_obj_t* self, uint32_t timeout_ms) {
self->timeout_ms = timeout_ms;
}

View File

@ -41,8 +41,6 @@ typedef struct {
int family;
int ipproto;
bool connected;
esp_tls_t* tls;
ssl_sslcontext_obj_t* ssl_context;
socketpool_socketpool_obj_t* pool;
mp_uint_t timeout_ms;
} socketpool_socket_obj_t;

View File

@ -25,6 +25,7 @@
*/
#include "shared-bindings/socketpool/SocketPool.h"
#include "common-hal/socketpool/Socket.h"
#include "py/runtime.h"
#include "shared-bindings/wifi/__init__.h"
@ -65,23 +66,23 @@ socketpool_socket_obj_t* common_hal_socketpool_socket(socketpool_socketpool_obj_
mp_raise_NotImplementedError(translate("Only IPv4 sockets supported"));
}
// Consider LWIP and MbedTLS "variant" sockets to be incompatible (for now)
// The variant of the socket is determined by whether the socket is wrapped
// by SSL. If no TLS handle is set in sslcontext_wrap_socket, the first call
// of bind() or connect() will create a LWIP socket with a corresponding
// socketnum.
// TODO: move MbedTLS to its own duplicate Socket or Server API, maybe?
socketpool_socket_obj_t *sock = m_new_obj_with_finaliser(socketpool_socket_obj_t);
sock->base.type = &socketpool_socket_type;
sock->num = -1;
sock->type = socket_type;
sock->family = addr_family;
sock->ipproto = ipproto;
sock->pool = self;
sock->timeout_ms = (uint)-1;
sock->tls = NULL;
sock->ssl_context = NULL;
sock->pool = self;
// Create LWIP socket
int socknum = -1;
socknum = lwip_socket(sock->family, sock->type, sock->ipproto);
if (socknum < 0 || !register_open_socket(sock)) {
mp_raise_RuntimeError(translate("Out of sockets"));
}
sock->num = socknum;
// Sockets should be nonblocking in most cases
lwip_fcntl(socknum, F_SETFL, O_NONBLOCK);
return sock;
}

View File

@ -25,6 +25,9 @@
*/
#include "shared-bindings/ssl/SSLContext.h"
#include "shared-bindings/ssl/SSLSocket.h"
#include "bindings/espidf/__init__.h"
#include "py/runtime.h"
@ -32,10 +35,26 @@ void common_hal_ssl_sslcontext_construct(ssl_sslcontext_obj_t* self) {
}
socketpool_socket_obj_t* common_hal_ssl_sslcontext_wrap_socket(ssl_sslcontext_obj_t* self,
ssl_sslsocket_obj_t* common_hal_ssl_sslcontext_wrap_socket(ssl_sslcontext_obj_t* self,
socketpool_socket_obj_t* socket, bool server_side, const char* server_hostname) {
socket->ssl_context = self;
if (socket->type != SOCK_STREAM) {
mp_raise_RuntimeError(translate("Invalid socket for TLS"));
}
ssl_sslsocket_obj_t *sock = m_new_obj_with_finaliser(ssl_sslsocket_obj_t);
sock->base.type = &ssl_sslsocket_type;
sock->ssl_context = self;
sock->sock = socket;
esp_tls_t* tls_handle = esp_tls_init();
if (tls_handle == NULL) {
mp_raise_espidf_MemoryError();
}
sock->tls = tls_handle;
// TODO: do something with the original socket? Don't call a close on the internal LWIP.
// Should we store server hostname on the socket in case connect is called with an ip?
return socket;
return sock;
}

View File

@ -0,0 +1,176 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
* Copyright (c) 2021 Lucian Copeland for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/ssl/SSLSocket.h"
#include "shared-bindings/socketpool/Socket.h"
#include "shared-bindings/ssl/SSLContext.h"
#include "bindings/espidf/__init__.h"
#include "lib/utils/interrupt_char.h"
#include "py/mperrno.h"
#include "py/runtime.h"
#include "supervisor/shared/tick.h"
ssl_sslsocket_obj_t* common_hal_ssl_sslsocket_accept(ssl_sslsocket_obj_t* self,
uint8_t* ip, uint32_t *port) {
socketpool_socket_obj_t * sock = common_hal_socketpool_socket_accept(self->sock, ip, port);
ssl_sslsocket_obj_t * sslsock = common_hal_ssl_sslcontext_wrap_socket(self->ssl_context, sock, false, NULL);
return sslsock;
}
bool common_hal_ssl_sslsocket_bind(ssl_sslsocket_obj_t* self,
const char* host, size_t hostlen, uint32_t port) {
return common_hal_socketpool_socket_bind(self->sock, host, hostlen, port);
}
void common_hal_ssl_sslsocket_close(ssl_sslsocket_obj_t* self) {
common_hal_socketpool_socket_close(self->sock);
esp_tls_conn_destroy(self->tls);
self->tls = NULL;
}
bool common_hal_ssl_sslsocket_connect(ssl_sslsocket_obj_t* self,
const char* host, size_t hostlen, uint32_t port) {
esp_tls_cfg_t* tls_config = NULL;
tls_config = &self->ssl_context->ssl_config;
int result = esp_tls_conn_new_sync(host, hostlen, port, tls_config, self->tls);
self->sock->connected = result >= 0;
if (result < 0) {
int esp_tls_code;
int flags;
esp_err_t err = esp_tls_get_and_clear_last_error(self->tls->error_handle, &esp_tls_code, &flags);
if (err == ESP_ERR_MBEDTLS_SSL_SETUP_FAILED) {
mp_raise_espidf_MemoryError();
} else if (ESP_ERR_MBEDTLS_SSL_HANDSHAKE_FAILED) {
mp_raise_OSError_msg_varg(translate("Failed SSL handshake"));
} else {
mp_raise_OSError_msg_varg(translate("Unhandled ESP TLS error %d %d %x %d"), esp_tls_code, flags, err, result);
}
} else {
// Connection successful, set the timeout on the underlying socket. We can't rely on the IDF
// to do it because the config structure is only used for TLS connections. Generally, we
// shouldn't hit this timeout because we try to only read available data. However, there is
// always a chance that we try to read something that is used internally.
int fd;
esp_tls_get_conn_sockfd(self->tls, &fd);
struct timeval tv;
tv.tv_sec = 2 * 60; // Two minutes
tv.tv_usec = 0;
setsockopt(fd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv));
setsockopt(fd, SOL_SOCKET, SO_SNDTIMEO, &tv, sizeof(tv));
}
return self->sock->connected;
}
bool common_hal_ssl_sslsocket_get_closed(ssl_sslsocket_obj_t* self) {
return self->tls == NULL && self->sock->num < 0;
}
bool common_hal_ssl_sslsocket_get_connected(ssl_sslsocket_obj_t* self) {
return self->sock->connected;
}
bool common_hal_ssl_sslsocket_listen(ssl_sslsocket_obj_t* self, int backlog) {
return common_hal_socketpool_socket_listen(self->sock, backlog);
}
mp_uint_t common_hal_ssl_sslsocket_recv_into(ssl_sslsocket_obj_t* self, const uint8_t* buf, uint32_t len) {
int received = 0;
bool timed_out = false;
int status = 0;
uint64_t start_ticks = supervisor_ticks_ms64();
int sockfd;
esp_err_t err = esp_tls_get_conn_sockfd(self->tls, &sockfd);
if (err != ESP_OK) {
mp_raise_OSError(MP_EBADF);
}
while (received == 0 &&
status >= 0 &&
!timed_out &&
!mp_hal_is_interrupted()) {
if (self->sock->timeout_ms != (uint)-1 && self->sock->timeout_ms != 0) {
timed_out = self->sock->timeout_ms == 0 || supervisor_ticks_ms64() - start_ticks >= self->sock->timeout_ms;
}
RUN_BACKGROUND_TASKS;
size_t available = esp_tls_get_bytes_avail(self->tls);
if (available == 0) {
// This reads the raw socket buffer and is used for non-TLS connections
// and between encrypted TLS blocks.
status = lwip_ioctl(sockfd, FIONREAD, &available);
}
size_t remaining = len - received;
if (available > remaining) {
available = remaining;
}
if (available > 0) {
status = esp_tls_conn_read(self->tls, (void*) buf + received, available);
if (status == 0) {
// Reading zero when something is available indicates a closed
// connection. (The available bytes could have been TLS internal.)
break;
}
if (status > 0) {
received += status;
}
}
// In non-blocking mode, fail instead of timing out
if (received==0 && self->sock->timeout_ms == 0) {
mp_raise_OSError(MP_EAGAIN);
}
}
if (timed_out) {
mp_raise_OSError(ETIMEDOUT);
}
return received;
}
mp_uint_t common_hal_ssl_sslsocket_send(ssl_sslsocket_obj_t* self, const uint8_t* buf, uint32_t len) {
int sent = -1;
sent = esp_tls_conn_write(self->tls, buf, len);
if (sent < 0) {
int esp_tls_code;
int flags;
esp_err_t err = esp_tls_get_and_clear_last_error(self->tls->error_handle, &esp_tls_code, &flags);
if (err == ESP_ERR_MBEDTLS_SSL_SETUP_FAILED) {
mp_raise_espidf_MemoryError();
} else if (ESP_ERR_MBEDTLS_SSL_HANDSHAKE_FAILED) {
mp_raise_OSError_msg_varg(translate("Failed SSL handshake"));
} else {
mp_raise_OSError_msg_varg(translate("Unhandled ESP TLS error %d %d %x %d"), esp_tls_code, flags, err, sent);
}
}
return sent;
}
void common_hal_ssl_sslsocket_settimeout(ssl_sslsocket_obj_t* self, uint32_t timeout_ms) {
self->sock->timeout_ms = timeout_ms;
}

View File

@ -0,0 +1,44 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 Lucian Copeland for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_ESP32S2_COMMON_HAL_SSL_SSLSOCKET_H
#define MICROPY_INCLUDED_ESP32S2_COMMON_HAL_SSL_SSLSOCKET_H
#include "py/obj.h"
#include "common-hal/ssl/SSLContext.h"
#include "common-hal/socketpool/Socket.h"
#include "components/esp-tls/esp_tls.h"
typedef struct {
mp_obj_base_t base;
socketpool_socket_obj_t * sock;
esp_tls_t* tls;
ssl_sslcontext_obj_t* ssl_context;
} ssl_sslsocket_obj_t;
#endif // MICROPY_INCLUDED_ESP32S2_COMMON_HAL_SSL_SSLSOCKET_H

View File

@ -29,7 +29,10 @@ CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_ROTARYIO = 1
CIRCUITPY_NVM = 1
# We don't have enough endpoints to include MIDI.
CIRCUITPY_USB_MIDI = 0
CIRCUITPY_USB_MIDI ?= 0
CIRCUITPY_USB_HID ?= 1
# We have borrowed the VENDOR nomenclature from tinyusb. VENDOR AKA WEBUSB
CIRCUITPY_USB_VENDOR ?= 0
CIRCUITPY_WIFI = 1
CIRCUITPY_WATCHDOG ?= 1
CIRCUITPY_ESPIDF = 1

View File

@ -110,7 +110,7 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
if( !GPIO_PinRead(sda->gpio, sda->number) || !GPIO_PinRead(scl->gpio, scl->number)) {
common_hal_reset_pin(sda);
common_hal_reset_pin(scl);
mp_raise_RuntimeError(translate("SDA or SCL needs a pull up"));
mp_raise_RuntimeError(translate("No pull up found on SDA or SCL; check your wiring"));
}
#endif

View File

@ -38,6 +38,8 @@
#define LPSPI_MASTER_CLK_FREQ (CLOCK_GetFreq(kCLOCK_Usb1PllPfd0Clk) / (CLOCK_GetDiv(kCLOCK_LpspiDiv) + 1))
#define MAX_SPI_BUSY_RETRIES 100
//arrays use 0 based numbering: SPI1 is stored at index 0
#define MAX_SPI 4
STATIC bool reserved_spi[MAX_SPI];
@ -289,7 +291,12 @@ bool common_hal_busio_spi_write(busio_spi_obj_t *self,
xfer.dataSize = len;
xfer.configFlags = kLPSPI_MasterPcs0;
const status_t status = LPSPI_MasterTransferBlocking(self->spi, &xfer);
status_t status;
int retries = MAX_SPI_BUSY_RETRIES;
do {
status = LPSPI_MasterTransferBlocking(self->spi, &xfer);
} while (status == kStatus_LPSPI_Busy && --retries > 0);
if (status != kStatus_Success)
printf("%s: status %ld\r\n", __func__, status);
@ -311,7 +318,12 @@ bool common_hal_busio_spi_read(busio_spi_obj_t *self,
xfer.rxData = data;
xfer.dataSize = len;
const status_t status = LPSPI_MasterTransferBlocking(self->spi, &xfer);
status_t status;
int retries = MAX_SPI_BUSY_RETRIES;
do {
status = LPSPI_MasterTransferBlocking(self->spi, &xfer);
} while (status == kStatus_LPSPI_Busy && --retries > 0);
if (status != kStatus_Success)
printf("%s: status %ld\r\n", __func__, status);
@ -333,7 +345,12 @@ bool common_hal_busio_spi_transfer(busio_spi_obj_t *self, const uint8_t *data_ou
xfer.rxData = data_in;
xfer.dataSize = len;
const status_t status = LPSPI_MasterTransferBlocking(self->spi, &xfer);
status_t status;
int retries = MAX_SPI_BUSY_RETRIES;
do {
status = LPSPI_MasterTransferBlocking(self->spi, &xfer);
} while (status == kStatus_LPSPI_Busy && --retries > 0);
if (status != kStatus_Success)
printf("%s: status %ld\r\n", __func__, status);

View File

@ -3,6 +3,8 @@ USB_PID = 0xc051
USB_PRODUCT = "Simmel"
USB_MANUFACTURER = "Betrusted"
CIRCUITPY_DEVICES="CDC,MSC,HID"
MCU_CHIP = nrf52833
# SPI_FLASH_FILESYSTEM = 1
@ -29,6 +31,7 @@ CIRCUITPY_RTC = 1
CIRCUITPY_SDCARDIO = 0
CIRCUITPY_TOUCHIO = 0
CIRCUITPY_ULAB = 0
CIRCUITPY_USB_MIDI = 0
CIRCUITPY_WATCHDOG = 1
# Enable micropython.native

View File

@ -131,7 +131,7 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self, const mcu_pin_obj_t *
if (!nrf_gpio_pin_read(sda->number) || !nrf_gpio_pin_read(scl->number)) {
reset_pin_number(sda->number);
reset_pin_number(scl->number);
mp_raise_RuntimeError(translate("SDA or SCL needs a pull up"));
mp_raise_RuntimeError(translate("No pull up found on SDA or SCL; check your wiring"));
}
#endif

View File

@ -36,6 +36,7 @@
#include "supervisor/shared/translate.h"
#include "nrfx_uarte.h"
#include "nrf_gpio.h"
#include <string.h>
// expression to examine, and return value in case of failing
@ -98,10 +99,16 @@ static void uart_callback_irq (const nrfx_uarte_event_t * event, void * context)
switch ( event->type ) {
case NRFX_UARTE_EVT_RX_DONE:
ringbuf_put_n(&self->ringbuf, event->data.rxtx.p_data, event->data.rxtx.bytes);
if (ringbuf_num_empty(&self->ringbuf) >= event->data.rxtx.bytes) {
ringbuf_put_n(&self->ringbuf, event->data.rxtx.p_data, event->data.rxtx.bytes);
// keep receiving
(void) nrfx_uarte_rx(self->uarte, &self->rx_char, 1);
} else {
// receive buffer full, suspend
self->rx_paused = true;
nrf_gpio_pin_write(self->rts_pin_number, true);
}
// keep receiving
(void) nrfx_uarte_rx(self->uarte, &self->rx_char, 1);
break;
case NRFX_UARTE_EVT_TX_DONE:
@ -137,8 +144,8 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
mp_float_t timeout, uint16_t receiver_buffer_size, byte* receiver_buffer,
bool sigint_enabled) {
if ((rts != NULL) || (cts != NULL) || (rs485_dir != NULL) || (rs485_invert)) {
mp_raise_ValueError(translate("RTS/CTS/RS485 Not yet supported on this device"));
if ((rs485_dir != NULL) || (rs485_invert)) {
mp_raise_ValueError(translate("RS485 Not yet supported on this device"));
}
// Find a free UART peripheral.
@ -166,16 +173,18 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
mp_raise_ValueError(translate("Odd parity is not supported"));
}
bool hwfc = rts != NULL || cts != NULL;
nrfx_uarte_config_t config = {
.pseltxd = (tx == NULL) ? NRF_UARTE_PSEL_DISCONNECTED : tx->number,
.pselrxd = (rx == NULL) ? NRF_UARTE_PSEL_DISCONNECTED : rx->number,
.pselcts = NRF_UARTE_PSEL_DISCONNECTED,
.pselrts = NRF_UARTE_PSEL_DISCONNECTED,
.pselcts = (cts == NULL) ? NRF_UARTE_PSEL_DISCONNECTED : cts->number,
.pselrts = (rts == NULL) ? NRF_UARTE_PSEL_DISCONNECTED : rts->number,
.p_context = self,
.baudrate = get_nrf_baud(baudrate),
.interrupt_priority = 7,
.hal_cfg = {
.hwfc = NRF_UARTE_HWFC_DISABLED,
.hwfc = hwfc ? NRF_UARTE_HWFC_ENABLED : NRF_UARTE_HWFC_DISABLED,
.parity = (parity == BUSIO_UART_PARITY_NONE) ? NRF_UARTE_PARITY_EXCLUDED : NRF_UARTE_PARITY_INCLUDED
}
};
@ -207,9 +216,25 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
self->tx_pin_number = NO_PIN;
}
if ( rts != NULL ) {
self->rts_pin_number = rts->number;
claim_pin(rts);
} else {
self->rts_pin_number = NO_PIN;
}
if ( cts != NULL ) {
self->cts_pin_number = cts->number;
claim_pin(cts);
} else {
self->cts_pin_number = NO_PIN;
}
self->baudrate = baudrate;
self->timeout_ms = timeout * 1000;
self->rx_paused = false;
// Initial wait for incoming byte
_VERIFY_ERR(nrfx_uarte_rx(self->uarte, &self->rx_char, 1));
}
@ -223,8 +248,12 @@ void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
nrfx_uarte_uninit(self->uarte);
reset_pin_number(self->tx_pin_number);
reset_pin_number(self->rx_pin_number);
reset_pin_number(self->rts_pin_number);
reset_pin_number(self->cts_pin_number);
self->tx_pin_number = NO_PIN;
self->rx_pin_number = NO_PIN;
self->rts_pin_number = NO_PIN;
self->cts_pin_number = NO_PIN;
ringbuf_free(&self->ringbuf);
}
}
@ -237,6 +266,13 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
uint64_t start_ticks = supervisor_ticks_ms64();
// check removed to reduce code size
/*
if (len > ringbuf_capacity(&self->ringbuf)) {
mp_raise_ValueError(translate("Reading >receiver_buffer_size bytes is not supported"));
}
*/
// Wait for all bytes received or timeout
while ( (ringbuf_num_filled(&self->ringbuf) < len) && (supervisor_ticks_ms64() - start_ticks < self->timeout_ms) ) {
RUN_BACKGROUND_TASKS;
@ -252,6 +288,16 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
// Copy as much received data as available, up to len bytes.
size_t rx_bytes = ringbuf_get_n(&self->ringbuf, data, len);
// restart reader, if stopped
if (self->rx_paused) {
// the character that did not fit in ringbuf is in rx_char
ringbuf_put_n(&self->ringbuf, &self->rx_char, 1);
// keep receiving
(void) nrfx_uarte_rx(self->uarte, &self->rx_char, 1);
nrf_gpio_pin_write(self->rts_pin_number, false);
self->rx_paused = false;
}
NVIC_EnableIRQ(nrfx_get_irq_number(self->uarte->p_reg));
return rx_bytes;

View File

@ -42,10 +42,13 @@ typedef struct {
uint32_t timeout_ms;
ringbuf_t ringbuf;
uint8_t rx_char; // EasyDMA buf
uint8_t rx_char; // EasyDMA buf
bool rx_paused; // set by irq if no space in rbuf
uint8_t tx_pin_number;
uint8_t rx_pin_number;
uint8_t cts_pin_number;
uint8_t rts_pin_number;
} busio_uart_obj_t;
void uart_reset(void);

View File

@ -84,6 +84,7 @@ INC += -I. \
-isystem sdk/src/rp2_common/hardware_pio/include/ \
-isystem sdk/src/rp2_common/hardware_pll/include/ \
-isystem sdk/src/rp2_common/hardware_resets/include/ \
-isystem sdk/src/rp2_common/hardware_rtc/include/ \
-isystem sdk/src/rp2_common/hardware_spi/include/ \
-isystem sdk/src/rp2_common/hardware_sync/include/ \
-isystem sdk/src/rp2_common/hardware_timer/include/ \
@ -98,6 +99,7 @@ INC += -I. \
-isystem sdk/src/rp2_common/pico_platform/include/ \
-isystem sdk/src/rp2_common/pico_runtime/printf/include/ \
-isystem sdk/src/rp2_common/pico_bootrom/include/ \
-isystem sdk/src/rp2_common/pico_unique_id/include/ \
-Isdk_config \
-I../../lib/tinyusb/src \
-I../../supervisor/shared/usb \
@ -166,6 +168,7 @@ SRC_SDK := \
src/rp2_common/hardware_irq/irq.c \
src/rp2_common/hardware_pio/pio.c \
src/rp2_common/hardware_pll/pll.c \
src/rp2_common/hardware_rtc/rtc.c \
src/rp2_common/hardware_spi/spi.c \
src/rp2_common/hardware_sync/sync.c \
src/rp2_common/hardware_timer/timer.c \
@ -182,6 +185,7 @@ SRC_SDK := \
src/rp2_common/pico_printf/printf.c \
src/rp2_common/pico_runtime/runtime.c \
src/rp2_common/pico_stdio/stdio.c \
src/rp2_common/pico_unique_id/unique_id.c \
SRC_SDK := $(addprefix sdk/, $(SRC_SDK))
@ -192,6 +196,7 @@ SRC_C += \
bindings/rp2pio/__init__.c \
common-hal/rp2pio/StateMachine.c \
common-hal/rp2pio/__init__.c \
audio_dma.c \
background.c \
peripherals/pins.c \
fatfs_port.c \

View File

@ -0,0 +1,383 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "audio_dma.h"
#include "shared-bindings/audiocore/RawSample.h"
#include "shared-bindings/audiocore/WaveFile.h"
#include "supervisor/background_callback.h"
#include "py/mpstate.h"
#include "py/runtime.h"
#include "src/rp2_common/hardware_irq/include/hardware/irq.h"
#if CIRCUITPY_AUDIOPWMIO || CIRCUITPY_AUDIOBUSIO
#define AUDIO_DMA_CHANNEL_COUNT NUM_DMA_CHANNELS
void audio_dma_convert_signed(audio_dma_t* dma, uint8_t* buffer, uint32_t buffer_length,
uint8_t** output_buffer, uint32_t* output_buffer_length) {
if (dma->first_buffer_free) {
*output_buffer = dma->first_buffer;
} else {
*output_buffer = dma->second_buffer;
}
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wcast-align"
if (dma->signed_to_unsigned ||
dma->unsigned_to_signed ||
dma->sample_spacing > 1 ||
(dma->sample_resolution != dma->output_resolution)) {
*output_buffer_length = buffer_length / dma->sample_spacing;
uint32_t out_i = 0;
if (dma->sample_resolution <= 8 && dma->output_resolution > 8) {
size_t shift = dma->output_resolution - dma->sample_resolution;
for (uint32_t i = 0; i < buffer_length; i += dma->sample_spacing) {
if (dma->signed_to_unsigned) {
((uint16_t*) *output_buffer)[out_i] = ((uint16_t) ((int8_t*) buffer)[i] + 0x80) << shift;
} else if (dma->unsigned_to_signed) {
((int16_t*) *output_buffer)[out_i] = ((int16_t) ((uint8_t*) buffer)[i] - 0x80) << shift;
} else {
((uint16_t*) *output_buffer)[out_i] = ((uint16_t) ((uint8_t*) buffer)[i]) << shift;
}
out_i += 1;
}
} else if (dma->sample_resolution <= 8 && dma->output_resolution <= 8) {
for (uint32_t i = 0; i < buffer_length; i += dma->sample_spacing) {
if (dma->signed_to_unsigned) {
((uint8_t*) *output_buffer)[out_i] = ((int8_t*) buffer)[i] + 0x80;
} else if (dma->unsigned_to_signed) {
((int8_t*) *output_buffer)[out_i] = ((uint8_t*) buffer)[i] - 0x80;
} else {
((uint8_t*) *output_buffer)[out_i] = ((uint8_t*) buffer)[i];
}
out_i += 1;
}
} else if (dma->sample_resolution > 8 && dma->output_resolution > 8) {
size_t shift = 16 - dma->output_resolution;
for (uint32_t i = 0; i < buffer_length / 2; i += dma->sample_spacing) {
if (dma->signed_to_unsigned) {
((uint16_t*) *output_buffer)[out_i] = ((int16_t*) buffer)[i] + 0x8000;
} else if (dma->unsigned_to_signed) {
((int16_t*) *output_buffer)[out_i] = ((uint16_t*) buffer)[i] - 0x8000;
} else {
((uint16_t*) *output_buffer)[out_i] = ((uint16_t*) buffer)[i];
}
if (dma->output_resolution < 16) {
if (dma->output_signed) {
((int16_t*) *output_buffer)[out_i] = ((int16_t*) *output_buffer)[out_i] >> shift;
} else {
((uint16_t*) *output_buffer)[out_i] = ((uint16_t*) *output_buffer)[out_i] >> shift;
}
}
out_i += 1;
}
}
} else {
*output_buffer = buffer;
*output_buffer_length = buffer_length;
}
#pragma GCC diagnostic pop
dma->first_buffer_free = !dma->first_buffer_free;
}
void audio_dma_load_next_block(audio_dma_t* dma) {
uint8_t dma_channel = dma->channel[1];
if (dma->first_channel_free) {
dma_channel = dma->channel[0];
}
dma->first_channel_free = !dma->first_channel_free;
uint8_t* output_buffer;
uint32_t output_buffer_length;
audioio_get_buffer_result_t get_buffer_result;
uint8_t* buffer;
uint32_t buffer_length;
get_buffer_result = audiosample_get_buffer(dma->sample,
dma->single_channel, dma->audio_channel, &buffer, &buffer_length);
if (get_buffer_result == GET_BUFFER_ERROR) {
audio_dma_stop(dma);
return;
}
audio_dma_convert_signed(dma, buffer, buffer_length, &output_buffer, &output_buffer_length);
// If we don't have an output buffer, save the pointer to first_buffer for use in the single
// buffer special case.
if (dma->first_buffer == NULL) {
dma->first_buffer = output_buffer;
}
dma_channel_set_trans_count(dma_channel, output_buffer_length / dma->output_size, false /* trigger */);
dma_channel_set_read_addr(dma_channel, output_buffer, false /* trigger */);
if (get_buffer_result == GET_BUFFER_DONE) {
if (dma->loop) {
audiosample_reset_buffer(dma->sample, dma->single_channel, dma->audio_channel);
} else {
// Set channel trigger to ourselves so we don't keep going.
dma_channel_hw_t* c = &dma_hw->ch[dma_channel];
c->al1_ctrl = (c->al1_ctrl & ~DMA_CH0_CTRL_TRIG_CHAIN_TO_BITS) | (dma_channel << DMA_CH0_CTRL_TRIG_CHAIN_TO_LSB);
}
}
}
// Playback should be shutdown before calling this.
audio_dma_result audio_dma_setup_playback(audio_dma_t* dma,
mp_obj_t sample,
bool loop,
bool single_channel,
uint8_t audio_channel,
bool output_signed,
uint8_t output_resolution,
uint32_t output_register_address,
uint8_t dma_trigger_source) {
// Use two DMA channels to because the DMA can't wrap to itself without the
// buffer being power of two aligned.
dma->channel[0] = dma_claim_unused_channel(false);
dma->channel[1] = dma_claim_unused_channel(false);
if (dma->channel[0] == NUM_DMA_CHANNELS || dma->channel[1] == NUM_DMA_CHANNELS) {
if (dma->channel[0] < NUM_DMA_CHANNELS) {
dma_channel_unclaim(dma->channel[0]);
}
return AUDIO_DMA_DMA_BUSY;
}
dma->sample = sample;
dma->loop = loop;
dma->single_channel = single_channel;
dma->audio_channel = audio_channel;
dma->signed_to_unsigned = false;
dma->unsigned_to_signed = false;
dma->output_signed = output_signed;
dma->sample_spacing = 1;
dma->first_channel_free = true;
dma->output_resolution = output_resolution;
dma->sample_resolution = audiosample_bits_per_sample(sample);
audiosample_reset_buffer(sample, single_channel, audio_channel);
bool single_buffer;
bool samples_signed;
uint32_t max_buffer_length;
audiosample_get_buffer_structure(sample, single_channel, &single_buffer, &samples_signed,
&max_buffer_length, &dma->sample_spacing);
// Check to see if we have to scale the resolution up.
if (dma->sample_resolution <= 8 && dma->output_resolution > 8) {
max_buffer_length *= 2;
}
if (output_signed != samples_signed ||
dma->sample_spacing > 1 ||
(dma->sample_resolution != dma->output_resolution)) {
max_buffer_length /= dma->sample_spacing;
dma->first_buffer = (uint8_t*) m_realloc(dma->first_buffer, max_buffer_length);
if (dma->first_buffer == NULL) {
return AUDIO_DMA_MEMORY_ERROR;
}
dma->first_buffer_free = true;
if (!single_buffer) {
dma->second_buffer = (uint8_t*) m_realloc(dma->second_buffer, max_buffer_length);
if (dma->second_buffer == NULL) {
return AUDIO_DMA_MEMORY_ERROR;
}
}
dma->signed_to_unsigned = !output_signed && samples_signed;
dma->unsigned_to_signed = output_signed && !samples_signed;
}
if (output_resolution > 8) {
dma->output_size = 2;
} else {
dma->output_size = 1;
}
// Transfer both channels at once.
if (!single_channel && audiosample_channel_count(sample) == 2) {
dma->output_size *= 2;
}
enum dma_channel_transfer_size dma_size = DMA_SIZE_8;
if (dma->output_size == 2) {
dma_size = DMA_SIZE_16;
} else if (dma->output_size == 4) {
dma_size = DMA_SIZE_32;
}
for (size_t i = 0; i < 2; i++) {
dma_channel_config c = dma_channel_get_default_config(dma->channel[i]);
channel_config_set_transfer_data_size(&c, dma_size);
channel_config_set_dreq(&c, dma_trigger_source);
channel_config_set_read_increment(&c, true);
channel_config_set_write_increment(&c, false);
// Chain to the other channel by default.
channel_config_set_chain_to(&c, dma->channel[(i + 1) % 2]);
dma_channel_set_config(dma->channel[i], &c, false /* trigger */);
dma_channel_set_write_addr(dma->channel[i], (void*) output_register_address, false /* trigger */);
}
// We keep the audio_dma_t for internal use and the sample as a root pointer because it
// contains the audiodma structure.
MP_STATE_PORT(playing_audio)[dma->channel[0]] = dma;
MP_STATE_PORT(playing_audio)[dma->channel[1]] = dma;
// Load the first two blocks up front.
audio_dma_load_next_block(dma);
if (!single_buffer) {
audio_dma_load_next_block(dma);
}
// Special case the DMA for a single buffer. It's commonly used for a single wave length of sound
// and may be short. Therefore, we use DMA chaining to loop quickly without involving interrupts.
// On the RP2040 we chain by having a second DMA writing to the config registers of the first.
// Read and write addresses change with DMA so we need to reset the read address back to the
// start of the sample.
if (single_buffer) {
dma_channel_config c = dma_channel_get_default_config(dma->channel[1]);
channel_config_set_transfer_data_size(&c, DMA_SIZE_32);
channel_config_set_dreq(&c, 0x3f); // dma as fast as possible
channel_config_set_read_increment(&c, false);
channel_config_set_write_increment(&c, false);
channel_config_set_chain_to(&c, dma->channel[1]); // Chain to ourselves so we stop.
dma_channel_configure(dma->channel[1], &c,
&dma_hw->ch[dma->channel[0]].al3_read_addr_trig, // write address
&dma->first_buffer, // read address
1, // transaction count
false); // trigger
} else {
// Enable our DMA channels on DMA0 to the CPU. This will wake us up when
// we're WFI.
dma_hw->inte0 |= (1 << dma->channel[0]) | (1 << dma->channel[1]);
irq_set_mask_enabled(1 << DMA_IRQ_0, true);
}
dma_channel_start(dma->channel[0]);
return AUDIO_DMA_OK;
}
void audio_dma_stop(audio_dma_t* dma) {
// Disable our interrupts.
dma_hw->inte0 &= ~((1 << dma->channel[0]) | (1 << dma->channel[1]));
irq_set_mask_enabled(1 << DMA_IRQ_0, false);
// Run any remaining audio tasks because we remove ourselves from
// playing_audio.
RUN_BACKGROUND_TASKS;
for (size_t i = 0; i < 2; i++) {
size_t channel = dma->channel[i];
if (dma_channel_is_busy(channel)) {
dma_channel_abort(channel);
}
dma_channel_unclaim(channel);
MP_STATE_PORT(playing_audio)[channel] = NULL;
dma->channel[i] = NUM_DMA_CHANNELS;
}
// Hold onto our buffers.
}
// To pause we simply stop the DMA. It is the responsibility of the output peripheral
// to hold the previous value.
void audio_dma_pause(audio_dma_t* dma) {
dma_hw->ch[dma->channel[0]].al1_ctrl &= ~DMA_CH0_CTRL_TRIG_EN_BITS;
dma_hw->ch[dma->channel[1]].al1_ctrl &= ~DMA_CH0_CTRL_TRIG_EN_BITS;
}
void audio_dma_resume(audio_dma_t* dma) {
// Always re-enable the non-busy channel first so it's ready to continue when the busy channel
// finishes and chains to it. (An interrupt could make the time between enables long.)
size_t first = 0;
size_t second = 1;
if (dma_channel_is_busy(dma->channel[0])) {
first = 1;
second = 0;
}
dma_hw->ch[dma->channel[first]].al1_ctrl |= DMA_CH0_CTRL_TRIG_EN_BITS;
dma_hw->ch[dma->channel[second]].al1_ctrl |= DMA_CH0_CTRL_TRIG_EN_BITS;
}
bool audio_dma_get_paused(audio_dma_t* dma) {
if (dma->channel[0] >= AUDIO_DMA_CHANNEL_COUNT) {
return false;
}
uint32_t control = dma_hw->ch[dma->channel[0]].ctrl_trig;
return (control & DMA_CH0_CTRL_TRIG_EN_BITS) == 0;
}
void audio_dma_init(audio_dma_t* dma) {
dma->first_buffer = NULL;
dma->second_buffer = NULL;
}
void audio_dma_deinit(audio_dma_t* dma) {
m_free(dma->first_buffer);
dma->first_buffer = NULL;
m_free(dma->second_buffer);
dma->second_buffer = NULL;
}
bool audio_dma_get_playing(audio_dma_t* dma) {
if (dma->channel[0] == NUM_DMA_CHANNELS) {
return false;
}
if (!dma_channel_is_busy(dma->channel[0]) &&
!dma_channel_is_busy(dma->channel[1])) {
audio_dma_stop(dma);
return false;
}
return true;
}
// WARN(tannewt): DO NOT print from here, or anything it calls. Printing calls
// background tasks such as this and causes a stack overflow.
STATIC void dma_callback_fun(void *arg) {
audio_dma_t* dma = arg;
if (dma == NULL) {
return;
}
audio_dma_load_next_block(dma);
}
void isr_dma_0(void) {
for (size_t i = 0; i < NUM_DMA_CHANNELS; i++) {
uint32_t mask = 1 << i;
if ((dma_hw->intr & mask) != 0 && MP_STATE_PORT(playing_audio)[i] != NULL) {
audio_dma_t* dma = MP_STATE_PORT(playing_audio)[i];
background_callback_add(&dma->callback, dma_callback_fun, (void*)dma);
dma_hw->ints0 = mask;
}
}
}
#endif

View File

@ -0,0 +1,91 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_RASPBERRYPI_AUDIO_DMA_OUT_H
#define MICROPY_INCLUDED_RASPBERRYPI_AUDIO_DMA_OUT_H
#include "py/obj.h"
#include "supervisor/background_callback.h"
#include "src/rp2_common/hardware_dma/include/hardware/dma.h"
typedef struct {
mp_obj_t sample;
uint8_t channel[2];
uint8_t audio_channel;
uint8_t output_size;
uint8_t sample_spacing;
bool loop;
bool single_channel;
bool signed_to_unsigned;
bool unsigned_to_signed;
bool output_signed;
bool first_channel_free;
bool first_buffer_free;
uint8_t output_resolution; // in bits
uint8_t sample_resolution; // in bits
uint8_t* first_buffer;
uint8_t* second_buffer;
background_callback_t callback;
} audio_dma_t;
typedef enum {
AUDIO_DMA_OK,
AUDIO_DMA_DMA_BUSY,
AUDIO_DMA_MEMORY_ERROR,
} audio_dma_result;
void audio_dma_init(audio_dma_t* dma);
void audio_dma_deinit(audio_dma_t* dma);
void audio_dma_reset(void);
// This sets everything up but doesn't start the timer.
// Sample is the python object for the sample to play.
// loop is true if we should loop the sample.
// single_channel is true if we only output a single channel. When false, all channels will be
// output.
// audio_channel is the index of the channel to dma. single_channel must be false in this case.
// output_signed is true if the dma'd data should be signed. False and it will be unsigned.
// output_register_address is the address to copy data to.
// dma_trigger_source is the DMA trigger source which cause another copy
audio_dma_result audio_dma_setup_playback(audio_dma_t* dma,
mp_obj_t sample,
bool loop,
bool single_channel,
uint8_t audio_channel,
bool output_signed,
uint8_t output_resolution,
uint32_t output_register_address,
uint8_t dma_trigger_source);
void audio_dma_stop(audio_dma_t* dma);
bool audio_dma_get_playing(audio_dma_t* dma);
void audio_dma_pause(audio_dma_t* dma);
void audio_dma_resume(audio_dma_t* dma);
bool audio_dma_get_paused(audio_dma_t* dma);
#endif // MICROPY_INCLUDED_RASPBERRYPI_AUDIO_DMA_OUT_H

View File

@ -25,20 +25,11 @@
*/
#include "background.h"
#include "supervisor/filesystem.h"
#include "supervisor/shared/tick.h"
#include "supervisor/usb.h"
#include "py/runtime.h"
#include "shared-module/network/__init__.h"
#include "supervisor/shared/stack.h"
#include "supervisor/port.h"
#if CIRCUITPY_DISPLAYIO
#include "shared-module/displayio/__init__.h"
#endif
void port_start_background_task(void) {}
void port_finish_background_task(void) {}
void port_background_task(void) {}
void port_background_task(void) {
}

View File

@ -189,7 +189,7 @@ STATIC mp_obj_t rp2pio_statemachine_make_new(const mp_obj_type_t *type, size_t n
if (bufinfo.len % 2 != 0) {
mp_raise_ValueError(translate("Program size invalid"));
}
if (bufinfo.len > 32) {
if (bufinfo.len > 64) {
mp_raise_ValueError(translate("Program too large"));
}

View File

@ -24,6 +24,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_GP20), MP_ROM_PTR(&pin_GPIO20) },
{ MP_ROM_QSTR(MP_QSTR_GP21), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_GP22), MP_ROM_PTR(&pin_GPIO22) },
{ MP_ROM_QSTR(MP_QSTR_SMPS_MODE), MP_ROM_PTR(&pin_GPIO23) },
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_GP25), MP_ROM_PTR(&pin_GPIO25) },
{ MP_ROM_QSTR(MP_QSTR_GP26_A0), MP_ROM_PTR(&pin_GPIO26) },
@ -35,5 +36,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_GP28_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_GP28), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO28) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO29) },
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_GPIO29) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -1,20 +1,23 @@
// Padded and checksummed version of: /Users/graham/dev/mu/pico_sdk/cmake-build-debug-mu/src/rp2_common/boot_stage2/bs2_default.bin
// Padded and checksummed version of: /home/pi/pico/pico-examples/build/pico-sdk/src/rp2_common/boot_stage2/bs2_default.bin
.section .boot2, "a"
.cpu cortex-m0plus
.thumb
.byte 0x00, 0xb5, 0x2f, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60
.byte 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2b, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x02, 0x21, 0x59, 0x61
.byte 0x01, 0x21, 0xf0, 0x22, 0x99, 0x50, 0x28, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x35, 0x20
.byte 0x00, 0xf0, 0x3e, 0xf8, 0x02, 0x22, 0x90, 0x42, 0x14, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0
.byte 0x2e, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20, 0x18, 0x66, 0x1a, 0x66, 0x00, 0xf0
.byte 0x26, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x19, 0x6e, 0x05, 0x20, 0x00, 0xf0, 0x29, 0xf8, 0x01, 0x21
.byte 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x18, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60
.byte 0x17, 0x49, 0x18, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66, 0xa0, 0x21
.byte 0x19, 0x66, 0x00, 0xf0, 0x0c, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x13, 0x49, 0x11, 0x48, 0x01, 0x60
.byte 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd1, 0x10, 0x48, 0x00, 0x47, 0x03, 0xb5
.byte 0x99, 0x6a, 0x04, 0x20, 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd
.byte 0x02, 0xb5, 0x18, 0x66, 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd
.byte 0x00, 0x00, 0x02, 0x40, 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x5f, 0x00
.byte 0x21, 0x22, 0x00, 0x00, 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0, 0x01, 0x01, 0x00, 0x10
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x27, 0x2a, 0x60
.section .boot2, "ax"
.byte 0x00, 0xb5, 0x32, 0x4b, 0x21, 0x20, 0x58, 0x60, 0x98, 0x68, 0x02, 0x21, 0x88, 0x43, 0x98, 0x60
.byte 0xd8, 0x60, 0x18, 0x61, 0x58, 0x61, 0x2e, 0x4b, 0x00, 0x21, 0x99, 0x60, 0x02, 0x21, 0x59, 0x61
.byte 0x01, 0x21, 0xf0, 0x22, 0x99, 0x50, 0x2b, 0x49, 0x19, 0x60, 0x01, 0x21, 0x99, 0x60, 0x35, 0x20
.byte 0x00, 0xf0, 0x44, 0xf8, 0x02, 0x22, 0x90, 0x42, 0x14, 0xd0, 0x06, 0x21, 0x19, 0x66, 0x00, 0xf0
.byte 0x34, 0xf8, 0x19, 0x6e, 0x01, 0x21, 0x19, 0x66, 0x00, 0x20, 0x18, 0x66, 0x1a, 0x66, 0x00, 0xf0
.byte 0x2c, 0xf8, 0x19, 0x6e, 0x19, 0x6e, 0x19, 0x6e, 0x05, 0x20, 0x00, 0xf0, 0x2f, 0xf8, 0x01, 0x21
.byte 0x08, 0x42, 0xf9, 0xd1, 0x00, 0x21, 0x99, 0x60, 0x1b, 0x49, 0x19, 0x60, 0x00, 0x21, 0x59, 0x60
.byte 0x1a, 0x49, 0x1b, 0x48, 0x01, 0x60, 0x01, 0x21, 0x99, 0x60, 0xeb, 0x21, 0x19, 0x66, 0xa0, 0x21
.byte 0x19, 0x66, 0x00, 0xf0, 0x12, 0xf8, 0x00, 0x21, 0x99, 0x60, 0x16, 0x49, 0x14, 0x48, 0x01, 0x60
.byte 0x01, 0x21, 0x99, 0x60, 0x01, 0xbc, 0x00, 0x28, 0x00, 0xd0, 0x00, 0x47, 0x12, 0x48, 0x13, 0x49
.byte 0x08, 0x60, 0x03, 0xc8, 0x80, 0xf3, 0x08, 0x88, 0x08, 0x47, 0x03, 0xb5, 0x99, 0x6a, 0x04, 0x20
.byte 0x01, 0x42, 0xfb, 0xd0, 0x01, 0x20, 0x01, 0x42, 0xf8, 0xd1, 0x03, 0xbd, 0x02, 0xb5, 0x18, 0x66
.byte 0x18, 0x66, 0xff, 0xf7, 0xf2, 0xff, 0x18, 0x6e, 0x18, 0x6e, 0x02, 0xbd, 0x00, 0x00, 0x02, 0x40
.byte 0x00, 0x00, 0x00, 0x18, 0x00, 0x00, 0x07, 0x00, 0x00, 0x03, 0x5f, 0x00, 0x21, 0x22, 0x00, 0x00
.byte 0xf4, 0x00, 0x00, 0x18, 0x22, 0x20, 0x00, 0xa0, 0x00, 0x01, 0x00, 0x10, 0x08, 0xed, 0x00, 0xe0
.byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xb2, 0x4e, 0x7a

View File

@ -0,0 +1,235 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Jeff Epler for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "common-hal/audiopwmio/PWMAudioOut.h"
#include <stdint.h>
#include <string.h>
#include "extmod/vfs_fat.h"
#include "py/gc.h"
#include "py/mperrno.h"
#include "py/runtime.h"
#include "shared-bindings/pwmio/PWMOut.h"
#include "shared-bindings/audiopwmio/PWMAudioOut.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/Processor.h"
#include "supervisor/shared/tick.h"
#include "supervisor/shared/translate.h"
#include "src/rp2040/hardware_structs/include/hardware/structs/dma.h"
#include "src/rp2_common/hardware_pwm/include/hardware/pwm.h"
#define NUM_DMA_TIMERS 4
void audiopwmout_reset() {
for (size_t i = 0; i < NUM_DMA_TIMERS; i++) {
dma_hw->timer[i] = 0;
}
}
// Caller validates that pins are free.
void common_hal_audiopwmio_pwmaudioout_construct(audiopwmio_pwmaudioout_obj_t* self,
const mcu_pin_obj_t* left_channel, const mcu_pin_obj_t* right_channel, uint16_t quiescent_value) {
if (left_channel != NULL && right_channel != NULL) {
if (pwm_gpio_to_slice_num(left_channel->number) != pwm_gpio_to_slice_num(right_channel->number)) {
mp_raise_ValueError(translate("Pins must share PWM slice"));
}
if (pwm_gpio_to_channel(left_channel->number) != 0) {
mp_raise_ValueError(translate("Stereo left must be on PWM channel A"));
}
if (pwm_gpio_to_channel(right_channel->number) != 1) {
mp_raise_ValueError(translate("Stereo right must be on PWM channel B"));
}
}
// Typically pwmout doesn't let us change frequency with two objects on the
// same PWM slice. However, we have private access to it so we can do what
// we want. ;-) We mark ourselves variable only if we're a mono output to
// prevent other PWM use on the other channel. If stereo, we say fixed
// frequency so we can allocate with ourselves.
bool mono = right_channel == NULL;
// We don't actually know our frequency yet so just pick one that shouldn't
// match anyone else. (We'll only know the frequency once we play something
// back.)
uint32_t frequency = 12500;
// Make sure the PWMOut's are "deinited" by default.
self->left_pwm.pin = NULL;
self->right_pwm.pin = NULL;
pwmout_result_t result = common_hal_pwmio_pwmout_construct(&self->left_pwm,
left_channel, 0, frequency, mono);
if (result == PWMOUT_OK && right_channel != NULL) {
result = common_hal_pwmio_pwmout_construct(&self->right_pwm,
right_channel, 0, frequency, false);
if (result != PWMOUT_OK) {
common_hal_pwmio_pwmout_deinit(&self->left_pwm);
}
}
if (result != PWMOUT_OK) {
mp_raise_RuntimeError(translate("All timers in use"));
}
claim_pin(left_channel);
if (right_channel != NULL) {
claim_pin(right_channel);
}
audio_dma_init(&self->dma);
self->quiescent_value = quiescent_value;
}
bool common_hal_audiopwmio_pwmaudioout_deinited(audiopwmio_pwmaudioout_obj_t* self) {
return common_hal_pwmio_pwmout_deinited(&self->left_pwm);
}
void common_hal_audiopwmio_pwmaudioout_deinit(audiopwmio_pwmaudioout_obj_t* self) {
if (common_hal_audiopwmio_pwmaudioout_deinited(self)) {
return;
}
if (common_hal_audiopwmio_pwmaudioout_get_playing(self)) {
common_hal_audiopwmio_pwmaudioout_stop(self);
}
// TODO: ramp the pwm down from quiescent value to 0
common_hal_pwmio_pwmout_deinit(&self->left_pwm);
common_hal_pwmio_pwmout_deinit(&self->right_pwm);
audio_dma_deinit(&self->dma);
}
void common_hal_audiopwmio_pwmaudioout_play(audiopwmio_pwmaudioout_obj_t* self, mp_obj_t sample, bool loop) {
if (common_hal_audiopwmio_pwmaudioout_get_playing(self)) {
common_hal_audiopwmio_pwmaudioout_stop(self);
}
// TODO: Share pacing timers based on frequency.
size_t pacing_timer = NUM_DMA_TIMERS;
for (size_t i = 0; i < NUM_DMA_TIMERS; i++) {
if (dma_hw->timer[i] == 0) {
pacing_timer = i;
}
break;
}
if (pacing_timer == NUM_DMA_TIMERS) {
mp_raise_RuntimeError(translate("No DMA pacing timer found"));
}
uint32_t tx_register = (uint32_t) &pwm_hw->slice[self->left_pwm.slice].cc;
if (common_hal_pwmio_pwmout_deinited(&self->right_pwm)) {
// Shift the destination if we are outputting to the second PWM channel.
tx_register += self->left_pwm.channel * sizeof(uint16_t);
}
pwmio_pwmout_set_top(&self->left_pwm, 1023);
audio_dma_result result = audio_dma_setup_playback(
&self->dma,
sample,
loop,
false, // single channel
0, // audio channel
false, // output signed
10,
(uint32_t) tx_register, // output register
0x3b + pacing_timer); // data request line
if (result == AUDIO_DMA_DMA_BUSY) {
// common_hal_audiobusio_i2sout_stop(self);
mp_raise_RuntimeError(translate("No DMA channel found"));
} else if (result == AUDIO_DMA_MEMORY_ERROR) {
// common_hal_audiobusio_i2sout_stop(self);
mp_raise_RuntimeError(translate("Unable to allocate buffers for signed conversion"));
}
// OK! We got all of the resources we need and dma is ready.
self->pacing_timer = pacing_timer;
// Playback with two independent clocks. One is the sample rate which
// determines when we push a new sample to the PWM slice. The second is the
// PWM frequency itself.
// Determine the DMA divisor. The RP2040 has four pacing timers we can use
// to trigger the DMA. Each has a 16 bit fractional divisor system clock * X / Y where X and Y
// are 16-bit.
uint32_t sample_rate = audiosample_sample_rate(sample);
uint32_t system_clock = common_hal_mcu_processor_get_frequency();
uint32_t best_numerator = 0;
uint32_t best_denominator = 0;
uint32_t best_error = system_clock;
for (uint32_t denominator = 0xffff; denominator > 0; denominator--) {
uint32_t numerator = (denominator * sample_rate) / system_clock;
uint32_t remainder = (denominator * sample_rate) % system_clock;
if (remainder > (system_clock / 2)) {
numerator += 1;
remainder = system_clock - remainder;
}
if (remainder < best_error) {
best_denominator = denominator;
best_numerator = numerator;
best_error = remainder;
// Stop early if we can't do better.
if (remainder == 0) {
break;
}
}
}
dma_hw->timer[pacing_timer] = best_numerator << 16 | best_denominator;
}
void common_hal_audiopwmio_pwmaudioout_stop(audiopwmio_pwmaudioout_obj_t* self) {
dma_hw->timer[self->pacing_timer] = 0;
self->pacing_timer = NUM_DMA_TIMERS;
audio_dma_stop(&self->dma);
}
bool common_hal_audiopwmio_pwmaudioout_get_playing(audiopwmio_pwmaudioout_obj_t* self) {
bool playing = audio_dma_get_playing(&self->dma);
if (!playing && self->pacing_timer < NUM_DMA_TIMERS) {
dma_hw->timer[self->pacing_timer] = 0;
self->pacing_timer = NUM_DMA_TIMERS;
}
return playing;
}
void common_hal_audiopwmio_pwmaudioout_pause(audiopwmio_pwmaudioout_obj_t* self) {
audio_dma_pause(&self->dma);
}
void common_hal_audiopwmio_pwmaudioout_resume(audiopwmio_pwmaudioout_obj_t* self) {
audio_dma_resume(&self->dma);
}
bool common_hal_audiopwmio_pwmaudioout_get_paused(audiopwmio_pwmaudioout_obj_t* self) {
return audio_dma_get_paused(&self->dma);
}

View File

@ -0,0 +1,47 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Jeff Epler for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_AUDIOPWMIO_PWMAUDIOOUT_H
#define MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_AUDIOPWMIO_PWMAUDIOOUT_H
#include "common-hal/pwmio/PWMOut.h"
#include "audio_dma.h"
typedef struct {
mp_obj_base_t base;
pwmio_pwmout_obj_t left_pwm;
pwmio_pwmout_obj_t right_pwm;
audio_dma_t dma;
uint16_t quiescent_value;
uint8_t pacing_timer;
} audiopwmio_pwmaudioout_obj_t;
void audiopwmout_reset(void);
void audiopwmout_background(void);
#endif // MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_AUDIOPWMIO_PWMAUDIOOUT_H

View File

@ -90,7 +90,7 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
if (!gpio_get(sda->number) || !gpio_get(scl->number)) {
reset_pin_number(sda->number);
reset_pin_number(scl->number);
mp_raise_RuntimeError(translate("SDA or SCL needs a pull up"));
mp_raise_RuntimeError(translate("No pull up found on SDA or SCL; check your wiring"));
}
#endif

View File

@ -25,6 +25,7 @@
*/
#include <math.h>
#include <string.h>
#include "py/mphal.h"
#include "common-hal/microcontroller/Processor.h"
@ -53,12 +54,9 @@ uint32_t common_hal_mcu_processor_get_frequency(void) {
}
void common_hal_mcu_processor_get_uid(uint8_t raw_id[]) {
// TODO: get the unique id from the flash. The chip itself doesn't have one.
// for (int i=0; i<4; i++) {
// for (int k=0; k<4; k++) {
// raw_id[4 * i + k] = (*(id_addresses[i]) >> k * 8) & 0xff;
// }
// }
pico_unique_board_id_t retrieved_id;
pico_get_unique_board_id(&retrieved_id);
memcpy(raw_id, retrieved_id.id, COMMON_HAL_MCU_PROCESSOR_UID_LENGTH);
}
mcu_reset_reason_t common_hal_mcu_processor_get_reset_reason(void) {

View File

@ -27,7 +27,9 @@
#ifndef MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_MICROCONTROLLER_PROCESSOR_H
#define MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_MICROCONTROLLER_PROCESSOR_H
#define COMMON_HAL_MCU_PROCESSOR_UID_LENGTH 16
#include "src/rp2_common/pico_unique_id/include/pico/unique_id.h"
#define COMMON_HAL_MCU_PROCESSOR_UID_LENGTH PICO_UNIQUE_BOARD_ID_SIZE_BYTES
#include "py/obj.h"

View File

@ -35,12 +35,16 @@
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/microcontroller/Processor.h"
#include "supervisor/filesystem.h"
#include "supervisor/port.h"
#include "supervisor/shared/safe_mode.h"
#include "supervisor/shared/translate.h"
#include "src/rp2040/hardware_structs/include/hardware/structs/sio.h"
#include "src/rp2_common/hardware_sync/include/hardware/sync.h"
#include "hardware/watchdog.h"
void common_hal_mcu_delay_us(uint32_t delay) {
mp_hal_delay_us(delay);
}
@ -66,8 +70,11 @@ void common_hal_mcu_enable_interrupts(void) {
asm volatile ("cpsie i" : : : "memory");
}
static bool next_reset_to_bootloader = false;
void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
if (runmode == RUNMODE_BOOTLOADER) {
next_reset_to_bootloader = true;
} else {
}
if (runmode == RUNMODE_SAFE_MODE) {
@ -76,10 +83,17 @@ void common_hal_mcu_on_next_reset(mcu_runmode_t runmode) {
}
void common_hal_mcu_reset(void) {
filesystem_flush();
if (next_reset_to_bootloader) {
reset_to_bootloader();
} else {
reset_cpu();
}
}
// The singleton microcontroller.Processor object, bound to microcontroller.cpu
// It currently only has properties, and no state.
#if CIRCUITPY_PROCESSOR_COUNT > 1
static const mcu_processor_obj_t processor0 = {
.base = {
.type = &mcu_processor_type,
@ -92,7 +106,7 @@ static const mcu_processor_obj_t processor1 = {
},
};
const mp_rom_obj_tuple_t common_hal_mcu_processor_obj = {
const mp_rom_obj_tuple_t common_hal_multi_processor_obj = {
{&mp_type_tuple},
CIRCUITPY_PROCESSOR_COUNT,
{
@ -100,6 +114,13 @@ const mp_rom_obj_tuple_t common_hal_mcu_processor_obj = {
MP_ROM_PTR(&processor1)
}
};
#endif
const mcu_processor_obj_t common_hal_mcu_processor_obj = {
.base = {
.type = &mcu_processor_type,
},
};
#if CIRCUITPY_NVM && CIRCUITPY_INTERNAL_NVM_SIZE > 0
// The singleton nvm.ByteArray object.

View File

@ -29,6 +29,7 @@
#include "bindings/rp2pio/StateMachine.h"
#include "common-hal/rp2pio/StateMachine.h"
#include "shared-bindings/microcontroller/__init__.h"
#include "shared-bindings/digitalio/DigitalInOut.h"
#include "supervisor/port.h"
@ -89,7 +90,11 @@ void common_hal_neopixel_write(const digitalio_digitalinout_obj_t* digitalinout,
// Use a private deinit of the state machine that doesn't reset the pin.
rp2pio_statemachine_deinit(&state_machine, true);
// Reset the pin and release it from the PIO
gpio_init(digitalinout->pin->number);
common_hal_digitalio_digitalinout_switch_to_output((digitalio_digitalinout_obj_t*)digitalinout, false, DRIVE_MODE_PUSH_PULL);
// Update the next start.
next_start_raw_ticks = port_get_raw_ticks(NULL) + 1;
}

View File

@ -39,7 +39,7 @@
#include "src/rp2_common/hardware_pwm/include/hardware/pwm.h"
uint32_t target_slice_frequencies[NUM_PWM_SLICES];
uint32_t slice_fixed_frequency;
uint32_t slice_variable_frequency;
#define CHANNELS_PER_SLICE 2
static uint32_t channel_use;
@ -76,7 +76,7 @@ void pwmout_reset(void) {
}
pwm_set_enabled(slice, false);
target_slice_frequencies[slice] = 0;
slice_fixed_frequency &= ~(1 << slice);
slice_variable_frequency &= ~(1 << slice);
}
}
@ -107,8 +107,8 @@ pwmout_result_t common_hal_pwmio_pwmout_construct(pwmio_pwmout_obj_t* self,
if (variable_frequency) {
return PWMOUT_ALL_TIMERS_ON_PIN_IN_USE;
}
// If the other user wants to change frequency then we can't share either.
if ((slice_fixed_frequency & (1 << slice)) != 0) {
// If the other user wants a variable frequency then we can't share either.
if ((slice_variable_frequency & (1 << slice)) != 0) {
return PWMOUT_ALL_TIMERS_ON_PIN_IN_USE;
}
// If we're both fixed frequency but we don't match target frequencies then we can't share.
@ -118,9 +118,10 @@ pwmout_result_t common_hal_pwmio_pwmout_construct(pwmio_pwmout_obj_t* self,
}
self->slice = slice;
self->channel = channel;
channel_use |= channel_use_mask;
if (!variable_frequency) {
slice_fixed_frequency |= 1 << slice;
if (variable_frequency) {
slice_variable_frequency |= 1 << slice;
}
if (target_slice_frequencies[slice] != frequency) {
@ -153,7 +154,7 @@ void common_hal_pwmio_pwmout_deinit(pwmio_pwmout_obj_t* self) {
uint32_t slice_mask = ((1 << CHANNELS_PER_SLICE) - 1) << (self->slice * CHANNELS_PER_SLICE + self->channel);
if ((channel_use & slice_mask) == 0) {
target_slice_frequencies[self->slice] = 0;
slice_fixed_frequency &= ~(1 << self->slice);
slice_variable_frequency &= ~(1 << self->slice);
pwm_set_enabled(self->slice, false);
}
@ -171,6 +172,13 @@ uint16_t common_hal_pwmio_pwmout_get_duty_cycle(pwmio_pwmout_obj_t* self) {
return self->duty_cycle;
}
void pwmio_pwmout_set_top(pwmio_pwmout_obj_t* self, uint32_t top) {
self->actual_frequency = common_hal_mcu_processor_get_frequency() / top;
self->top = top;
pwm_set_clkdiv_int_frac(self->slice, 1, 0);
pwm_set_wrap(self->slice, self->top - 1);
}
void common_hal_pwmio_pwmout_set_frequency(pwmio_pwmout_obj_t* self, uint32_t frequency) {
if (frequency == 0 || frequency > (common_hal_mcu_processor_get_frequency() / 2)) {
mp_raise_ValueError(translate("Invalid PWM frequency"));

View File

@ -43,5 +43,7 @@ typedef struct {
} pwmio_pwmout_obj_t;
void pwmout_reset(void);
// Private API for AudioPWMOut.
void pwmio_pwmout_set_top(pwmio_pwmout_obj_t* self, uint32_t top);
#endif // MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_PWMIO_PWMOUT_H

View File

@ -546,15 +546,23 @@ static bool _transfer(rp2pio_statemachine_obj_t *self,
size_t tx_remaining = out_len;
while (rx_remaining || tx_remaining) {
if (tx_remaining && !pio_sm_is_tx_fifo_full(self->pio, self->state_machine)) {
*tx_destination = *data_out;
data_out++;
--tx_remaining;
}
if (rx_remaining && !pio_sm_is_rx_fifo_empty(self->pio, self->state_machine)) {
*data_in = (uint8_t) *rx_source;
data_in++;
--rx_remaining;
for (int i=0; i<32; i++) {
bool did_transfer = false;
if (tx_remaining && !pio_sm_is_tx_fifo_full(self->pio, self->state_machine)) {
*tx_destination = *data_out;
data_out++;
--tx_remaining;
did_transfer = true;
}
if (rx_remaining && !pio_sm_is_rx_fifo_empty(self->pio, self->state_machine)) {
*data_in = (uint8_t) *rx_source;
data_in++;
--rx_remaining;
did_transfer = true;
}
if (!did_transfer) {
break;
}
}
RUN_BACKGROUND_TASKS;
if (mp_hal_is_interrupted()) {

View File

@ -0,0 +1,81 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright 2020 microDev
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/rtc/RTC.h"
#include <sys/time.h>
#include "py/runtime.h"
#include "src/rp2_common/hardware_rtc/include/hardware/rtc.h"
void common_hal_rtc_init(void) {
rtc_init();
}
void common_hal_rtc_get_time(timeutils_struct_time_t *tm) {
datetime_t t;
rtc_get_datetime(&t);
tm->tm_year = t.year;
tm->tm_mon = t.month;
tm->tm_mday = t.day;
tm->tm_wday = t.dotw;
tm->tm_hour = t.hour;
tm->tm_min = t.min;
tm->tm_sec = t.sec;
if (tm->tm_wday == 0) {
tm->tm_wday = 6;
} else {
tm->tm_wday-=1;
}
}
void common_hal_rtc_set_time(timeutils_struct_time_t *tm) {
if (tm->tm_wday == 6) {
tm->tm_wday = 0;
} else {
tm->tm_wday+=1;
}
datetime_t t = {
.year = tm->tm_year,
.month = tm->tm_mon,
.day = tm->tm_mday,
.dotw = tm->tm_wday,
.hour = tm->tm_hour,
.min = tm->tm_min,
.sec = tm->tm_sec
};
rtc_set_datetime(&t);
}
int common_hal_rtc_get_calibration(void) {
return 0;
}
void common_hal_rtc_set_calibration(int calibration) {
mp_raise_NotImplementedError(translate("RTC calibration is not supported on this board"));
}

View File

@ -0,0 +1,32 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 microDev
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_RTC_RTC_H
#define MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_RTC_RTC_H
extern void common_hal_rtc_init(void);
#endif // MICROPY_INCLUDED_RASPBERRYPI_COMMON_HAL_RTC_RTC_H

View File

@ -0,0 +1 @@
// No RTC module functions

View File

@ -59,12 +59,11 @@ SECTIONS
*/
.text : {
__reset_start = .;
KEEP (*(.reset))
. = ALIGN(256);
__reset_end = .;
ASSERT(__reset_end - __reset_start == 256, "ERROR: reset section should only be 256 bytes");
__logical_binary_start = .;
KEEP (*(.vectors))
KEEP (*(.binary_info_header))
__binary_info_header_end = .;
KEEP (*(.reset))
/* TODO revisit this now memset/memcpy/float in ROM */
/* bit of a hack right now to exclude all floating point and time critical (e.g. memset, memcpy) code from
* FLASH ... we will include any thing excluded here in .data below by default */
@ -246,5 +245,7 @@ SECTIONS
/* Check if data + heap + stack exceeds RAM limit */
ASSERT(__StackLimit >= __HeapLimit, "region RAM overflowed")
ASSERT( __binary_info_header_end - __logical_binary_start <= 256, "Binary info must be in first 256 bytes of the binary")
/* todo assert on extra code */
}

View File

@ -27,6 +27,8 @@
#ifndef __INCLUDED_MPCONFIGPORT_H
#define __INCLUDED_MPCONFIGPORT_H
#include "src/rp2040/hardware_regs/include/hardware/platform_defs.h"
#define MICROPY_PY_SYS_PLATFORM "RP2040"
#define CIRCUITPY_INTERNAL_NVM_SIZE 0
@ -41,6 +43,7 @@
#include "py/circuitpy_mpconfig.h"
#define MICROPY_PORT_ROOT_POINTERS \
mp_obj_t playing_audio[NUM_DMA_CHANNELS]; \
CIRCUITPY_COMMON_ROOT_POINTERS;
#endif // __INCLUDED_MPCONFIGPORT_H

View File

@ -27,22 +27,26 @@ CIRCUITPY_FULL_BUILD = 1
CIRCUITPY_PWMIO = 1
# Things that need to be implemented.
CIRCUITPY_AUDIOBUSIO = 0 # Use PIO interally for I2S
CIRCUITPY_AUDIOMP3 = 0
CIRCUITPY_COUNTIO = 0 # Use PWM interally
CIRCUITPY_FREQUENCYIO = 0 # Use PWM interally
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_NVM = 0
CIRCUITPY_PULSEIO = 0 # Use PIO interally
CIRCUITPY_ROTARYIO = 0 # Use PIO interally
CIRCUITPY_RTC = 0
CIRCUITPY_WATCHDOG = 1
# Things that are unsupported by the hardware.
# Audio via PWM
CIRCUITPY_AUDIOIO = 0
CIRCUITPY_AUDIOBUSIO ?= 0 # add this later
CIRCUITPY_AUDIOCORE ?= 1
CIRCUITPY_AUDIOPWMIO ?= 1
# These libraries require Cortex M4+ for fancy math instructions.
CIRCUITPY_AUDIOMIXER ?= 0
CIRCUITPY_AUDIOMP3 ?= 0
INTERNAL_LIBM = 1
USB_SERIAL_NUMBER_LENGTH = 32
USB_SERIAL_NUMBER_LENGTH = 16
USB_NUM_EP = 8

@ -1 +1 @@
Subproject commit 26653ea81e340cacee55025d110c3e014a252a87
Subproject commit 55346c953012ef5b32f392fea3b42814db8df2a5

View File

@ -32,6 +32,7 @@
#include "bindings/rp2pio/StateMachine.h"
#include "genhdr/mpversion.h"
#include "shared-bindings/audiopwmio/PWMAudioOut.h"
#include "shared-bindings/busio/I2C.h"
#include "shared-bindings/busio/SPI.h"
#include "shared-bindings/microcontroller/__init__.h"
@ -52,6 +53,8 @@
#include "tusb.h"
#include "pico/bootrom.h"
#include "hardware/watchdog.h"
extern volatile bool mp_msc_enabled;
@ -94,25 +97,37 @@ void reset_port(void) {
reset_spi();
#endif
#if CIRCUITPY_PWMIO
pwmout_reset();
#endif
#if CIRCUITPY_RP2PIO
reset_rp2pio_statemachine();
#endif
#if CIRCUITPY_PWMIO
pwmout_reset();
#if CIRCUITPY_RTC
rtc_reset();
#endif
#if CIRCUITPY_AUDIOPWMIO
audiopwmout_reset();
#endif
reset_all_pins();
}
void reset_to_bootloader(void) {
// reset();
reset_usb_boot(0, 0);
while (true) {}
}
void reset_cpu(void) {
// reset();
while (true) {}
watchdog_reboot(0, SRAM_END, 0);
watchdog_start_tick(12);
while (true) {
__wfi();
}
}
bool port_has_fixed_stack(void) {

View File

@ -292,6 +292,9 @@ endif
ifeq ($(CIRCUITPY_USB_MIDI),1)
SRC_PATTERNS += usb_midi/%
endif
ifeq ($(CIRCUITPY_USB_VENDOR),1)
SRC_PATTERNS += usb_vendor/%
endif
ifeq ($(CIRCUITPY_USTACK),1)
SRC_PATTERNS += ustack/%
endif
@ -388,6 +391,7 @@ SRC_COMMON_HAL_ALL = \
socketpool/Socket.c \
ssl/__init__.c \
ssl/SSLContext.c \
ssl/SSLSocket.c \
supervisor/Runtime.c \
supervisor/__init__.c \
watchdog/WatchDogMode.c \

View File

@ -288,6 +288,12 @@ CFLAGS += -DCIRCUITPY_USB_HID=$(CIRCUITPY_USB_HID)
CIRCUITPY_USB_MIDI ?= 1
CFLAGS += -DCIRCUITPY_USB_MIDI=$(CIRCUITPY_USB_MIDI)
# Defaulting this to OFF initially because it has only been tested on a
# limited number of platforms, and the other platforms do not have this
# setting in their mpconfigport.mk and/or mpconfigboard.mk files yet.
CIRCUITPY_USB_VENDOR ?= 0
CFLAGS += -DCIRCUITPY_USB_VENDOR=$(CIRCUITPY_USB_VENDOR)
CIRCUITPY_PEW ?= 0
CFLAGS += -DCIRCUITPY_PEW=$(CIRCUITPY_PEW)

View File

@ -29,6 +29,7 @@
#include "PewPew.h"
#include "common-hal/_pew/PewPew.h"
STATIC mp_obj_t get_pressed(void) {
pew_obj_t *pew = MP_STATE_VM(pew_singleton);
if (!pew) {
@ -41,12 +42,19 @@ STATIC mp_obj_t get_pressed(void) {
STATIC MP_DEFINE_CONST_FUN_OBJ_0(get_pressed_obj, get_pressed);
STATIC mp_obj_t get_ticks(void) {
return mp_obj_new_int(pew_get_ticks());
}
STATIC MP_DEFINE_CONST_FUN_OBJ_0(get_ticks_obj, get_ticks);
//| """LED matrix driver"""
//|
STATIC const mp_rom_map_elem_t pew_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR__pew) },
{ MP_OBJ_NEW_QSTR(MP_QSTR_PewPew), MP_ROM_PTR(&pewpew_type)},
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_pressed), MP_ROM_PTR(&get_pressed_obj)},
{ MP_OBJ_NEW_QSTR(MP_QSTR_get_ticks), MP_ROM_PTR(&get_ticks_obj)},
};
STATIC MP_DEFINE_CONST_DICT(pew_module_globals,
pew_module_globals_table);

View File

@ -35,6 +35,7 @@
#include "lib/utils/buffer_helper.h"
#include "lib/utils/context_manager_helpers.h"
#include "py/runtime.h"
#include "py/smallint.h"
#include "supervisor/shared/translate.h"
@ -132,15 +133,20 @@ STATIC mp_obj_t adafruit_bus_device_i2cdevice_readinto(size_t n_args, const mp_o
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
mp_obj_t dest[8];
uint8_t num_kws = 1;
mp_load_method(self->i2c, MP_QSTR_readfrom_into, dest);
dest[2] = mp_obj_new_int_from_ull(self->device_address);
dest[2] = MP_OBJ_NEW_SMALL_INT(self->device_address);
dest[3] = args[ARG_buffer].u_obj;
//dest[4] = mp_obj_new_str("start", 5);
dest[4] = MP_OBJ_NEW_QSTR(MP_QSTR_start);
dest[5] = mp_obj_new_int(args[ARG_start].u_int);
dest[6] = MP_OBJ_NEW_QSTR(MP_QSTR_end);
dest[7] = mp_obj_new_int(args[ARG_end].u_int);
mp_call_method_n_kw(2, 2, dest);
dest[5] = MP_OBJ_NEW_SMALL_INT(args[ARG_start].u_int);
if (args[ARG_end].u_int != INT_MAX) {
dest[6] = MP_OBJ_NEW_QSTR(MP_QSTR_end);
dest[7] = MP_OBJ_NEW_SMALL_INT(args[ARG_end].u_int);
num_kws++;
}
mp_call_method_n_kw(2, num_kws, dest);
return mp_const_none;
}
@ -170,14 +176,20 @@ STATIC mp_obj_t adafruit_bus_device_i2cdevice_write(size_t n_args, const mp_obj_
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
mp_obj_t dest[8];
uint8_t num_kws = 1;
mp_load_method(self->i2c, MP_QSTR_writeto, dest);
dest[2] = mp_obj_new_int_from_ull(self->device_address);
dest[2] = MP_OBJ_NEW_SMALL_INT(self->device_address);
dest[3] = args[ARG_buffer].u_obj;
dest[4] = MP_OBJ_NEW_QSTR(MP_QSTR_start);
dest[5] = mp_obj_new_int(args[ARG_start].u_int);
dest[6] = MP_OBJ_NEW_QSTR(MP_QSTR_end);
dest[7] = mp_obj_new_int(args[ARG_end].u_int);
mp_call_method_n_kw(2, 2, dest);
dest[5] = MP_OBJ_NEW_SMALL_INT(args[ARG_start].u_int);
if (args[ARG_end].u_int != INT_MAX) {
dest[6] = MP_OBJ_NEW_QSTR(MP_QSTR_end);
dest[7] = MP_OBJ_NEW_SMALL_INT(args[ARG_end].u_int);
num_kws++;
}
mp_call_method_n_kw(2, num_kws, dest);
return mp_const_none;
}
@ -221,20 +233,29 @@ STATIC mp_obj_t adafruit_bus_device_i2cdevice_write_then_readinto(size_t n_args,
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
mp_obj_t dest[13];
mp_load_method(self->i2c, MP_QSTR_writeto_then_readfrom, dest);
dest[2] = mp_obj_new_int_from_ull(self->device_address);
dest[3] = args[ARG_out_buffer].u_obj;
dest[4] = args[ARG_in_buffer].u_obj;
dest[5] = MP_OBJ_NEW_QSTR(MP_QSTR_out_start);
dest[6] = mp_obj_new_int(args[ARG_out_start].u_int);
dest[7] = MP_OBJ_NEW_QSTR(MP_QSTR_out_end);
dest[8] = mp_obj_new_int(args[ARG_out_end].u_int);
dest[9] = MP_OBJ_NEW_QSTR(MP_QSTR_in_start);
dest[10] = mp_obj_new_int(args[ARG_in_start].u_int);
dest[11] = MP_OBJ_NEW_QSTR(MP_QSTR_in_end);
dest[12] = mp_obj_new_int(args[ARG_in_end].u_int);
uint8_t num_kws = 2;
uint8_t index = 2;
mp_call_method_n_kw(3, 4, dest);
mp_load_method(self->i2c, MP_QSTR_writeto_then_readfrom, dest);
dest[index++] = MP_OBJ_NEW_SMALL_INT(self->device_address);
dest[index++] = args[ARG_out_buffer].u_obj;
dest[index++] = args[ARG_in_buffer].u_obj;
dest[index++] = MP_OBJ_NEW_QSTR(MP_QSTR_out_start);
dest[index++] = MP_OBJ_NEW_SMALL_INT(args[ARG_out_start].u_int);
if (args[ARG_out_end].u_int != INT_MAX) {
dest[index++] = MP_OBJ_NEW_QSTR(MP_QSTR_out_end);
dest[index++] = MP_OBJ_NEW_SMALL_INT(args[ARG_out_end].u_int);
num_kws++;
}
dest[index++] = MP_OBJ_NEW_QSTR(MP_QSTR_in_start);
dest[index++] = MP_OBJ_NEW_SMALL_INT(args[ARG_in_start].u_int);
if (args[ARG_in_end].u_int != INT_MAX) {
dest[index++] = MP_OBJ_NEW_QSTR(MP_QSTR_in_end);
dest[index++] = MP_OBJ_NEW_SMALL_INT(args[ARG_in_end].u_int);
num_kws++;
}
mp_call_method_n_kw(3, num_kws, dest);
return mp_const_none;
}

View File

@ -34,6 +34,7 @@
#include "lib/utils/buffer_helper.h"
#include "lib/utils/context_manager_helpers.h"
#include "py/objproperty.h"
#include "py/runtime.h"
#include "supervisor/shared/translate.h"
@ -100,13 +101,22 @@ STATIC mp_obj_t adafruit_bus_device_spidevice_make_new(const mp_obj_type_t *type
return (mp_obj_t)self;
}
//| def __enter__(self) -> busio.SPI:
//| """Starts a SPI transaction by configuring the SPI and asserting chip select."""
//| ...
//|
STATIC mp_obj_t adafruit_bus_device_spidevice_obj___enter__(mp_obj_t self_in) {
adafruit_bus_device_spidevice_obj_t *self = MP_OBJ_TO_PTR(self_in);
common_hal_adafruit_bus_device_spidevice_enter(self);
return self->spi;
return common_hal_adafruit_bus_device_spidevice_enter(self);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(adafruit_bus_device_spidevice___enter___obj, adafruit_bus_device_spidevice_obj___enter__);
//| def __exit__(self) -> None:
//| """Ends a SPI transaction by deasserting chip select. See
//| :ref:`lifetime-and-contextmanagers` for more info."""
//| ...
//|
STATIC mp_obj_t adafruit_bus_device_spidevice_obj___exit__(size_t n_args, const mp_obj_t *args) {
common_hal_adafruit_bus_device_spidevice_exit(MP_OBJ_TO_PTR(args[0]));
return mp_const_none;

View File

@ -44,7 +44,7 @@ extern const mp_obj_type_t adafruit_bus_device_spidevice_type;
// Initializes the hardware peripheral.
extern void common_hal_adafruit_bus_device_spidevice_construct(adafruit_bus_device_spidevice_obj_t *self, busio_spi_obj_t *spi, digitalio_digitalinout_obj_t *cs,
uint32_t baudrate, uint8_t polarity, uint8_t phase, uint8_t extra_clocks);
extern void common_hal_adafruit_bus_device_spidevice_enter(adafruit_bus_device_spidevice_obj_t *self);
extern mp_obj_t common_hal_adafruit_bus_device_spidevice_enter(adafruit_bus_device_spidevice_obj_t *self);
extern void common_hal_adafruit_bus_device_spidevice_exit(adafruit_bus_device_spidevice_obj_t *self);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_BUSDEVICE_SPIDEVICE_H

View File

@ -41,7 +41,15 @@
//|
//| import microcontroller
//| print(microcontroller.cpu.frequency)
//| print(microcontroller.cpu.temperature)"""
//| print(microcontroller.cpu.temperature)
//|
//| Note that on chips with more than one cpu (such as the RP2040)
//| microcontroller.cpu will return the value for CPU 0.
//| To get values from other CPUs use microcontroller.cpus indexed by
//| the number of the desired cpu. i.e.
//|
//| print(microcontroller.cpus[0].temperature)
//| print(microcontroller.cpus[1].frequency)"""
//|
//| def __init__(self) -> None:

View File

@ -53,7 +53,13 @@
//| cpu: Processor
//| """CPU information and control, such as ``cpu.temperature`` and ``cpu.frequency``
//| (clock frequency).
//| This object is the sole instance of `microcontroller.Processor`."""
//| This object is an instance of `microcontroller.Processor`."""
//|
//| cpus: Processor
//| """CPU information and control, such as ``cpus[0].temperature`` and ``cpus[1].frequency``
//| (clock frequency) on chips with more than 1 cpu. The index selects which cpu.
//| This object is an instance of `microcontroller.Processor`."""
//|
//| def delay_us(delay: int) -> None:
@ -155,6 +161,9 @@ const mp_obj_module_t mcu_pin_module = {
STATIC const mp_rom_map_elem_t mcu_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_microcontroller) },
{ MP_ROM_QSTR(MP_QSTR_cpu), MP_ROM_PTR(&common_hal_mcu_processor_obj) },
#if CIRCUITPY_PROCESSOR_COUNT > 1
{ MP_ROM_QSTR(MP_QSTR_cpus), MP_ROM_PTR(&common_hal_multi_processor_obj) },
#endif
{ MP_ROM_QSTR(MP_QSTR_delay_us), MP_ROM_PTR(&mcu_delay_us_obj) },
{ MP_ROM_QSTR(MP_QSTR_disable_interrupts), MP_ROM_PTR(&mcu_disable_interrupts_obj) },
{ MP_ROM_QSTR(MP_QSTR_enable_interrupts), MP_ROM_PTR(&mcu_enable_interrupts_obj) },

View File

@ -48,7 +48,8 @@ extern const mp_obj_dict_t mcu_pin_globals;
#if CIRCUITPY_PROCESSOR_COUNT == 1
extern const mcu_processor_obj_t common_hal_mcu_processor_obj;
#elif CIRCUITPY_PROCESSOR_COUNT > 1
extern const mp_rom_obj_tuple_t common_hal_mcu_processor_obj;
extern const mcu_processor_obj_t common_hal_mcu_processor_obj;
extern const mp_rom_obj_tuple_t common_hal_multi_processor_obj;
#else
#error "Invalid processor count"
#endif

View File

@ -30,6 +30,7 @@
#include <stdint.h>
#include <stdbool.h>
#include "py/obj.h"
#include "lib/timeutils/timeutils.h"
extern void common_hal_rtc_get_time(timeutils_struct_time_t *tm);

View File

@ -55,6 +55,12 @@
//| Data transfers use the specified baurate (rounded down to one that is supported by
//| the microcontroller)
//|
//| .. important::
//| If the same SPI bus is shared with other peripherals, it is important that
//| the SD card be initialized before accessing any other peripheral on the bus.
//| Failure to do so can prevent the SD card from being recognized until it is
//| powered off or re-inserted.
//|
//| Example usage:
//|
//| .. code-block:: python

View File

@ -3,8 +3,8 @@
*
* The MIT License (MIT)
*
* SPDX-FileCopyrightText: Copyright (c) 2014 Damien P. George
* 2018 Nick Moore for Adafruit Industries
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
* Copyright (c) 2021 Lucian Copeland for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
@ -64,6 +64,25 @@ STATIC mp_obj_t socketpool_socket___exit__(size_t n_args, const mp_obj_t *args)
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socketpool_socket___exit___obj, 4, 4, socketpool_socket___exit__);
//| def accept(self) -> Tuple[Socket, Tuple[str, int]]:
//| """Accept a connection on a listening socket of type SOCK_STREAM,
//| creating a new socket of type SOCK_STREAM.
//| Returns a tuple of (new_socket, remote_address)"""
//|
STATIC mp_obj_t socketpool_socket_accept(mp_obj_t self_in) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
uint8_t ip[4];
uint32_t port;
socketpool_socket_obj_t * sock = common_hal_socketpool_socket_accept(self, ip, &port);
mp_obj_t tuple_contents[2];
tuple_contents[0] = MP_OBJ_FROM_PTR(sock);
tuple_contents[1] = netutils_format_inet_addr(ip, port, NETUTILS_BIG);
return mp_obj_new_tuple(2, tuple_contents);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(socketpool_socket_accept_obj, socketpool_socket_accept);
//| def bind(self, address: Tuple[str, int]) -> None:
//| """Bind a socket to an address
//|
@ -79,8 +98,11 @@ STATIC mp_obj_t socketpool_socket_bind(mp_obj_t self_in, mp_obj_t addr_in) {
size_t hostlen;
const char* host = mp_obj_str_get_data(addr_items[0], &hostlen);
mp_int_t port = mp_obj_get_int(addr_items[1]);
if (port < 0) {
mp_raise_ValueError(translate("port must be >= 0"));
}
bool ok = common_hal_socketpool_socket_bind(self, host, hostlen, port);
bool ok = common_hal_socketpool_socket_bind(self, host, hostlen, (uint32_t)port);
if (!ok) {
mp_raise_ValueError(translate("Error: Failure to bind"));
}
@ -89,41 +111,6 @@ STATIC mp_obj_t socketpool_socket_bind(mp_obj_t self_in, mp_obj_t addr_in) {
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_bind_obj, socketpool_socket_bind);
//| def listen(self, backlog: int) -> None:
//| """Set socket to listen for incoming connections
//|
//| :param ~int backlog: length of backlog queue for waiting connetions"""
//| ...
//|
STATIC mp_obj_t socketpool_socket_listen(mp_obj_t self_in, mp_obj_t backlog_in) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
int backlog = mp_obj_get_int(backlog_in);
common_hal_socketpool_socket_listen(self, backlog);
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_listen_obj, socketpool_socket_listen);
//| def accept(self) -> Tuple[Socket, Tuple[str, int]]:
//| """Accept a connection on a listening socket of type SOCK_STREAM,
//| creating a new socket of type SOCK_STREAM.
//| Returns a tuple of (new_socket, remote_address)"""
//|
STATIC mp_obj_t socketpool_socket_accept(mp_obj_t self_in) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
uint8_t ip[4];
uint port;
socketpool_socket_obj_t * sock = common_hal_socketpool_socket_accept(self, ip, &port);
mp_obj_t tuple_contents[2];
tuple_contents[0] = MP_OBJ_FROM_PTR(sock);
tuple_contents[1] = netutils_format_inet_addr(ip, port, NETUTILS_BIG);
return mp_obj_new_tuple(2, tuple_contents);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(socketpool_socket_accept_obj, socketpool_socket_accept);
//| def close(self) -> None:
//| """Closes this Socket and makes its resources available to its SocketPool."""
//|
@ -149,8 +136,11 @@ STATIC mp_obj_t socketpool_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
size_t hostlen;
const char* host = mp_obj_str_get_data(addr_items[0], &hostlen);
mp_int_t port = mp_obj_get_int(addr_items[1]);
if (port < 0) {
mp_raise_ValueError(translate("port must be >= 0"));
}
bool ok = common_hal_socketpool_socket_connect(self, host, hostlen, port);
bool ok = common_hal_socketpool_socket_connect(self, host, hostlen, (uint32_t)port);
if (!ok) {
mp_raise_OSError(0);
}
@ -159,31 +149,47 @@ STATIC mp_obj_t socketpool_socket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_connect_obj, socketpool_socket_connect);
//| def send(self, bytes: ReadableBuffer) -> int:
//| """Send some bytes to the connected remote address.
//| Suits sockets of type SOCK_STREAM
//| def listen(self, backlog: int) -> None:
//| """Set socket to listen for incoming connections
//|
//| :param ~bytes bytes: some bytes to send"""
//| :param ~int backlog: length of backlog queue for waiting connetions"""
//| ...
//|
STATIC mp_obj_t socketpool_socket_send(mp_obj_t self_in, mp_obj_t buf_in) {
STATIC mp_obj_t socketpool_socket_listen(mp_obj_t self_in, mp_obj_t backlog_in) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
if (common_hal_socketpool_socket_get_closed(self)) {
// Bad file number.
mp_raise_OSError(MP_EBADF);
}
if (!common_hal_socketpool_socket_get_connected(self)) {
mp_raise_BrokenPipeError();
}
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(buf_in, &bufinfo, MP_BUFFER_READ);
mp_int_t ret = common_hal_socketpool_socket_send(self, bufinfo.buf, bufinfo.len);
if (ret == -1) {
mp_raise_BrokenPipeError();
}
return mp_obj_new_int_from_uint(ret);
int backlog = mp_obj_get_int(backlog_in);
common_hal_socketpool_socket_listen(self, backlog);
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_send_obj, socketpool_socket_send);
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_listen_obj, socketpool_socket_listen);
//| def recvfrom_into(self, buffer: WriteableBuffer) -> Tuple[int, Tuple[str, int]]:
//| """Reads some bytes from a remote address.
//|
//| Returns a tuple containing
//| * the number of bytes received into the given buffer
//| * a remote_address, which is a tuple of ip address and port number
//|
//| :param object buffer: buffer to read into"""
//| ...
//|
STATIC mp_obj_t socketpool_socket_recvfrom_into(mp_obj_t self_in, mp_obj_t data_in) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(data_in, &bufinfo, MP_BUFFER_WRITE);
byte ip[4];
mp_uint_t port;
mp_int_t ret = common_hal_socketpool_socket_recvfrom_into(self,
(byte*)bufinfo.buf, bufinfo.len, ip, &port);
mp_obj_t tuple_contents[2];
tuple_contents[0] = mp_obj_new_int_from_uint(ret);
tuple_contents[1] = netutils_format_inet_addr(ip, port, NETUTILS_BIG);
return mp_obj_new_tuple(2, tuple_contents);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_recvfrom_into_obj, socketpool_socket_recvfrom_into);
//| def recv_into(self, buffer: WriteableBuffer, bufsize: int) -> int:
//| """Reads some bytes from the connected remote address, writing
@ -199,7 +205,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_send_obj, socketpool_socket_s
//| :param int bufsize: optionally, a maximum number of bytes to read."""
//| ...
//|
STATIC mp_obj_t socketpool_socket_recv_into(size_t n_args, const mp_obj_t *args) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(args[0]);
if (common_hal_socketpool_socket_get_closed(self)) {
@ -232,6 +237,32 @@ STATIC mp_obj_t socketpool_socket_recv_into(size_t n_args, const mp_obj_t *args)
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socketpool_socket_recv_into_obj, 2, 3, socketpool_socket_recv_into);
//| def send(self, bytes: ReadableBuffer) -> int:
//| """Send some bytes to the connected remote address.
//| Suits sockets of type SOCK_STREAM
//|
//| :param ~bytes bytes: some bytes to send"""
//| ...
//|
STATIC mp_obj_t socketpool_socket_send(mp_obj_t self_in, mp_obj_t buf_in) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
if (common_hal_socketpool_socket_get_closed(self)) {
// Bad file number.
mp_raise_OSError(MP_EBADF);
}
if (!common_hal_socketpool_socket_get_connected(self)) {
mp_raise_BrokenPipeError();
}
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(buf_in, &bufinfo, MP_BUFFER_READ);
mp_int_t ret = common_hal_socketpool_socket_send(self, bufinfo.buf, bufinfo.len);
if (ret == -1) {
mp_raise_BrokenPipeError();
}
return mp_obj_new_int_from_uint(ret);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_send_obj, socketpool_socket_send);
//| def sendto(self, bytes: ReadableBuffer, address: Tuple[str, int]) -> int:
//| """Send some bytes to a specific address.
//| Suits sockets of type SOCK_DGRAM
@ -240,7 +271,6 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socketpool_socket_recv_into_obj, 2, 3
//| :param ~tuple address: tuple of (remote_address, remote_port)"""
//| ...
//|
STATIC mp_obj_t socketpool_socket_sendto(mp_obj_t self_in, mp_obj_t data_in, mp_obj_t addr_in) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
@ -254,8 +284,11 @@ STATIC mp_obj_t socketpool_socket_sendto(mp_obj_t self_in, mp_obj_t data_in, mp_
size_t hostlen;
const char* host = mp_obj_str_get_data(addr_items[0], &hostlen);
mp_int_t port = mp_obj_get_int(addr_items[1]);
if (port < 0) {
mp_raise_ValueError(translate("port must be >= 0"));
}
mp_int_t ret = common_hal_socketpool_socket_sendto(self, host, hostlen, port, bufinfo.buf, bufinfo.len);
mp_int_t ret = common_hal_socketpool_socket_sendto(self, host, hostlen, (uint32_t)port, bufinfo.buf, bufinfo.len);
if (!ret) {
mp_raise_OSError(0);
}
@ -264,37 +297,28 @@ STATIC mp_obj_t socketpool_socket_sendto(mp_obj_t self_in, mp_obj_t data_in, mp_
}
STATIC MP_DEFINE_CONST_FUN_OBJ_3(socketpool_socket_sendto_obj, socketpool_socket_sendto);
//| def recvfrom_into(self, buffer: WriteableBuffer) -> Tuple[int, Tuple[str, int]]:
//| """Reads some bytes from a remote address.
//| def setblocking(self, flag: bool) -> Optional[int]:
//| """Set the blocking behaviour of this socket.
//|
//| Returns a tuple containing
//| * the number of bytes received into the given buffer
//| * a remote_address, which is a tuple of ip address and port number
//|
//| :param object buffer: buffer to read into"""
//| :param ~bool flag: False means non-blocking, True means block indefinitely."""
//| ...
//|
STATIC mp_obj_t socketpool_socket_recvfrom_into(mp_obj_t self_in, mp_obj_t data_in) {
// method socket.setblocking(flag)
STATIC mp_obj_t socketpool_socket_setblocking(mp_obj_t self_in, mp_obj_t blocking) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(data_in, &bufinfo, MP_BUFFER_WRITE);
byte ip[4];
mp_uint_t port;
mp_int_t ret = common_hal_socketpool_socket_recvfrom_into(self,
(byte*)bufinfo.buf, bufinfo.len, ip, &port);
mp_obj_t tuple_contents[2];
tuple_contents[0] = mp_obj_new_int_from_uint(ret);
tuple_contents[1] = netutils_format_inet_addr(ip, port, NETUTILS_BIG);
return mp_obj_new_tuple(2, tuple_contents);
if (mp_obj_is_true(blocking)) {
common_hal_socketpool_socket_settimeout(self, -1);
} else {
common_hal_socketpool_socket_settimeout(self, 0);
}
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_recvfrom_into_obj, socketpool_socket_recvfrom_into);
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_setblocking_obj, socketpool_socket_setblocking);
// //| def setsockopt(self, level: int, optname: int, value: int) -> None:
// //| """Sets socket options"""
// //| ...
// //|
// STATIC mp_obj_t socketpool_socket_setsockopt(size_t n_args, const mp_obj_t *args) {
// // mod_network_socket_obj_t *self = MP_OBJ_TO_PTR(args[0]);
@ -324,13 +348,13 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_recvfrom_into_obj, socketpool
// }
// STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(socketpool_socket_setsockopt_obj, 4, 4, socketpool_socket_setsockopt);
//| def settimeout(self, value: int) -> None:
//| """Set the timeout value for this socket.
//|
//| :param ~int value: timeout in seconds. 0 means non-blocking. None means block indefinitely."""
//| ...
//|
STATIC mp_obj_t socketpool_socket_settimeout(mp_obj_t self_in, mp_obj_t timeout_in) {
socketpool_socket_obj_t *self = MP_OBJ_TO_PTR(self_in);
mp_uint_t timeout_ms;
@ -348,24 +372,6 @@ STATIC mp_obj_t socketpool_socket_settimeout(mp_obj_t self_in, mp_obj_t timeout_
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_settimeout_obj, socketpool_socket_settimeout);
// //| def setblocking(self, flag: bool) -> Optional[int]:
// //| """Set the blocking behaviour of this socket.
// //|
// //| :param ~bool flag: False means non-blocking, True means block indefinitely."""
// //| ...
// //|
// // method socket.setblocking(flag)
// STATIC mp_obj_t socketpool_socket_setblocking(mp_obj_t self_in, mp_obj_t blocking) {
// // if (mp_obj_is_true(blocking)) {
// // return socket_settimeout(self_in, mp_const_none);
// // } else {
// // return socket_settimeout(self_in, MP_OBJ_NEW_SMALL_INT(0));
// // }
// return mp_const_none;
// }
// STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_setblocking_obj, socketpool_socket_setblocking);
//| def __hash__(self) -> int:
//| """Returns a hash for the Socket."""
//| ...
@ -373,7 +379,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_2(socketpool_socket_settimeout_obj, socketpool_so
STATIC mp_obj_t socketpool_socket_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
switch (op) {
case MP_UNARY_OP_HASH: {
return MP_OBJ_NEW_SMALL_INT(common_hal_socketpool_socket_get_hash(MP_OBJ_TO_PTR(self_in)));
return mp_obj_id(self_in);
}
default:
return MP_OBJ_NULL; // op not supported
@ -384,19 +390,19 @@ STATIC const mp_rom_map_elem_t socketpool_socket_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&socketpool_socket___exit___obj) },
{ MP_ROM_QSTR(MP_QSTR___del__), MP_ROM_PTR(&socketpool_socket_close_obj) },
{ MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&socketpool_socket_close_obj) },
{ MP_ROM_QSTR(MP_QSTR_bind), MP_ROM_PTR(&socketpool_socket_bind_obj) },
{ MP_ROM_QSTR(MP_QSTR_listen), MP_ROM_PTR(&socketpool_socket_listen_obj) },
{ MP_ROM_QSTR(MP_QSTR_accept), MP_ROM_PTR(&socketpool_socket_accept_obj) },
{ MP_ROM_QSTR(MP_QSTR_bind), MP_ROM_PTR(&socketpool_socket_bind_obj) },
{ MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&socketpool_socket_close_obj) },
{ MP_ROM_QSTR(MP_QSTR_connect), MP_ROM_PTR(&socketpool_socket_connect_obj) },
{ MP_ROM_QSTR(MP_QSTR_send), MP_ROM_PTR(&socketpool_socket_send_obj) },
{ MP_ROM_QSTR(MP_QSTR_sendto), MP_ROM_PTR(&socketpool_socket_sendto_obj) },
{ MP_ROM_QSTR(MP_QSTR_listen), MP_ROM_PTR(&socketpool_socket_listen_obj) },
{ MP_ROM_QSTR(MP_QSTR_recvfrom_into), MP_ROM_PTR(&socketpool_socket_recvfrom_into_obj) },
{ MP_ROM_QSTR(MP_QSTR_recv_into), MP_ROM_PTR(&socketpool_socket_recv_into_obj) },
{ MP_ROM_QSTR(MP_QSTR_send), MP_ROM_PTR(&socketpool_socket_send_obj) },
{ MP_ROM_QSTR(MP_QSTR_sendto), MP_ROM_PTR(&socketpool_socket_sendto_obj) },
{ MP_ROM_QSTR(MP_QSTR_setblocking), MP_ROM_PTR(&socketpool_socket_setblocking_obj) },
// { MP_ROM_QSTR(MP_QSTR_setsockopt), MP_ROM_PTR(&socketpool_socket_setsockopt_obj) },
{ MP_ROM_QSTR(MP_QSTR_settimeout), MP_ROM_PTR(&socketpool_socket_settimeout_obj) },
// { MP_ROM_QSTR(MP_QSTR_setblocking), MP_ROM_PTR(&socketpool_socket_setblocking_obj) },
};
STATIC MP_DEFINE_CONST_DICT(socketpool_socket_locals_dict, socketpool_socket_locals_dict_table);

View File

@ -31,22 +31,20 @@
extern const mp_obj_type_t socketpool_socket_type;
void common_hal_socketpool_socket_settimeout(socketpool_socket_obj_t* self, mp_uint_t timeout_ms);
bool common_hal_socketpool_socket_bind(socketpool_socket_obj_t* self, const char* host, size_t hostlen, uint8_t port);
bool common_hal_socketpool_socket_listen(socketpool_socket_obj_t* self, int backlog);
socketpool_socket_obj_t * common_hal_socketpool_socket_accept(socketpool_socket_obj_t* self, uint8_t* ip, uint *port);
bool common_hal_socketpool_socket_connect(socketpool_socket_obj_t* self, const char* host, size_t hostlen, mp_int_t port);
mp_uint_t common_hal_socketpool_socket_send(socketpool_socket_obj_t* self, const uint8_t* buf, mp_uint_t len);
mp_uint_t common_hal_socketpool_socket_recv_into(socketpool_socket_obj_t* self, const uint8_t* buf, mp_uint_t len);
mp_uint_t common_hal_socketpool_socket_sendto(socketpool_socket_obj_t* self,
const char* host, size_t hostlen, uint8_t port, const uint8_t* buf, mp_uint_t len);
mp_uint_t common_hal_socketpool_socket_recvfrom_into(socketpool_socket_obj_t* self,
uint8_t* buf, mp_uint_t len, uint8_t* ip, uint *port);
socketpool_socket_obj_t * common_hal_socketpool_socket_accept(socketpool_socket_obj_t* self, uint8_t* ip, uint32_t *port);
bool common_hal_socketpool_socket_bind(socketpool_socket_obj_t* self, const char* host, size_t hostlen, uint32_t port);
void common_hal_socketpool_socket_close(socketpool_socket_obj_t* self);
bool common_hal_socketpool_socket_connect(socketpool_socket_obj_t* self, const char* host, size_t hostlen, uint32_t port);
bool common_hal_socketpool_socket_get_closed(socketpool_socket_obj_t* self);
bool common_hal_socketpool_socket_get_connected(socketpool_socket_obj_t* self);
mp_uint_t common_hal_socketpool_socket_get_hash(socketpool_socket_obj_t* self);
mp_uint_t common_hal_socketpool_socket_get_timeout(socketpool_socket_obj_t* self);
bool common_hal_socketpool_socket_listen(socketpool_socket_obj_t* self, int backlog);
mp_uint_t common_hal_socketpool_socket_recvfrom_into(socketpool_socket_obj_t* self,
uint8_t* buf, uint32_t len, uint8_t* ip, uint32_t *port);
mp_uint_t common_hal_socketpool_socket_recv_into(socketpool_socket_obj_t* self, const uint8_t* buf, uint32_t len);
mp_uint_t common_hal_socketpool_socket_send(socketpool_socket_obj_t* self, const uint8_t* buf, uint32_t len);
mp_uint_t common_hal_socketpool_socket_sendto(socketpool_socket_obj_t* self,
const char* host, size_t hostlen, uint32_t port, const uint8_t* buf, uint32_t len);
void common_hal_socketpool_socket_settimeout(socketpool_socket_obj_t* self, uint32_t timeout_ms);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_SOCKETPOOL_SOCKET_H

View File

@ -3,8 +3,7 @@
*
* The MIT License (MIT)
*
* SPDX-FileCopyrightText: Copyright (c) 2014 Damien P. George
* 2018 Nick Moore for Adafruit Industries
* Copyright (c) 2020 Scott Shawcroft for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal

View File

@ -51,7 +51,7 @@ STATIC mp_obj_t ssl_sslcontext_make_new(const mp_obj_type_t *type, size_t n_args
return MP_OBJ_FROM_PTR(s);
}
//| def wrap_socket(sock: socketpool.Socket, *, server_side: bool = False, server_hostname: Optional[str] = None) -> socketpool.Socket:
//| def wrap_socket(sock: socketpool.Socket, *, server_side: bool = False, server_hostname: Optional[str] = None) -> ssl.SSLSocket:
//| """Wraps the socket into a socket-compatible class that handles SSL negotiation.
//| The socket must be of type SOCK_STREAM."""
//| ...

View File

@ -30,12 +30,13 @@
#include "common-hal/ssl/SSLContext.h"
#include "shared-bindings/socketpool/Socket.h"
#include "shared-bindings/ssl/SSLSocket.h"
extern const mp_obj_type_t ssl_sslcontext_type;
void common_hal_ssl_sslcontext_construct(ssl_sslcontext_obj_t* self);
socketpool_socket_obj_t* common_hal_ssl_sslcontext_wrap_socket(ssl_sslcontext_obj_t* self,
ssl_sslsocket_obj_t* common_hal_ssl_sslcontext_wrap_socket(ssl_sslcontext_obj_t* self,
socketpool_socket_obj_t* sock, bool server_side, const char* server_hostname);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_SSL_SSLCONTEXT_H

View File

@ -0,0 +1,326 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2021 Lucian Copeland for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#include "shared-bindings/ssl/SSLSocket.h"
#include <stdio.h>
#include <string.h>
#include "lib/utils/context_manager_helpers.h"
#include "py/objtuple.h"
#include "py/objlist.h"
#include "py/runtime.h"
#include "py/mperrno.h"
#include "lib/netutils/netutils.h"
//| class SSLSocket:
//| """Implements TLS security on a subset of `socketpool.Socket` functions. Cannot be created
//| directly. Instead, call `wrap_socket` on an existing socket object.
//|
//| Provides a subset of CPython's `ssl.SSLSocket` API. It only implements the versions of
//| recv that do not allocate bytes objects."""
//|
//| def __enter__(self) -> SSLSocket:
//| """No-op used by Context Managers."""
//| ...
//|
// Provided by context manager helper.
//| def __exit__(self) -> None:
//| """Automatically closes the Socket when exiting a context. See
//| :ref:`lifetime-and-contextmanagers` for more info."""
//| ...
//|
STATIC mp_obj_t ssl_sslsocket___exit__(size_t n_args, const mp_obj_t *args) {
(void)n_args;
common_hal_ssl_sslsocket_close(args[0]);
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(ssl_sslsocket___exit___obj, 4, 4, ssl_sslsocket___exit__);
//| def accept(self) -> Tuple[SSLSocket, Tuple[str, int]]:
//| """Accept a connection on a listening socket of type SOCK_STREAM,
//| creating a new socket of type SOCK_STREAM.
//| Returns a tuple of (new_socket, remote_address)"""
//|
STATIC mp_obj_t ssl_sslsocket_accept(mp_obj_t self_in) {
ssl_sslsocket_obj_t *self = MP_OBJ_TO_PTR(self_in);
uint8_t ip[4];
uint32_t port;
ssl_sslsocket_obj_t * sslsock = common_hal_ssl_sslsocket_accept(self, ip, &port);
mp_obj_t tuple_contents[2];
tuple_contents[0] = MP_OBJ_FROM_PTR(sslsock);
tuple_contents[1] = netutils_format_inet_addr(ip, port, NETUTILS_BIG);
return mp_obj_new_tuple(2, tuple_contents);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(ssl_sslsocket_accept_obj, ssl_sslsocket_accept);
//| def bind(self, address: Tuple[str, int]) -> None:
//| """Bind a socket to an address
//|
//| :param ~tuple address: tuple of (remote_address, remote_port)"""
//| ...
//|
STATIC mp_obj_t ssl_sslsocket_bind(mp_obj_t self_in, mp_obj_t addr_in) {
ssl_sslsocket_obj_t *self = MP_OBJ_TO_PTR(self_in);
mp_obj_t *addr_items;
mp_obj_get_array_fixed_n(addr_in, 2, &addr_items);
size_t hostlen;
const char* host = mp_obj_str_get_data(addr_items[0], &hostlen);
mp_int_t port = mp_obj_get_int(addr_items[1]);
if (port < 0) {
mp_raise_ValueError(translate("port must be >= 0"));
}
bool ok = common_hal_ssl_sslsocket_bind(self, host, hostlen, (uint32_t)port);
if (!ok) {
mp_raise_ValueError(translate("Error: Failure to bind"));
}
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(ssl_sslsocket_bind_obj, ssl_sslsocket_bind);
//| def close(self) -> None:
//| """Closes this Socket"""
//|
STATIC mp_obj_t ssl_sslsocket_close(mp_obj_t self_in) {
ssl_sslsocket_obj_t *self = MP_OBJ_TO_PTR(self_in);
common_hal_ssl_sslsocket_close(self);
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(ssl_sslsocket_close_obj, ssl_sslsocket_close);
//| def connect(self, address: Tuple[str, int]) -> None:
//| """Connect a socket to a remote address
//|
//| :param ~tuple address: tuple of (remote_address, remote_port)"""
//| ...
//|
STATIC mp_obj_t ssl_sslsocket_connect(mp_obj_t self_in, mp_obj_t addr_in) {
ssl_sslsocket_obj_t *self = MP_OBJ_TO_PTR(self_in);
mp_obj_t *addr_items;
mp_obj_get_array_fixed_n(addr_in, 2, &addr_items);
size_t hostlen;
const char* host = mp_obj_str_get_data(addr_items[0], &hostlen);
mp_int_t port = mp_obj_get_int(addr_items[1]);
if (port < 0) {
mp_raise_ValueError(translate("port must be >= 0"));
}
bool ok = common_hal_ssl_sslsocket_connect(self, host, hostlen, (uint32_t)port);
if (!ok) {
mp_raise_OSError(0);
}
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(ssl_sslsocket_connect_obj, ssl_sslsocket_connect);
//| def listen(self, backlog: int) -> None:
//| """Set socket to listen for incoming connections
//|
//| :param ~int backlog: length of backlog queue for waiting connetions"""
//| ...
//|
STATIC mp_obj_t ssl_sslsocket_listen(mp_obj_t self_in, mp_obj_t backlog_in) {
ssl_sslsocket_obj_t *self = MP_OBJ_TO_PTR(self_in);
int backlog = mp_obj_get_int(backlog_in);
common_hal_ssl_sslsocket_listen(self, backlog);
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(ssl_sslsocket_listen_obj, ssl_sslsocket_listen);
//| def recv_into(self, buffer: WriteableBuffer, bufsize: int) -> int:
//| """Reads some bytes from the connected remote address, writing
//| into the provided buffer. If bufsize <= len(buffer) is given,
//| a maximum of bufsize bytes will be read into the buffer. If no
//| valid value is given for bufsize, the default is the length of
//| the given buffer.
//|
//| Suits sockets of type SOCK_STREAM
//| Returns an int of number of bytes read.
//|
//| :param bytearray buffer: buffer to receive into
//| :param int bufsize: optionally, a maximum number of bytes to read."""
//| ...
//|
STATIC mp_obj_t ssl_sslsocket_recv_into(size_t n_args, const mp_obj_t *args) {
ssl_sslsocket_obj_t *self = MP_OBJ_TO_PTR(args[0]);
if (common_hal_ssl_sslsocket_get_closed(self)) {
// Bad file number.
mp_raise_OSError(MP_EBADF);
}
// if (!common_hal_ssl_sslsocket_get_connected(self)) {
// // not connected
// mp_raise_OSError(MP_ENOTCONN);
// }
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(args[1], &bufinfo, MP_BUFFER_WRITE);
mp_int_t len = bufinfo.len;
if (n_args == 3) {
mp_int_t given_len = mp_obj_get_int(args[2]);
if (given_len > len) {
mp_raise_ValueError(translate("buffer too small for requested bytes"));
}
if (given_len > 0 && given_len < len) {
len = given_len;
}
}
if (len == 0) {
return MP_OBJ_NEW_SMALL_INT(0);
}
mp_int_t ret = common_hal_ssl_sslsocket_recv_into(self, (byte*)bufinfo.buf, len);
return mp_obj_new_int_from_uint(ret);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(ssl_sslsocket_recv_into_obj, 2, 3, ssl_sslsocket_recv_into);
//| def send(self, bytes: ReadableBuffer) -> int:
//| """Send some bytes to the connected remote address.
//| Suits sockets of type SOCK_STREAM
//|
//| :param ~bytes bytes: some bytes to send"""
//| ...
//|
STATIC mp_obj_t ssl_sslsocket_send(mp_obj_t self_in, mp_obj_t buf_in) {
ssl_sslsocket_obj_t *self = MP_OBJ_TO_PTR(self_in);
if (common_hal_ssl_sslsocket_get_closed(self)) {
// Bad file number.
mp_raise_OSError(MP_EBADF);
}
if (!common_hal_ssl_sslsocket_get_connected(self)) {
mp_raise_BrokenPipeError();
}
mp_buffer_info_t bufinfo;
mp_get_buffer_raise(buf_in, &bufinfo, MP_BUFFER_READ);
mp_int_t ret = common_hal_ssl_sslsocket_send(self, bufinfo.buf, bufinfo.len);
if (ret == -1) {
mp_raise_BrokenPipeError();
}
return mp_obj_new_int_from_uint(ret);
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(ssl_sslsocket_send_obj, ssl_sslsocket_send);
// //| def setsockopt(self, level: int, optname: int, value: int) -> None:
// //| """Sets socket options"""
// //| ...
// //|
// STATIC mp_obj_t ssl_sslsocket_setsockopt(size_t n_args, const mp_obj_t *args) {
// }
// STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(ssl_sslsocket_setsockopt_obj, 4, 4, ssl_sslsocket_setsockopt);
//| def settimeout(self, value: int) -> None:
//| """Set the timeout value for this socket.
//|
//| :param ~int value: timeout in seconds. 0 means non-blocking. None means block indefinitely."""
//| ...
//|
STATIC mp_obj_t ssl_sslsocket_settimeout(mp_obj_t self_in, mp_obj_t timeout_in) {
ssl_sslsocket_obj_t *self = MP_OBJ_TO_PTR(self_in);
mp_uint_t timeout_ms;
if (timeout_in == mp_const_none) {
timeout_ms = -1;
} else {
#if MICROPY_PY_BUILTINS_FLOAT
timeout_ms = 1000 * mp_obj_get_float(timeout_in);
#else
timeout_ms = 1000 * mp_obj_get_int(timeout_in);
#endif
}
common_hal_ssl_sslsocket_settimeout(self, timeout_ms);
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(ssl_sslsocket_settimeout_obj, ssl_sslsocket_settimeout);
//| def setblocking(self, flag: bool) -> Optional[int]:
//| """Set the blocking behaviour of this socket.
//|
//| :param ~bool flag: False means non-blocking, True means block indefinitely."""
//| ...
//|
// method socket.setblocking(flag)
STATIC mp_obj_t ssl_sslsocket_setblocking(mp_obj_t self_in, mp_obj_t blocking) {
ssl_sslsocket_obj_t *self = MP_OBJ_TO_PTR(self_in);
if (mp_obj_is_true(blocking)) {
common_hal_ssl_sslsocket_settimeout(self, -1);
} else {
common_hal_ssl_sslsocket_settimeout(self, 0);
}
return mp_const_none;
}
STATIC MP_DEFINE_CONST_FUN_OBJ_2(ssl_sslsocket_setblocking_obj, ssl_sslsocket_setblocking);
//| def __hash__(self) -> int:
//| """Returns a hash for the Socket."""
//| ...
//|
STATIC mp_obj_t ssl_sslsocket_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
switch (op) {
case MP_UNARY_OP_HASH: {
return mp_obj_id(self_in);
}
default:
return MP_OBJ_NULL; // op not supported
}
}
STATIC const mp_rom_map_elem_t ssl_sslsocket_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR___enter__), MP_ROM_PTR(&default___enter___obj) },
{ MP_ROM_QSTR(MP_QSTR___exit__), MP_ROM_PTR(&ssl_sslsocket___exit___obj) },
{ MP_ROM_QSTR(MP_QSTR___del__), MP_ROM_PTR(&ssl_sslsocket_close_obj) },
{ MP_ROM_QSTR(MP_QSTR_accept), MP_ROM_PTR(&ssl_sslsocket_accept_obj) },
{ MP_ROM_QSTR(MP_QSTR_bind), MP_ROM_PTR(&ssl_sslsocket_bind_obj) },
{ MP_ROM_QSTR(MP_QSTR_close), MP_ROM_PTR(&ssl_sslsocket_close_obj) },
{ MP_ROM_QSTR(MP_QSTR_connect), MP_ROM_PTR(&ssl_sslsocket_connect_obj) },
{ MP_ROM_QSTR(MP_QSTR_listen), MP_ROM_PTR(&ssl_sslsocket_listen_obj) },
{ MP_ROM_QSTR(MP_QSTR_recv_into), MP_ROM_PTR(&ssl_sslsocket_recv_into_obj) },
{ MP_ROM_QSTR(MP_QSTR_send), MP_ROM_PTR(&ssl_sslsocket_send_obj) },
{ MP_ROM_QSTR(MP_QSTR_setblocking), MP_ROM_PTR(&ssl_sslsocket_setblocking_obj) },
// { MP_ROM_QSTR(MP_QSTR_setsockopt), MP_ROM_PTR(&ssl_sslsocket_setsockopt_obj) },
{ MP_ROM_QSTR(MP_QSTR_settimeout), MP_ROM_PTR(&ssl_sslsocket_settimeout_obj) },
};
STATIC MP_DEFINE_CONST_DICT(ssl_sslsocket_locals_dict, ssl_sslsocket_locals_dict_table);
const mp_obj_type_t ssl_sslsocket_type = {
{ &mp_type_type },
.name = MP_QSTR_SSLSocket,
.locals_dict = (mp_obj_dict_t*)&ssl_sslsocket_locals_dict,
.unary_op = ssl_sslsocket_unary_op,
};

View File

@ -0,0 +1,45 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 Lucian Copeland for Adafruit Industries
*
* Permission is hereby granted, free of charge, to any person obtaining a copy
* of this software and associated documentation files (the "Software"), to deal
* in the Software without restriction, including without limitation the rights
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the Software is
* furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
* THE SOFTWARE.
*/
#ifndef MICROPY_INCLUDED_SHARED_BINDINGS_SSL_SSLSOCKET_H
#define MICROPY_INCLUDED_SHARED_BINDINGS_SSL_SSLSOCKET_H
#include "common-hal/ssl/SSLSocket.h"
extern const mp_obj_type_t ssl_sslsocket_type;
ssl_sslsocket_obj_t * common_hal_ssl_sslsocket_accept(ssl_sslsocket_obj_t* self, uint8_t* ip, uint32_t *port);
bool common_hal_ssl_sslsocket_bind(ssl_sslsocket_obj_t* self, const char* host, size_t hostlen, uint32_t port);
void common_hal_ssl_sslsocket_close(ssl_sslsocket_obj_t* self);
bool common_hal_ssl_sslsocket_connect(ssl_sslsocket_obj_t* self, const char* host, size_t hostlen, uint32_t port);
bool common_hal_ssl_sslsocket_get_closed(ssl_sslsocket_obj_t* self);
bool common_hal_ssl_sslsocket_get_connected(ssl_sslsocket_obj_t* self);
bool common_hal_ssl_sslsocket_listen(ssl_sslsocket_obj_t* self, int backlog);
mp_uint_t common_hal_ssl_sslsocket_recv_into(ssl_sslsocket_obj_t* self, const uint8_t* buf, uint32_t len);
mp_uint_t common_hal_ssl_sslsocket_send(ssl_sslsocket_obj_t* self, const uint8_t* buf, uint32_t len);
void common_hal_ssl_sslsocket_settimeout(ssl_sslsocket_obj_t* self, uint32_t timeout_ms);
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_SSL_SSLSOCKET_H

View File

@ -71,7 +71,7 @@ void common_hal_adafruit_bus_device_i2cdevice_probe_for_device(adafruit_bus_devi
nlr_buf_t nlr;
if (nlr_push(&nlr) == 0) {
mp_load_method(self->i2c, MP_QSTR_writeto, dest);
dest[2] = mp_obj_new_int_from_ull(self->device_address);
dest[2] = MP_OBJ_NEW_SMALL_INT(self->device_address);
dest[3] = write_buffer;
mp_call_method_n_kw(2, 0, dest);
nlr_pop();

View File

@ -41,7 +41,7 @@ void common_hal_adafruit_bus_device_spidevice_construct(adafruit_bus_device_spid
self->chip_select = cs;
}
void common_hal_adafruit_bus_device_spidevice_enter(adafruit_bus_device_spidevice_obj_t *self) {
mp_obj_t common_hal_adafruit_bus_device_spidevice_enter(adafruit_bus_device_spidevice_obj_t *self) {
bool success = false;
while (!success) {
success = common_hal_busio_spi_try_lock(self->spi);
@ -54,6 +54,7 @@ void common_hal_adafruit_bus_device_spidevice_enter(adafruit_bus_device_spidevic
if (self->chip_select != MP_OBJ_NULL) {
common_hal_digitalio_digitalinout_set_value(MP_OBJ_TO_PTR(self->chip_select), false);
}
return self->spi;
}
void common_hal_adafruit_bus_device_spidevice_exit(adafruit_bus_device_spidevice_obj_t *self) {

View File

@ -33,7 +33,7 @@
#include "supervisor/shared/tick.h"
#include "shared-bindings/microcontroller/__init__.h"
STATIC volatile background_callback_t *callback_head, *callback_tail;
STATIC volatile background_callback_t * volatile callback_head, * volatile callback_tail;
#define CALLBACK_CRITICAL_BEGIN (common_hal_mcu_disable_interrupts())
#define CALLBACK_CRITICAL_END (common_hal_mcu_enable_interrupts())
@ -50,7 +50,6 @@ void background_callback_add_core(background_callback_t *cb) {
cb->prev = (background_callback_t*)callback_tail;
if (callback_tail) {
callback_tail->next = cb;
cb->prev = (background_callback_t*)callback_tail;
}
if (!callback_head) {
callback_head = cb;

View File

@ -47,6 +47,10 @@ busio_uart_obj_t debug_uart;
byte buf_array[64];
#endif
#if CIRCUITPY_USB_VENDOR
bool tud_vendor_connected(void);
#endif
void serial_early_init(void) {
#if defined(DEBUG_UART_TX) && defined(DEBUG_UART_RX)
debug_uart.base.type = &busio_uart_type;
@ -66,6 +70,12 @@ void serial_init(void) {
}
bool serial_connected(void) {
#if CIRCUITPY_USB_VENDOR
if (tud_vendor_connected()) {
return true;
}
#endif
#if defined(DEBUG_UART_TX) && defined(DEBUG_UART_RX)
return true;
#else
@ -74,6 +84,14 @@ bool serial_connected(void) {
}
char serial_read(void) {
#if CIRCUITPY_USB_VENDOR
if (tud_vendor_connected() && tud_vendor_available() > 0) {
char tiny_buffer;
tud_vendor_read(&tiny_buffer, 1);
return tiny_buffer;
}
#endif
#if defined(DEBUG_UART_TX) && defined(DEBUG_UART_RX)
if (tud_cdc_connected() && tud_cdc_available() > 0) {
return (char) tud_cdc_read_char();
@ -88,6 +106,12 @@ char serial_read(void) {
}
bool serial_bytes_available(void) {
#if CIRCUITPY_USB_VENDOR
if (tud_vendor_connected() && tud_vendor_available() > 0) {
return true;
}
#endif
#if defined(DEBUG_UART_TX) && defined(DEBUG_UART_RX)
return common_hal_busio_uart_rx_characters_available(&debug_uart) || (tud_cdc_available() > 0);
#else
@ -104,6 +128,12 @@ void serial_write_substring(const char* text, uint32_t length) {
common_hal_terminalio_terminal_write(&supervisor_terminal, (const uint8_t*) text, length, &errcode);
#endif
#if CIRCUITPY_USB_VENDOR
if (tud_vendor_connected()) {
tud_vendor_write(text, length);
}
#endif
uint32_t count = 0;
while (count < length && tud_cdc_connected()) {
count += tud_cdc_write(text + count, length - count);

Some files were not shown because too many files have changed in this diff Show More