Merge pull request #38 from adafruit/main

Update from adafruit main
This commit is contained in:
DavePutz 2021-01-14 10:01:03 -06:00 committed by GitHub
commit e424c84249
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
115 changed files with 4671 additions and 518 deletions

View File

@ -261,6 +261,7 @@ jobs:
- "monster_m4sk"
- "ndgarage_ndbit6"
- "ndgarage_ndbit6_v2"
- "neopixel_trinkey_m0"
- "nfc_copy_cat"
- "nice_nano"
- "nucleo_f746zg"
@ -431,6 +432,8 @@ jobs:
fail-fast: false
matrix:
board:
- "adafruit_feather_esp32s2_nopsram"
- "adafruit_feather_esp32s2_tftback_nopsram"
- "adafruit_magtag_2.9_grayscale"
- "adafruit_metro_esp32s2"
- "electroniccats_bastwifi"

View File

@ -15,6 +15,10 @@ jobs:
steps:
- uses: actions/checkout@v1
- uses: actions/setup-python@v1
- name: Install deps
run: sudo apt-get update && sudo apt-get install -y gettext
- name: Populate selected submodules
run: git submodule update --init extmod/ulab
- name: set PY
run: echo >>$GITHUB_ENV PY="$(python -c 'import hashlib, sys;print(hashlib.sha256(sys.version.encode()+sys.executable.encode()).hexdigest())')"
- uses: actions/cache@v1

View File

@ -222,7 +222,7 @@ pseudoxml:
all-source:
locale/circuitpython.pot: all-source
find $(TRANSLATE_SOURCES) -type d \( $(TRANSLATE_SOURCES_EXC) \) -prune -o -type f \( -iname "*.c" -o -iname "*.h" \) -print | (LC_ALL=C sort) | xgettext -f- -L C -s --add-location=file --keyword=translate -o circuitpython.pot -p locale
find $(TRANSLATE_SOURCES) -type d \( $(TRANSLATE_SOURCES_EXC) \) -prune -o -type f \( -iname "*.c" -o -iname "*.h" \) -print | (LC_ALL=C sort) | xgettext -f- -L C -s --add-location=file --keyword=translate -o - | sed -e '/"POT-Creation-Date: /d' > $@
# Historically, `make translate` updated the .pot file and ran msgmerge.
# However, this was a frequent source of merge conflicts. Weblate can perform

View File

@ -276,7 +276,7 @@ html_static_path = ['docs/static']
# Add any extra paths that contain custom files (such as robots.txt or
# .htaccess) here, relative to this directory. These files are copied
# directly to the root of the documentation.
#html_extra_path = []
html_extra_path = ["docs/robots.txt"]
# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
# using the given strftime format.

6
docs/robots.txt Normal file
View File

@ -0,0 +1,6 @@
User-agent: *
Allow: /*/latest/
Allow: /en/latest/ # Fallback for bots that don't understand wildcards
Allow: /*/6.0.x/
Allow: /en/6.0.x/ # Fallback for bots that don't understand wildcards
Disallow: /

@ -1 +1 @@
Subproject commit c4b06e419f3d515478b05bb8ce03ebdb29cddec4
Subproject commit d62d07ea0b9597535428ebe6012da6b0d6608bf9

@ -1 +1 @@
Subproject commit 218b80e63ab6ff87c1851e403f08b3d716d68f5e
Subproject commit cfcffe94ce62f5ef1fb5aef4641924d64dc4b1c0

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-12-30 22:25+0000\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-03 05:29+0000\n"
"Last-Translator: oon arfiandwi <oon.arfiandwi@gmail.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: ID\n"
@ -118,6 +118,11 @@ msgstr "%q harus berupa int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() mengambil posisi argumen %d tapi %d yang diberikan"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "'%q' argumen dibutuhkan"
@ -280,6 +285,10 @@ msgstr "0.0 ke kompleks berpangkat"
msgid "3-arg pow() not supported"
msgstr "pow() 3-arg tidak didukung"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -542,6 +551,10 @@ msgstr "Bytes harus di antara 0 dan 255."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr "Blok CBC harus merupakan kelipatan 16 byte"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr "Panggil super().__init__() sebelum mengakses objek asli."
@ -1002,6 +1015,10 @@ msgstr "Frekuensi harus cocok dengan PWMOut yang ada menggunakan timer ini"
msgid "Function requires lock"
msgstr "Fungsinya membutuhkan kunci"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1130,6 +1147,7 @@ msgstr "Frekuensi PWM tidak valid"
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Argumen tidak valid"
@ -1239,6 +1257,14 @@ msgstr "Mode operasi tidak valid."
msgid "Invalid security_mode"
msgstr "security_mode tidak valid"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Suara tidak valid"
@ -1279,6 +1305,10 @@ msgstr "Panjang harus berupa int"
msgid "Length must be non-negative"
msgstr "Panjangnya harus non-negatif"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "Pin MISO gagal inisialisasi."
@ -1511,12 +1541,12 @@ msgstr ""
"Hanya monokrom, 4bpp atau 8bpp yang diindeks, dan 16bpp atau lebih yang "
"didukung: %d bpp diberikan"
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1527,6 +1557,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1535,6 +1577,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr "Sampel berlebihan harus kelipatan 8."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1553,6 +1599,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr "ParallelBus belum didukung"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Izin ditolak"
@ -1674,6 +1724,10 @@ msgstr "sistem file (filesystem) bersifat Read-only"
msgid "Read-only object"
msgstr "sistem file (filesystem) bersifat Read-only"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "Segarkan terlalu cepat"
@ -1686,6 +1740,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr "Mode AES yang diminta tidak didukung"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Channel Kanan tidak didukung"
@ -1850,11 +1908,11 @@ msgstr "Tingkat sampel dari sampel tidak cocok dengan mixer"
#: shared-module/audiomixer/MixerVoice.c
msgid "The sample's signedness does not match the mixer's"
msgstr ""
msgstr "signedness dari sampel tidak cocok dengan mixer"
#: shared-bindings/displayio/TileGrid.c
msgid "Tile height must exactly divide bitmap height"
msgstr ""
msgstr "Tinggi tile harus persis membagi tinggi bitmap"
#: shared-bindings/displayio/TileGrid.c shared-module/displayio/TileGrid.c
msgid "Tile index out of bounds"
@ -1903,13 +1961,9 @@ msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
"Total data yang akan ditulis lebih besar daripada outgoing_packet_length"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr ""
msgstr "Traceback (bagian terakhir dari panggilan terkini):\n"
#: shared-bindings/time/__init__.c
msgid "Tuple or struct_time argument required"
@ -1945,15 +1999,15 @@ msgstr "Kesalahan USB"
#: shared-bindings/_bleio/UUID.c
msgid "UUID integer value must be 0-0xffff"
msgstr ""
msgstr "Nilai integer UUID harus 0-0xffff"
#: shared-bindings/_bleio/UUID.c
msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
msgstr ""
msgstr "String UUID bukan 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
#: shared-bindings/_bleio/UUID.c
msgid "UUID value is not str, int or byte buffer"
msgstr ""
msgstr "Nilai UUID bukan str, int atau byte buffer"
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
@ -1967,7 +2021,7 @@ msgstr ""
#: shared-module/displayio/I2CDisplay.c
#, c-format
msgid "Unable to find I2C Display at %x"
msgstr ""
msgstr "Tidak dapat menemukan Tampilan I2C di %x"
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
@ -1976,15 +2030,15 @@ msgstr "Tidak dapat menemukan GCLK yang kosong"
#: py/parse.c
msgid "Unable to init parser"
msgstr ""
msgstr "Tidak dapat memulai parser"
#: shared-module/displayio/OnDiskBitmap.c
msgid "Unable to read color palette data"
msgstr ""
msgstr "Tidak dapat membaca data palet warna"
#: shared-bindings/nvm/ByteArray.c
msgid "Unable to write to nvm."
msgstr ""
msgstr "Tidak dapat menulis ke nvm."
#: shared-bindings/alarm/SleepMemory.c
msgid "Unable to write to sleep_memory."
@ -1992,7 +2046,7 @@ msgstr ""
#: ports/nrf/common-hal/_bleio/UUID.c
msgid "Unexpected nrfx uuid type"
msgstr ""
msgstr "Tipe urf nrfx tak sesuai"
#: ports/esp32s2/common-hal/socketpool/Socket.c
#, c-format
@ -2069,6 +2123,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
@ -2478,6 +2536,10 @@ msgstr ""
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr ""
@ -2550,6 +2612,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@ -2558,6 +2624,10 @@ msgstr ""
msgid "default 'except' must be last"
msgstr "'except' standar harus terakhir"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2657,6 +2727,10 @@ msgstr "hanya mengharapkan sebuah nilai (value) untuk set"
msgid "expecting key:value for dict"
msgstr "key:value diharapkan untuk dict"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "argumen keyword ekstra telah diberikan"
@ -2860,7 +2934,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@ -3103,6 +3177,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3185,6 +3263,10 @@ msgstr ""
msgid "no binding for nonlocal found"
msgstr "tidak ada ikatan/bind pada temuan nonlocal"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "tidak ada modul yang bernama '%q'"
@ -3333,10 +3415,6 @@ msgstr ""
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr ""
@ -3427,6 +3505,8 @@ msgstr ""
msgid "pow() with 3 arguments requires integers"
msgstr ""
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3523,6 +3603,10 @@ msgstr "kompilasi script tidak didukung"
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@ -3681,6 +3765,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr ""
@ -3690,6 +3778,10 @@ msgstr ""
msgid "too many values to unpack (expected %d)"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@ -3698,10 +3790,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -3892,6 +3980,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr ""

View File

@ -8,7 +8,6 @@ msgid ""
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: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -114,6 +113,11 @@ msgstr ""
msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr ""
@ -276,6 +280,10 @@ msgstr ""
msgid "3-arg pow() not supported"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -536,6 +544,10 @@ msgstr ""
msgid "CBC blocks must be multiples of 16 bytes"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
@ -984,6 +996,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1110,6 +1126,7 @@ msgstr ""
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr ""
@ -1219,6 +1236,14 @@ msgstr ""
msgid "Invalid security_mode"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1259,6 +1284,10 @@ msgstr ""
msgid "Length must be non-negative"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr ""
@ -1485,12 +1514,12 @@ msgid ""
"%d bpp given"
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1501,6 +1530,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1509,6 +1550,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1525,6 +1570,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr ""
@ -1642,6 +1691,10 @@ msgstr ""
msgid "Read-only object"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
@ -1654,6 +1707,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr ""
@ -2024,6 +2081,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
@ -2426,6 +2487,10 @@ msgstr ""
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr ""
@ -2510,6 +2575,10 @@ msgstr ""
msgid "default 'except' must be last"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2609,6 +2678,10 @@ msgstr ""
msgid "expecting key:value for dict"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr ""
@ -3141,6 +3214,10 @@ msgstr ""
msgid "no binding for nonlocal found"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr ""
@ -3378,6 +3455,8 @@ msgstr ""
msgid "pow() with 3 arguments requires integers"
msgstr ""
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3474,6 +3553,10 @@ msgstr ""
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@ -3846,6 +3929,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2020-12-04 18:33+0000\n"
"Last-Translator: vkuthan <vit.kuthan@seznam.cz>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -116,6 +116,11 @@ msgstr "%q by měl být int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() vyžaduje %d pozičních argumentů, ale %d jich bylo zadáno"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "Je vyžadován argument '%q'"
@ -278,6 +283,10 @@ msgstr ""
msgid "3-arg pow() not supported"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -538,6 +547,10 @@ msgstr ""
msgid "CBC blocks must be multiples of 16 bytes"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
@ -986,6 +999,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1112,6 +1129,7 @@ msgstr ""
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr ""
@ -1221,6 +1239,14 @@ msgstr ""
msgid "Invalid security_mode"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1261,6 +1287,10 @@ msgstr ""
msgid "Length must be non-negative"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr ""
@ -1487,12 +1517,12 @@ msgid ""
"%d bpp given"
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1503,6 +1533,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1511,6 +1553,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1527,6 +1573,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr ""
@ -1644,6 +1694,10 @@ msgstr ""
msgid "Read-only object"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
@ -1656,6 +1710,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr ""
@ -1865,10 +1923,6 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr ""
@ -2030,6 +2084,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
@ -2432,6 +2490,10 @@ msgstr ""
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr ""
@ -2504,6 +2566,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@ -2512,6 +2578,10 @@ msgstr ""
msgid "default 'except' must be last"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2611,6 +2681,10 @@ msgstr ""
msgid "expecting key:value for dict"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr ""
@ -2814,7 +2888,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@ -3057,6 +3131,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3139,6 +3217,10 @@ msgstr ""
msgid "no binding for nonlocal found"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr ""
@ -3286,10 +3368,6 @@ msgstr ""
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr ""
@ -3380,6 +3458,8 @@ msgstr ""
msgid "pow() with 3 arguments requires integers"
msgstr ""
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3476,6 +3556,10 @@ msgstr ""
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@ -3633,6 +3717,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr ""
@ -3642,6 +3730,10 @@ msgstr ""
msgid "too many values to unpack (expected %d)"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@ -3650,10 +3742,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -3844,6 +3932,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr ""

View File

@ -5,21 +5,23 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-11-26 03:11+0000\n"
"Last-Translator: Daniel Bravo Darriba <bravodarriba@gmail.com>\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"
"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-dev\n"
"X-Generator: Weblate 4.4.1-dev\n"
#: main.c
msgid ""
"\n"
"Code done running.\n"
msgstr ""
"\n"
"Programm wird ausgeführt.\n"
#: main.c
msgid ""
@ -115,6 +117,11 @@ msgstr "%q sollte ein integer sein"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() nimmt %d Argumente ohne Keyword an, aber es wurden %d angegeben"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "'%q' Argument erforderlich"
@ -129,7 +136,7 @@ msgstr "'%q' Objekt unterstützt '%q' nicht"
#: py/obj.c
msgid "'%q' object does not support item assignment"
msgstr ""
msgstr "'%q' Objekt unterschützt keine Elementzuweisung"
#: py/obj.c
msgid "'%q' object does not support item deletion"
@ -141,7 +148,7 @@ msgstr "'%q' Objekt hat kein Attribut '%q'"
#: py/runtime.c
msgid "'%q' object is not an iterator"
msgstr ""
msgstr "'%q' Objekt ist kein Iterator"
#: py/objtype.c py/runtime.c
msgid "'%q' object is not callable"
@ -235,7 +242,7 @@ msgstr "'continue' außerhalb einer Schleife"
#: py/objgenerator.c
msgid "'coroutine' object is not an iterator"
msgstr ""
msgstr "'coroutine' Objekt ist kein Iterator"
#: py/compile.c
msgid "'data' requires at least 2 arguments"
@ -277,6 +284,10 @@ msgstr "0.0 zu einer komplexen Potenz"
msgid "3-arg pow() not supported"
msgstr "3-arg pow() wird nicht unterstützt"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -307,7 +318,7 @@ msgstr "Alle I2C-Peripheriegeräte sind in Benutzung"
#: ports/esp32s2/common-hal/frequencyio/FrequencyIn.c
#: ports/esp32s2/common-hal/rotaryio/IncrementalEncoder.c
msgid "All PCNT units in use"
msgstr ""
msgstr "Alle PCNT Einheiten sind in Benutzung"
#: ports/atmel-samd/common-hal/canio/Listener.c
#: ports/esp32s2/common-hal/canio/Listener.c
@ -541,6 +552,10 @@ msgstr "Ein Bytes kann nur Werte zwischen 0 und 255 annehmen."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr "CBC-Blöcke müssen ein Vielfaches von 16 Bytes sein"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr "Rufe super().__init__() vor dem Zugriff auf ein natives Objekt auf."
@ -710,7 +725,7 @@ msgstr "Konnte Kamera nicht initialisieren"
#: ports/cxd56/common-hal/gnss/GNSS.c
msgid "Could not initialize GNSS"
msgstr ""
msgstr "GNSS konnte nicht initialisiert werden"
#: ports/cxd56/common-hal/sdioio/SDCard.c
msgid "Could not initialize SDCard"
@ -837,7 +852,7 @@ msgstr "Die EZB arbeitet jeweils nur mit 16 Bytes"
#: ports/esp32s2/common-hal/busio/SPI.c ports/esp32s2/common-hal/canio/CAN.c
msgid "ESP-IDF memory allocation failed"
msgstr ""
msgstr "ESP-IDF Speicherallozierung fehlgeschlagen"
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
#: ports/atmel-samd/common-hal/ps2io/Ps2.c
@ -903,7 +918,7 @@ msgstr "FFT ist nur für ndarrays definiert"
#: extmod/ulab/code/fft/fft.c
msgid "FFT is implemented for linear arrays only"
msgstr ""
msgstr "FFT ist nur für lineare Arrays implementiert"
#: ports/esp32s2/common-hal/socketpool/Socket.c
msgid "Failed SSL handshake"
@ -934,7 +949,7 @@ msgstr "Konnte keine RX Buffer mit %d allozieren"
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Failed to allocate Wifi memory"
msgstr ""
msgstr "Zuweisung des Wifi Speichers ist fehlgeschlagen"
#: ports/esp32s2/common-hal/wifi/ScannedNetworks.c
msgid "Failed to allocate wifi scan memory"
@ -950,7 +965,7 @@ msgstr "Verbindung nicht erfolgreich: timeout"
#: ports/esp32s2/common-hal/wifi/__init__.c
msgid "Failed to init wifi"
msgstr ""
msgstr "Wifi Initialisierung ist fehlgeschlagen"
#: shared-module/audiomp3/MP3Decoder.c
msgid "Failed to parse MP3 file"
@ -999,6 +1014,10 @@ msgstr ""
msgid "Function requires lock"
msgstr "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1037,7 +1056,7 @@ msgstr "I2SOut nicht verfügbar"
#: ports/esp32s2/common-hal/alarm/pin/__init__.c
msgid "IOs 0, 2 & 4 do not support internal pullup in sleep"
msgstr ""
msgstr "IOs 0, 2 & 4 unterstützen keinen internen Pull up im sleep-Modus"
#: shared-bindings/aesio/aes.c
#, c-format
@ -1058,7 +1077,7 @@ msgstr "Inkorrekte Puffergröße"
#: ports/esp32s2/common-hal/watchdog/WatchDogTimer.c
msgid "Initialization failed due to lack of memory"
msgstr ""
msgstr "Initialisierung aufgrund von Speichermangel fehlgeschlagen"
#: ports/atmel-samd/common-hal/pulseio/PulseIn.c
msgid "Input taking too long"
@ -1127,6 +1146,7 @@ msgstr "Ungültige PWM Frequenz"
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Ungültiges Argument"
@ -1236,6 +1256,14 @@ msgstr "Ungültiger Ausführungsmodus."
msgid "Invalid security_mode"
msgstr "Ungültiger security_mode"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Ungültige Stimme"
@ -1276,6 +1304,10 @@ msgstr "Länge muss ein int sein"
msgid "Length must be non-negative"
msgstr "Länge darf nicht negativ sein"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "MISO pin Initialisierung fehlgeschlagen."
@ -1510,12 +1542,12 @@ msgstr ""
"Nur monochrome, indizierte 4bpp oder 8bpp, und 16bpp oder größere BMPs "
"unterstützt: %d bpp wurden gegeben"
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1526,6 +1558,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1534,6 +1578,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr "Oversample muss ein Vielfaches von 8 sein."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1550,6 +1598,10 @@ msgstr "Die PWM-Frequenz ist nicht schreibbar wenn variable_Frequenz = False."
msgid "ParallelBus not yet supported"
msgstr "ParallelBus wird noch nicht unterstützt"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Zugang verweigert"
@ -1670,6 +1722,10 @@ msgstr "Schreibgeschützte Dateisystem"
msgid "Read-only object"
msgstr "Schreibgeschützte Objekt"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "Zu früh neu geladen"
@ -1682,6 +1738,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr "Der angeforderte AES-Modus wird nicht unterstützt"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Rechter Kanal wird nicht unterstützt"
@ -1905,10 +1965,6 @@ msgstr ""
"Die Gesamtzahl der zu schreibenden Daten ist größer als "
"outgoing_packet_length"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Zurückverfolgung (jüngste Aufforderung zuletzt):\n"
@ -2074,6 +2130,10 @@ msgstr "Wert Länge != Erforderliche feste Länge"
msgid "Value length > max_length"
msgstr "Länge des Wertes > max_length"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Viper-Funktionen unterstützen derzeit nicht mehr als 4 Argumente"
@ -2495,6 +2555,10 @@ msgstr "chr() arg ist nicht in range(256)"
msgid "circle can only be registered in one parent"
msgstr "Kreis kann nur in einem Elternteil registriert werden"
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "Farbpuffer muss 3 Bytes (RGB) oder 4 Bytes (RGB + pad byte) sein"
@ -2569,6 +2633,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "Dezimalzahlen nicht unterstützt"
@ -2577,6 +2645,10 @@ msgstr "Dezimalzahlen nicht unterstützt"
msgid "default 'except' must be last"
msgstr "Die Standart-Ausnahmebehandlung muss als letztes sein"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2678,6 +2750,10 @@ msgstr "Erwarte nur einen Wert für set"
msgid "expecting key:value for dict"
msgstr "Erwarte key:value für dict"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "Es wurden zusätzliche Keyword-Argumente angegeben"
@ -2882,8 +2958,8 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgstr "Das Eingabeargument muss eine Ganzzahl oder ein 2-Tupel sein"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
msgid "input array length must be power of 2"
@ -3131,6 +3207,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3213,6 +3293,10 @@ msgstr "kein verfügbares Netzwerkadapter (NIC)"
msgid "no binding for nonlocal found"
msgstr "Kein Binding für nonlocal gefunden"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "Kein Modul mit dem Namen '%q'"
@ -3362,10 +3446,6 @@ msgstr "Operanden konnten nicht zusammen gesendet werden"
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr "Die Operation ist für ndarrays nicht implementiert"
@ -3458,6 +3538,8 @@ msgstr "pow() drittes Argument darf nicht 0 sein"
msgid "pow() with 3 arguments requires integers"
msgstr "pow () mit 3 Argumenten erfordert Integer"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3556,6 +3638,10 @@ msgstr "kompilieren von Skripten nicht unterstützt"
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "Vorzeichen nicht erlaubt in einem String formatierungs specifier"
@ -3714,6 +3800,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr "zu viele Argumente mit dem angegebenen Format"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr "zu viele Indizes"
@ -3723,6 +3813,10 @@ msgstr "zu viele Indizes"
msgid "too many values to unpack (expected %d)"
msgstr "zu viele Werte zum Auspacken (erwartet %d)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@ -3731,10 +3825,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "Tupelindex außerhalb des Bereichs"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tupel/list hat falsche Länge"
@ -3854,7 +3944,7 @@ msgstr "nicht unterstütztes Formatzeichen '%c' (0x%x) bei Index %d"
#: py/runtime.c
msgid "unsupported type for %q: '%q'"
msgstr ""
msgstr "nicht unterstützer Typ für %q: '%q'"
#: py/runtime.c
msgid "unsupported type for operator"
@ -3862,7 +3952,7 @@ msgstr "nicht unterstützter Typ für Operator"
#: py/runtime.c
msgid "unsupported types for %q: '%q', '%q'"
msgstr ""
msgstr "nicht unterstützte Typen für %q: '%q', '%q'"
#: py/objint.c
#, c-format
@ -3907,7 +3997,7 @@ msgstr ""
#: extmod/ulab/code/vector/vectorise.c
msgid "wrong input type"
msgstr ""
msgstr "falscher Eingabetyp"
#: extmod/ulab/code/ulab_create.c py/objstr.c
msgid "wrong number of arguments"
@ -3923,12 +4013,16 @@ msgstr "falscher Operandentyp"
#: extmod/ulab/code/vector/vectorise.c
msgid "wrong output type"
msgstr ""
msgstr "Falscher Ausgabetyp"
#: shared-module/displayio/Shape.c
msgid "x value out of bounds"
msgstr "x Wert außerhalb der Grenzen"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "y sollte ein int sein"
@ -3953,6 +4047,12 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "input argument must be an integer or a 2-tuple"
#~ msgstr "Das Eingabeargument muss eine Ganzzahl oder ein 2-Tupel sein"
#~ msgid "tuple index out of range"
#~ msgstr "Tupelindex außerhalb des Bereichs"
#~ msgid ""
#~ "\n"
#~ "Code done running. Waiting for reload.\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -113,6 +113,11 @@ msgstr ""
msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr ""
@ -275,6 +280,10 @@ msgstr ""
msgid "3-arg pow() not supported"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -535,6 +544,10 @@ msgstr ""
msgid "CBC blocks must be multiples of 16 bytes"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
@ -983,6 +996,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1109,6 +1126,7 @@ msgstr ""
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr ""
@ -1218,6 +1236,14 @@ msgstr ""
msgid "Invalid security_mode"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1258,6 +1284,10 @@ msgstr ""
msgid "Length must be non-negative"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr ""
@ -1484,12 +1514,12 @@ msgid ""
"%d bpp given"
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1500,6 +1530,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1508,6 +1550,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1524,6 +1570,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr ""
@ -1641,6 +1691,10 @@ msgstr ""
msgid "Read-only object"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
@ -1653,6 +1707,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr ""
@ -1862,10 +1920,6 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr ""
@ -2027,6 +2081,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
@ -2429,6 +2487,10 @@ msgstr ""
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr ""
@ -2501,6 +2563,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@ -2509,6 +2575,10 @@ msgstr ""
msgid "default 'except' must be last"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2608,6 +2678,10 @@ msgstr ""
msgid "expecting key:value for dict"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr ""
@ -2811,7 +2885,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@ -3054,6 +3128,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3136,6 +3214,10 @@ msgstr ""
msgid "no binding for nonlocal found"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr ""
@ -3283,10 +3365,6 @@ msgstr ""
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr ""
@ -3377,6 +3455,8 @@ msgstr ""
msgid "pow() with 3 arguments requires integers"
msgstr ""
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3473,6 +3553,10 @@ msgstr ""
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@ -3630,6 +3714,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr ""
@ -3639,6 +3727,10 @@ msgstr ""
msgid "too many values to unpack (expected %d)"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@ -3647,10 +3739,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -3841,6 +3929,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\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"
"Language-Team: \n"
@ -119,6 +119,11 @@ msgstr "%q debe ser un int"
msgid "%q() takes %d positional arguments but %d were given"
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 ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "argumento '%q' requerido"
@ -281,6 +286,10 @@ msgstr "0.0 a una potencia compleja"
msgid "3-arg pow() not supported"
msgstr "pow() con 3 argumentos no soportado"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -547,6 +556,10 @@ msgstr "Bytes debe estar entre 0 y 255."
msgid "CBC blocks must be multiples of 16 bytes"
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 ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr "Llame a super().__ init __() antes de acceder al objeto nativo."
@ -1002,6 +1015,10 @@ msgstr ""
msgid "Function requires lock"
msgstr "La función requiere lock"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1130,6 +1147,7 @@ msgstr "Frecuencia PWM inválida"
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Argumento inválido"
@ -1239,6 +1257,14 @@ msgstr "Modo de ejecución inválido."
msgid "Invalid security_mode"
msgstr "'security_mode' no válido"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Voz inválida"
@ -1279,6 +1305,10 @@ msgstr "Length debe ser un int"
msgid "Length must be non-negative"
msgstr "Length no deberia ser negativa"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "MISO pin init fallido."
@ -1511,12 +1541,12 @@ msgstr ""
"Solo se admiten BMP monocromáticos, indexados de 4 bpp u 8 bpp y 16 bpp o "
"más: %d bpp proporcionados"
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1527,6 +1557,18 @@ msgstr "Solo un color puede ser transparente a la vez"
msgid "Only raw int supported for ip"
msgstr "Solo se aceptan enteros crudos para ip"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Se acabaron los enchufes"
@ -1535,6 +1577,10 @@ msgstr "Se acabaron los enchufes"
msgid "Oversample must be multiple of 8."
msgstr "El sobremuestreo debe ser un múltiplo de 8."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1553,6 +1599,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr "ParallelBus todavía no soportado"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Permiso denegado"
@ -1677,6 +1727,10 @@ msgstr "Sistema de archivos de solo-Lectura"
msgid "Read-only object"
msgstr "Objeto de solo-lectura"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "Refresco demasiado pronto"
@ -1689,6 +1743,10 @@ msgstr "RemoteTransmissionRequests limitado a 8 bytes"
msgid "Requested AES mode is unsupported"
msgstr "El modo AES solicitado no es compatible"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Canal derecho no soportado"
@ -1912,10 +1970,6 @@ msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
"Los datos totales a escribir son más grandes que outgoing_packet_length"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (ultima llamada reciente):\n"
@ -2079,6 +2133,10 @@ msgstr "Tamaño del valor != del tamaño fijo requerido"
msgid "Value length > max_length"
msgstr "Tamaño de valor > max_length"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "funciones Viper no soportan por el momento, más de 4 argumentos"
@ -2495,6 +2553,10 @@ msgstr "El argumento de chr() no esta en el rango(256)"
msgid "circle can only be registered in one parent"
msgstr "circulo solo puede ser registrado con un pariente"
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "color buffer debe ser 3 bytes (RGB) ó 4 bytes (RGB + pad byte)"
@ -2567,6 +2629,10 @@ msgstr "los datos deben permitir iteración"
msgid "data must be of equal length"
msgstr "los datos deben ser de igual tamaño"
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "números decimales no soportados"
@ -2575,6 +2641,10 @@ msgstr "números decimales no soportados"
msgid "default 'except' must be last"
msgstr "'except' por defecto deberia estar de último"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2676,6 +2746,10 @@ msgstr "esperando solo un valor para set"
msgid "expecting key:value for dict"
msgstr "esperando la clave:valor para dict"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "argumento(s) por palabra clave adicionales fueron dados"
@ -2879,8 +2953,8 @@ msgid "input and output shapes are not compatible"
msgstr "Formas de entrada y salida no son compactibles"
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgstr "el argumento de entrada debe ser un entero o una tupla de par"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
msgid "input array length must be power of 2"
@ -3125,6 +3199,10 @@ msgstr "maxiter tiene que ser > 0"
msgid "maxiter should be > 0"
msgstr "maxiter debe ser > 0"
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3207,6 +3285,10 @@ msgstr "NIC no disponible"
msgid "no binding for nonlocal found"
msgstr "no se ha encontrado ningún enlace para nonlocal"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "ningún módulo se llama '%q'"
@ -3357,10 +3439,6 @@ msgstr "los operandos no se pueden transmitir juntos"
msgid "operation is implemented for 1D Boolean arrays only"
msgstr "operación solo está implementada para arrays booleanos de 1D"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr "operación no está implementada para arrays aplanados"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr "la operación no está implementada para ndarrays"
@ -3451,6 +3529,8 @@ msgstr "el 3er argumento de pow() no puede ser 0"
msgid "pow() with 3 arguments requires integers"
msgstr "pow() con 3 argumentos requiere enteros"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3549,6 +3629,10 @@ msgstr "script de compilación no soportado"
msgid "shape must be a tuple"
msgstr "forma tiene que ser una tupla"
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "signo no permitido en el espeficador de string format"
@ -3707,6 +3791,10 @@ msgstr "tobytes solo pueden ser invocados por arrays densos"
msgid "too many arguments provided with the given format"
msgstr "demasiados argumentos provistos con el formato dado"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr "demasiados índices"
@ -3716,6 +3804,10 @@ msgstr "demasiados índices"
msgid "too many values to unpack (expected %d)"
msgstr "demasiados valores para descomprimir (%d esperado)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapz está definido para arreglos 1D de igual tamaño"
@ -3724,10 +3816,6 @@ msgstr "trapz está definido para arreglos 1D de igual tamaño"
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "tuple index fuera de rango"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tupla/lista tiene una longitud incorrecta"
@ -3918,6 +4006,10 @@ msgstr "tipo de salida incorrecta"
msgid "x value out of bounds"
msgstr "valor x fuera de límites"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "y deberia ser un int"
@ -3942,6 +4034,15 @@ 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 "input argument must be an integer or a 2-tuple"
#~ msgstr "el argumento de entrada debe ser un entero o una tupla de par"
#~ msgid "operation is not implemented for flattened array"
#~ msgstr "operación no está implementada para arrays aplanados"
#~ msgid "tuple index out of range"
#~ msgstr "tuple index fuera de rango"
#~ msgid ""
#~ "\n"
#~ "Code done running. Waiting for reload.\n"

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
"Language-Team: fil\n"
@ -115,6 +115,11 @@ msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
"Ang %q() ay kumukuha ng %d positional arguments pero %d lang ang binigay"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "'%q' argument kailangan"
@ -277,6 +282,10 @@ msgstr "0.0 para sa complex power"
msgid "3-arg pow() not supported"
msgstr "3-arg pow() hindi suportado"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -541,6 +550,10 @@ msgstr "Sa gitna ng 0 o 255 dapat ang bytes."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
@ -996,6 +1009,10 @@ msgstr ""
msgid "Function requires lock"
msgstr "Function nangangailangan ng lock"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1124,6 +1141,7 @@ msgstr "Mali ang PWM frequency"
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Maling argumento"
@ -1233,6 +1251,14 @@ msgstr "Mali ang run mode."
msgid "Invalid security_mode"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1273,6 +1299,10 @@ msgstr "Haba ay dapat int"
msgid "Length must be non-negative"
msgstr "Haba ay dapat hindi negatibo"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "Hindi ma-initialize ang MISO pin."
@ -1502,12 +1532,12 @@ msgid ""
"%d bpp given"
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1518,6 +1548,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1526,6 +1568,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr "Oversample ay dapat multiple ng 8."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1543,6 +1589,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Walang pahintulot"
@ -1661,6 +1711,10 @@ msgstr "Basahin-lamang mode"
msgid "Read-only object"
msgstr "Basahin-lamang"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
@ -1673,6 +1727,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Hindi supportado ang kanang channel"
@ -1882,10 +1940,6 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (pinakahuling huling tawag): \n"
@ -2049,6 +2103,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
@ -2466,6 +2524,10 @@ msgstr "chr() arg wala sa sakop ng range(256)"
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "color buffer ay dapat na 3 bytes (RGB) o 4 bytes (RGB + pad byte)"
@ -2538,6 +2600,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "decimal numbers hindi sinusuportahan"
@ -2546,6 +2612,10 @@ msgstr "decimal numbers hindi sinusuportahan"
msgid "default 'except' must be last"
msgstr "default 'except' ay dapat sa huli"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2650,6 +2720,10 @@ msgstr "umaasa sa value para sa set"
msgid "expecting key:value for dict"
msgstr "umaasang key: halaga para sa dict"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "dagdag na keyword argument na ibinigay"
@ -2854,7 +2928,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@ -3101,6 +3175,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3183,6 +3261,10 @@ msgstr "walang magagamit na NIC"
msgid "no binding for nonlocal found"
msgstr "no binding para sa nonlocal, nahanap"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "walang module na '%q'"
@ -3331,10 +3413,6 @@ msgstr ""
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr ""
@ -3426,6 +3504,8 @@ msgstr "pow() 3rd argument ay hindi maaring 0"
msgid "pow() with 3 arguments requires integers"
msgstr "pow() na may 3 argumento kailangan ng integers"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3524,6 +3604,10 @@ msgstr "script kompilasyon hindi supportado"
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "sign hindi maaring string format specifier"
@ -3683,6 +3767,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr "masyadong maraming mga argumento na ibinigay sa ibinigay na format"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr ""
@ -3692,6 +3780,10 @@ msgstr ""
msgid "too many values to unpack (expected %d)"
msgstr "masyadong maraming values para i-unpact (umaasa ng %d)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@ -3700,10 +3792,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "indeks ng tuple wala sa sakop"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "mali ang haba ng tuple/list"
@ -3895,6 +3983,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr "wala sa sakop ang address"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "y ay dapat int"
@ -3920,6 +4012,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "tuple index out of range"
#~ msgstr "indeks ng tuple wala sa sakop"
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Pindutin ang anumang key upang pumasok sa REPL. Gamitin ang CTRL-D upang "

View File

@ -7,8 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2021-01-01 04:29+0000\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-13 16:07+0000\n"
"Last-Translator: Hugo Dahl <hugo@code-jedi.com>\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
@ -124,6 +124,11 @@ msgstr "%q doit être un chiffre entier (int)"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() prend %d paramètres positionnels mais %d ont été donnés"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr "%s erreur 0x%x"
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "paramètre '%q' requis"
@ -286,6 +291,10 @@ msgstr "0.0 à une puissance complexe"
msgid "3-arg pow() not supported"
msgstr "pow() non supporté avec 3 paramètres"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr "types à 64 bit"
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -552,6 +561,10 @@ msgstr "Les octets 'bytes' doivent être entre 0 et 255."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr "Les blocs CBC doivent être des multiples de 16 octets"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr "CRC ou somme de contrôle invalide"
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr "Appelez super () .__ init __ () avant d'accéder à l'objet natif."
@ -1018,6 +1031,10 @@ msgstr ""
msgid "Function requires lock"
msgstr "La fonction nécessite un verrou ('lock')"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr "Échec génerique"
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1146,6 +1163,7 @@ msgstr "Fréquence de PWM invalide"
msgid "Invalid Pin"
msgstr "Broche invalide"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Paramètre invalide"
@ -1255,6 +1273,14 @@ msgstr "Mode de lancement invalide."
msgid "Invalid security_mode"
msgstr "'security_mode' invalide"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr "Taille invalide"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr "État invalide"
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Voix invalide"
@ -1295,6 +1321,10 @@ msgstr "Length doit être un chiffre entier (int)"
msgid "Length must be non-negative"
msgstr "Length ne doit pas être négatif"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr "Adresse physique (MAC) invalide"
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "Échec de l'initialization de la broche MISO."
@ -1527,14 +1557,14 @@ msgstr ""
"Seulement les BMP monochromes, 4 bpp ou 8 bpp, ou 16 bpp et plus sont "
"supportés: %d bpp fournis"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "Seulement une TouchAlarm peu être réglée en someil profond."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr "Seulement une alarme alarm.time peut être réglée."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
msgstr "Seulement une alarme alarm.touch peut être réglée."
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "Une seule couleur peut être transparente à la fois"
@ -1543,6 +1573,18 @@ msgstr "Une seule couleur peut être transparente à la fois"
msgid "Only raw int supported for ip"
msgstr "IP n'accepte que les chiffres entiers bruts"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr "Opération ou fonction non supportée"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr "Timeout de l'opération"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr "Hors de mémoire"
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Plus de sockets"
@ -1551,6 +1593,10 @@ msgstr "Plus de sockets"
msgid "Oversample must be multiple of 8."
msgstr "Le sur-échantillonage doit être un multiple de 8."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr "PDMIn non disponible"
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1571,6 +1617,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr "ParallelBus pas encore supporté"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr "Périphérique en utilisation"
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Permission refusée"
@ -1698,6 +1748,10 @@ msgstr "Système de fichier en lecture seule"
msgid "Read-only object"
msgstr "Objet en lecture seule"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr "Réponse reçue invalide"
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "Rafraîchissement trop tôt"
@ -1710,6 +1764,10 @@ msgstr "RemoteTransmissionRequests limité à 8 octets"
msgid "Requested AES mode is unsupported"
msgstr "Le mode AES demandé n'est pas supporté"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr "Resource demandée non trouvée"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Canal droit non supporté"
@ -1931,10 +1989,6 @@ msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
"Le nombre total de données à écrire est supérieur à outgoing_packet_length"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr "TouchAlarm n'est pas disponible en mode someil léger"
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (appels les plus récents en dernier) :\n"
@ -2102,6 +2156,10 @@ msgstr "Longueur de valeur != Longueur fixe requise"
msgid "Value length > max_length"
msgstr "Longueur de la valeur > max_length"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr "Version est invalide"
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
@ -2523,6 +2581,10 @@ msgstr "paramètre de chr() hors les bornes de range(256)"
msgid "circle can only be registered in one parent"
msgstr "le cercle ne peut être enregistré que dans un seul parent"
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr "code hors bornes 0~127"
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "le tampon de couleur doit faire 3 octets (RVB) ou 4 (RVB + pad byte)"
@ -2597,6 +2659,10 @@ msgstr "les données doivent être les objets iterables"
msgid "data must be of equal length"
msgstr "les données doivent être de longueur égale"
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr "le type de donnée n'est pas reconnu"
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "nombres décimaux non supportés"
@ -2605,6 +2671,10 @@ msgstr "nombres décimaux non supportés"
msgid "default 'except' must be last"
msgstr "l''except' par défaut doit être en dernier"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr "default n'est pas une fonction"
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2706,6 +2776,10 @@ msgstr "une simple valeur est attendue pour l'ensemble 'set'"
msgid "expecting key:value for dict"
msgstr "couple clef:valeur attendu pour un dictionnaire 'dict'"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr "ext_hook n'est pas une fonction"
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "argument(s) nommé(s) supplémentaire(s) donné(s)"
@ -2912,8 +2986,8 @@ msgid "input and output shapes are not compatible"
msgstr "les formes d'entrée et de sortie ne sont pas compatibles"
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgstr "l'argument d'entrée doit être un entier ou un tuple 2"
msgid "input argument must be an integer, a tuple, or a list"
msgstr "Paramètre entrant doit être un chiffre entier, un tuple, ou une liste"
#: extmod/ulab/code/fft/fft.c
msgid "input array length must be power of 2"
@ -3159,6 +3233,10 @@ msgstr "maxiter doit être > 0"
msgid "maxiter should be > 0"
msgstr "maxiter devrait être > 0"
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr "Paramètre pour median doit être un ndarray"
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3241,6 +3319,10 @@ msgstr "adapteur réseau non disponible"
msgid "no binding for nonlocal found"
msgstr "pas de lien trouvé pour nonlocal"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr "aucun emballeur par défault"
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "pas de module '%q'"
@ -3390,10 +3472,6 @@ msgstr "les opérandes ne pouvaient pas être diffusés ensemble"
msgid "operation is implemented for 1D Boolean arrays only"
msgstr "opération implémentée que pour des tableaux 1D booléennes"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr "l'opération n'est pas implémentée pour un tableau applatit"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr "l'opération n'est pas implémentée sur les ndarrays"
@ -3487,6 +3565,8 @@ msgstr "le 3e argument de pow() ne peut être 0"
msgid "pow() with 3 arguments requires integers"
msgstr "pow() avec 3 arguments nécessite des entiers"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3585,6 +3665,10 @@ msgstr "compilation de script non supportée"
msgid "shape must be a tuple"
msgstr "forme doit être un tuple"
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr "donnée trop petite"
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "signe non autorisé dans les spéc. de formats de chaînes de caractères"
@ -3743,6 +3827,10 @@ msgstr "tobytes ne peut être appelé que pour des tableaux dense"
msgid "too many arguments provided with the given format"
msgstr "trop d'arguments fournis avec ce format"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr "Trop de dimensions"
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr "trop d'indices"
@ -3752,6 +3840,10 @@ msgstr "trop d'indices"
msgid "too many values to unpack (expected %d)"
msgstr "trop de valeur à dégrouper (%d attendues)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr "trapz est défini pour tableaux à une dimension"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapz n'est défini que pour des tableaux 1D de longueur égale"
@ -3760,10 +3852,6 @@ msgstr "trapz n'est défini que pour des tableaux 1D de longueur égale"
msgid "trigger level must be 0 or 1"
msgstr "niveau du déclencheur doit être 0 ou 1"
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "index du tuple hors de portée"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tuple/liste a une mauvaise longueur"
@ -3954,6 +4042,10 @@ msgstr "type de sortie incorrect"
msgid "x value out of bounds"
msgstr "valeur x hors limites"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr "Échec de xTaskCreate"
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "'y' doit être un entier 'int'"
@ -3978,6 +4070,21 @@ 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 "Only one alarm.touch alarm can be set."
#~ msgstr "Seulement une alarme alarm.touch peut être réglée."
#~ msgid "TouchAlarm not available in light sleep"
#~ msgstr "TouchAlarm n'est pas disponible en mode someil léger"
#~ msgid "input argument must be an integer or a 2-tuple"
#~ msgstr "l'argument d'entrée doit être un entier ou un tuple 2"
#~ msgid "operation is not implemented for flattened array"
#~ msgstr "l'opération n'est pas implémentée pour un tableau applatit"
#~ msgid "tuple index out of range"
#~ msgstr "index du tuple hors de portée"
#~ msgid ""
#~ "\n"
#~ "Code done running. Waiting for reload.\n"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@ -113,6 +113,11 @@ msgstr ""
msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr ""
@ -275,6 +280,10 @@ msgstr ""
msgid "3-arg pow() not supported"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -535,6 +544,10 @@ msgstr ""
msgid "CBC blocks must be multiples of 16 bytes"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
@ -983,6 +996,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1109,6 +1126,7 @@ msgstr ""
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr ""
@ -1218,6 +1236,14 @@ msgstr ""
msgid "Invalid security_mode"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1258,6 +1284,10 @@ msgstr ""
msgid "Length must be non-negative"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr ""
@ -1484,12 +1514,12 @@ msgid ""
"%d bpp given"
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1500,6 +1530,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1508,6 +1550,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1524,6 +1570,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr ""
@ -1641,6 +1691,10 @@ msgstr ""
msgid "Read-only object"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
@ -1653,6 +1707,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr ""
@ -1862,10 +1920,6 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr ""
@ -2027,6 +2081,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
@ -2429,6 +2487,10 @@ msgstr ""
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr ""
@ -2501,6 +2563,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@ -2509,6 +2575,10 @@ msgstr ""
msgid "default 'except' must be last"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2608,6 +2678,10 @@ msgstr ""
msgid "expecting key:value for dict"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr ""
@ -2811,7 +2885,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@ -3054,6 +3128,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3136,6 +3214,10 @@ msgstr ""
msgid "no binding for nonlocal found"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr ""
@ -3283,10 +3365,6 @@ msgstr ""
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr ""
@ -3377,6 +3455,8 @@ msgstr ""
msgid "pow() with 3 arguments requires integers"
msgstr ""
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3473,6 +3553,10 @@ msgstr ""
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@ -3630,6 +3714,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr ""
@ -3639,6 +3727,10 @@ msgstr ""
msgid "too many values to unpack (expected %d)"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@ -3647,10 +3739,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -3841,6 +3929,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
"Language-Team: \n"
@ -114,6 +114,11 @@ msgstr "y dovrebbe essere un int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() prende %d argomenti posizionali ma ne sono stati forniti %d"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "'%q' argomento richiesto"
@ -276,6 +281,10 @@ msgstr "0.0 elevato alla potenza di un numero complesso"
msgid "3-arg pow() not supported"
msgstr "pow() con tre argmomenti non supportata"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -541,6 +550,10 @@ msgstr "I byte devono essere compresi tra 0 e 255"
msgid "CBC blocks must be multiples of 16 bytes"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
@ -996,6 +1009,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1124,6 +1141,7 @@ msgstr "Frequenza PWM non valida"
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Argomento non valido"
@ -1235,6 +1253,14 @@ msgstr "Modalità di esecuzione non valida."
msgid "Invalid security_mode"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1276,6 +1302,10 @@ msgstr "Length deve essere un intero"
msgid "Length must be non-negative"
msgstr "Length deve essere non negativo"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "inizializzazione del pin MISO fallita."
@ -1507,12 +1537,12 @@ msgid ""
"%d bpp given"
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1523,6 +1553,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1531,6 +1573,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr "L'oversampling deve essere multiplo di 8."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1552,6 +1598,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Permesso negato"
@ -1671,6 +1721,10 @@ msgstr "Filesystem in sola lettura"
msgid "Read-only object"
msgstr "Sola lettura"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
@ -1683,6 +1737,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Canale destro non supportato"
@ -1894,10 +1952,6 @@ msgstr "Troppi schermi"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (chiamata più recente per ultima):\n"
@ -2061,6 +2115,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Le funzioni Viper non supportano più di 4 argomenti al momento"
@ -2467,6 +2525,10 @@ msgstr "argomento di chr() non è in range(256)"
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr ""
@ -2541,6 +2603,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "numeri decimali non supportati"
@ -2549,6 +2615,10 @@ msgstr "numeri decimali non supportati"
msgid "default 'except' must be last"
msgstr "'except' predefinito deve essere ultimo"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2652,6 +2722,10 @@ msgstr "un solo valore atteso per set"
msgid "expecting key:value for dict"
msgstr "chiave:valore atteso per dict"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "argomento nominato aggiuntivo fornito"
@ -2856,7 +2930,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@ -3104,6 +3178,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3187,6 +3265,10 @@ msgstr "busio.UART non ancora implementato"
msgid "no binding for nonlocal found"
msgstr "nessun binding per nonlocal trovato"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "nessun modulo chiamato '%q'"
@ -3337,10 +3419,6 @@ msgstr ""
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr ""
@ -3434,6 +3512,8 @@ msgstr "il terzo argomento di pow() non può essere 0"
msgid "pow() with 3 arguments requires integers"
msgstr "pow() con 3 argomenti richiede interi"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3532,6 +3612,10 @@ msgstr "compilazione dello scrip non suportata"
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "segno non permesso nello spcificatore di formato della stringa"
@ -3691,6 +3775,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr "troppi argomenti forniti con il formato specificato"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr ""
@ -3700,6 +3788,10 @@ msgstr ""
msgid "too many values to unpack (expected %d)"
msgstr "troppi valori da scompattare (%d attesi)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@ -3708,10 +3800,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "indice della tupla fuori intervallo"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tupla/lista ha la lunghezza sbagliata"
@ -3903,6 +3991,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr "indirizzo fuori limite"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "y dovrebbe essere un int"
@ -3928,6 +4020,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "tuple index out of range"
#~ msgstr "indice della tupla fuori intervallo"
#~ msgid "Press any key to enter the REPL. Use CTRL-D to reload."
#~ msgstr ""
#~ "Premi un qualunque tasto per entrare nel REPL. Usa CTRL-D per ricaricare."

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2020-11-27 18:34+0000\n"
"Last-Translator: sporeball <sporeballdev@gmail.com>\n"
"Language-Team: none\n"
@ -118,6 +118,11 @@ msgstr "%qはint型でなければなりません"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() は %d 個の位置引数を取りますが、%d 個与えられました"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "'%q' 引数が必要"
@ -280,6 +285,10 @@ msgstr "0.0を複素数でべき乗"
msgid "3-arg pow() not supported"
msgstr "引数3つのpow()は非対応"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -542,6 +551,10 @@ msgstr "バイト値は0から255の間でなければなりません"
msgid "CBC blocks must be multiples of 16 bytes"
msgstr "CBCブロックは16バイトの整数倍でなければなりません"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
@ -994,6 +1007,10 @@ msgstr "このタイマーを使う既存のPWMOutと周波数を一致させる
msgid "Function requires lock"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1122,6 +1139,7 @@ msgstr "無効なPWM周波数"
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "不正な引数"
@ -1231,6 +1249,14 @@ msgstr "不正なrun mode"
msgid "Invalid security_mode"
msgstr "不正なsecurity_mode"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "不正なボイス"
@ -1271,6 +1297,10 @@ msgstr "長さには整数が必要"
msgid "Length must be non-negative"
msgstr "Lengthは非負数でなければなりません"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "MISOピン初期化に失敗"
@ -1499,12 +1529,12 @@ msgid ""
"%d bpp given"
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1515,6 +1545,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1523,6 +1565,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr "オーバーサンプルは8の倍数でなければなりません"
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1540,6 +1586,10 @@ msgstr "PWM周波数は生成時のvariable_frequencyがFalseのとき書き換
msgid "ParallelBus not yet supported"
msgstr "ParallelBusにはまだ対応していません"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "パーミッション拒否"
@ -1657,6 +1707,10 @@ msgstr "読み込み専用のファイルシステム"
msgid "Read-only object"
msgstr "読み込み専用のオブジェクト"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "リフレッシュが早すぎます"
@ -1669,6 +1723,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr "要求のAESモードは非対応"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "右チャネルは非対応"
@ -1884,10 +1942,6 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "トレースバック(最新の呼び出しが末尾):\n"
@ -2050,6 +2104,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
@ -2452,6 +2510,10 @@ msgstr ""
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr ""
@ -2526,6 +2588,10 @@ msgstr "dataはイテレート可能でなければなりません"
msgid "data must be of equal length"
msgstr "dataは同じ長さでなければなりません"
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@ -2534,6 +2600,10 @@ msgstr ""
msgid "default 'except' must be last"
msgstr "デフォルトのexceptは最後に置く必要があります"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2635,6 +2705,10 @@ msgstr "setには値のみが必要"
msgid "expecting key:value for dict"
msgstr "dictには key:value が必要"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "余分なキーワード引数があります"
@ -2839,7 +2913,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@ -3082,6 +3156,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3164,6 +3242,10 @@ msgstr "利用可能なNICがありません"
msgid "no binding for nonlocal found"
msgstr "nonlocalの対象が見つかりません"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "'%q' という名前のモジュールはありません"
@ -3311,10 +3393,6 @@ msgstr ""
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr "この演算はndarray上で実装されていません"
@ -3407,6 +3485,8 @@ msgstr "pow()の3つ目の引数は0にできません"
msgid "pow() with 3 arguments requires integers"
msgstr "pow()の第3引数には整数が必要"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3504,6 +3584,10 @@ msgstr "スクリプトのコンパイルは非対応"
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "文字列フォーマット指定子で符号は使えません"
@ -3661,6 +3745,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr "指定された書式に対して引数が多すぎます"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr "インデクスが多すぎます"
@ -3670,6 +3758,10 @@ msgstr "インデクスが多すぎます"
msgid "too many values to unpack (expected %d)"
msgstr "アンパックする値が多すぎます (%d個を期待)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapzは同じ長さの1次元arrayに対して定義されています"
@ -3678,10 +3770,6 @@ msgstr "trapzは同じ長さの1次元arrayに対して定義されています"
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "タプル/リストの長さが正しくありません"
@ -3872,6 +3960,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr "xが範囲外"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "yは整数でなければなりません"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2020-10-05 12:12+0000\n"
"Last-Translator: Michal Čihař <michal@cihar.com>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -114,6 +114,11 @@ msgstr "%q 는 정수(int) 여야합니다"
msgid "%q() takes %d positional arguments but %d were given"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr ""
@ -276,6 +281,10 @@ msgstr ""
msgid "3-arg pow() not supported"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -538,6 +547,10 @@ msgstr "바이트는 0에서 255 사이 여야합니다."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
@ -986,6 +999,10 @@ msgstr ""
msgid "Function requires lock"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1112,6 +1129,7 @@ msgstr ""
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr ""
@ -1221,6 +1239,14 @@ msgstr ""
msgid "Invalid security_mode"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1261,6 +1287,10 @@ msgstr "길이는 정수(int) 여야합니다"
msgid "Length must be non-negative"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr ""
@ -1487,12 +1517,12 @@ msgid ""
"%d bpp given"
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1503,6 +1533,18 @@ msgstr ""
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1511,6 +1553,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1527,6 +1573,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr ""
@ -1644,6 +1694,10 @@ msgstr ""
msgid "Read-only object"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr ""
@ -1656,6 +1710,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr ""
@ -1865,10 +1923,6 @@ msgstr ""
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr ""
@ -2031,6 +2085,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr ""
@ -2433,6 +2491,10 @@ msgstr ""
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr ""
@ -2505,6 +2567,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr ""
@ -2513,6 +2579,10 @@ msgstr ""
msgid "default 'except' must be last"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2612,6 +2682,10 @@ msgstr ""
msgid "expecting key:value for dict"
msgstr ""
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr ""
@ -2815,7 +2889,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@ -3058,6 +3132,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3140,6 +3218,10 @@ msgstr ""
msgid "no binding for nonlocal found"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr ""
@ -3287,10 +3369,6 @@ msgstr ""
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr ""
@ -3381,6 +3459,8 @@ msgstr ""
msgid "pow() with 3 arguments requires integers"
msgstr ""
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3477,6 +3557,10 @@ msgstr ""
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr ""
@ -3634,6 +3718,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr ""
@ -3643,6 +3731,10 @@ msgstr ""
msgid "too many values to unpack (expected %d)"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@ -3651,10 +3743,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr ""
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr ""
@ -3845,6 +3933,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr ""
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr ""

View File

@ -5,7 +5,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2020-12-23 20:14+0000\n"
"Last-Translator: _fonzlate <vooralfred@gmail.com>\n"
"Language-Team: none\n"
@ -116,6 +116,11 @@ msgstr "%q moet een int zijn"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() verwacht %d positionele argumenten maar kreeg %d"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "'%q' argument vereist"
@ -278,6 +283,10 @@ msgstr "0.0 tot een complexe macht"
msgid "3-arg pow() not supported"
msgstr "3-arg pow() niet ondersteund"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -540,6 +549,10 @@ msgstr "Bytes moeten tussen 0 en 255 liggen."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr "CBC blocks moeten meervouden van 16 bytes zijn"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr "Roep super().__init__() aan voor toegang native object."
@ -995,6 +1008,10 @@ msgstr ""
msgid "Function requires lock"
msgstr "Functie vereist lock"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1123,6 +1140,7 @@ msgstr "Ongeldige PWM frequentie"
msgid "Invalid Pin"
msgstr "Ongeldige Pin"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Ongeldig argument"
@ -1232,6 +1250,14 @@ msgstr "Ongeldige run modus."
msgid "Invalid security_mode"
msgstr "Ongeldige security_mode"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Ongeldige stem"
@ -1272,6 +1298,10 @@ msgstr "Lengte moet een int zijn"
msgid "Length must be non-negative"
msgstr "Lengte moet niet negatief zijn"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "MISO pin init mislukt."
@ -1504,14 +1534,14 @@ msgstr ""
"Alleen monochrome en 4bpp of 8bpp, en 16bpp of grotere geïndiceerde BMP's "
"zijn ondersteund: %d bpp is gegeven"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr "Slechts één alarm.time alarm kan worden ingesteld."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "Er kan maar één kleur per keer transparant zijn"
@ -1520,6 +1550,18 @@ msgstr "Er kan maar één kleur per keer transparant zijn"
msgid "Only raw int supported for ip"
msgstr "Alleen raw int ondersteund voor IP"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Geen sockets meer beschikbaar"
@ -1528,6 +1570,10 @@ msgstr "Geen sockets meer beschikbaar"
msgid "Oversample must be multiple of 8."
msgstr "Oversample moet een meervoud van 8 zijn."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1547,6 +1593,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr "ParallelBus nog niet ondersteund"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Toegang geweigerd"
@ -1673,6 +1723,10 @@ msgstr "Alleen-lezen bestandssysteem"
msgid "Read-only object"
msgstr "Alleen-lezen object"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "Verversing te snel"
@ -1685,6 +1739,10 @@ msgstr "RemoteTransmissionRequests is beperkt tot 8 bytes"
msgid "Requested AES mode is unsupported"
msgstr "Gevraagde AES modus is niet ondersteund"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Rechter kanaal niet ondersteund"
@ -1904,10 +1962,6 @@ msgstr "Teveel beeldschermen"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr "Totale data om te schrijven is groter dan outgoing_packet_length"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (meest recente call laatst):\n"
@ -2071,6 +2125,10 @@ msgstr "Waarde lengte != vereist vaste lengte"
msgid "Value length > max_length"
msgstr "Waarde length > max_length"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Viper-functies ondersteunen momenteel niet meer dan 4 argumenten"
@ -2484,6 +2542,10 @@ msgid "circle can only be registered in one parent"
msgstr ""
"cirkel kan slechts bij één object van een hoger niveau worden geregistreerd"
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "kleurbuffer moet 3 bytes (RGB) of 4 bytes (RGB + pad byte) zijn"
@ -2556,6 +2618,10 @@ msgstr "data moet itereerbaar zijn"
msgid "data must be of equal length"
msgstr "data moet van gelijke lengte zijn"
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "decimale getallen zijn niet ondersteund"
@ -2564,6 +2630,10 @@ msgstr "decimale getallen zijn niet ondersteund"
msgid "default 'except' must be last"
msgstr "standaard 'expect' moet laatste zijn"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2665,6 +2735,10 @@ msgstr "verwacht alleen een waarde voor set"
msgid "expecting key:value for dict"
msgstr "verwacht key:waarde for dict"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "extra keyword argumenten gegeven"
@ -2869,8 +2943,8 @@ msgid "input and output shapes are not compatible"
msgstr "in- en uitvoervormen zijn niet compatibel"
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgstr "invoerargument moet een integer of 2-tuple zijn"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
msgid "input array length must be power of 2"
@ -3115,6 +3189,10 @@ msgstr "maxiter moet groter dan 0 zijn"
msgid "maxiter should be > 0"
msgstr "maxiter moet groter dan 0 zijn"
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3197,6 +3275,10 @@ msgstr "geen netwerkadapter (NIC) beschikbaar"
msgid "no binding for nonlocal found"
msgstr "geen binding voor nonlocal gevonden"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "geen module met naam '%q'"
@ -3344,10 +3426,6 @@ msgstr "operands konden niet samen verzonden worden"
msgid "operation is implemented for 1D Boolean arrays only"
msgstr "operatie is alleen geïmplementeerd voor 1D Booleaanse arrays"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr "operatie is niet geïmplementeerd voor vlakke array"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr "bewerking is voor ndarrays niet geïmplementeerd"
@ -3439,6 +3517,8 @@ msgstr "derde argument van pow() mag geen 0 zijn"
msgid "pow() with 3 arguments requires integers"
msgstr "pow() met 3 argumenten vereist integers"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3537,6 +3617,10 @@ msgstr "scriptcompilatie wordt niet ondersteund"
msgid "shape must be a tuple"
msgstr "vorm moet een tupel zijn"
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "teken niet toegestaan in string formaatspecificatie"
@ -3694,6 +3778,10 @@ msgstr "tobytes kunnen alleen ingeroepen worden voor gesloten arrays"
msgid "too many arguments provided with the given format"
msgstr "te veel argumenten opgegeven bij dit formaat"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr "te veel indices"
@ -3703,6 +3791,10 @@ msgstr "te veel indices"
msgid "too many values to unpack (expected %d)"
msgstr "te veel waarden om uit te pakken (%d verwacht)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapz is gedefinieerd voor eendimensionale arrays van gelijke lengte"
@ -3711,10 +3803,6 @@ msgstr "trapz is gedefinieerd voor eendimensionale arrays van gelijke lengte"
msgid "trigger level must be 0 or 1"
msgstr "triggerniveau moet 0 of 1 zijn"
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "tuple index buiten bereik"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tuple of lijst heeft onjuiste lengte"
@ -3905,6 +3993,10 @@ msgstr "onjuist uitvoer type"
msgid "x value out of bounds"
msgstr "x-waarde buiten bereik"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "y moet een int zijn"
@ -3929,6 +4021,15 @@ 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 "input argument must be an integer or a 2-tuple"
#~ msgstr "invoerargument moet een integer of 2-tuple zijn"
#~ msgid "operation is not implemented for flattened array"
#~ msgstr "operatie is niet geïmplementeerd voor vlakke array"
#~ msgid "tuple index out of range"
#~ msgstr "tuple index buiten bereik"
#~ msgid ""
#~ "\n"
#~ "Code done running. Waiting for reload.\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2020-12-02 20:29+0000\n"
"Last-Translator: Maciej Stankiewicz <tawezik@gmail.com>\n"
"Language-Team: pl\n"
@ -118,6 +118,11 @@ msgstr "%q powinno być typu int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() bierze %d argumentów pozycyjnych, lecz podano %d"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "'%q' wymaga argumentu"
@ -280,6 +285,10 @@ msgstr "0.0 do potęgi zespolonej"
msgid "3-arg pow() not supported"
msgstr "3-argumentowy pow() jest niewspierany"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -542,6 +551,10 @@ msgstr "Bytes musi być między 0 a 255."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr "Bloki CBC muszą być wielokrotnościami 16 bajtów"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr ""
@ -994,6 +1007,10 @@ msgstr ""
msgid "Function requires lock"
msgstr "Funkcja wymaga blokady"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1122,6 +1139,7 @@ msgstr "Zła częstotliwość PWM"
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Zły argument"
@ -1231,6 +1249,14 @@ msgstr "Zły tryb uruchomienia."
msgid "Invalid security_mode"
msgstr "Nieprawidłowy security_mode"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr ""
@ -1271,6 +1297,10 @@ msgstr "Długość musi być całkowita"
msgid "Length must be non-negative"
msgstr "Długość musi być nieujemna"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "Nie powiodło się ustawienie pinu MISO."
@ -1498,12 +1528,12 @@ msgid ""
"%d bpp given"
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1514,6 +1544,18 @@ msgstr "W danym momencie przezroczysty może być tylko jeden kolor"
msgid "Only raw int supported for ip"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr ""
@ -1522,6 +1564,10 @@ msgstr ""
msgid "Oversample must be multiple of 8."
msgstr "Nadpróbkowanie musi być wielokrotnością 8."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1538,6 +1584,10 @@ msgstr "Nie można zmienić częstotliwości PWM gdy variable_frequency=False."
msgid "ParallelBus not yet supported"
msgstr "ParallelBus nie jest jeszcze obsługiwany"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Odmowa dostępu"
@ -1655,6 +1705,10 @@ msgstr "System plików tylko do odczytu"
msgid "Read-only object"
msgstr "Obiekt tylko do odczytu"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "Zbyt wczesne odświeżenie"
@ -1667,6 +1721,10 @@ msgstr ""
msgid "Requested AES mode is unsupported"
msgstr "Żądany tryb AES nie jest obsługiwany"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Prawy kanał jest niewspierany"
@ -1876,10 +1934,6 @@ msgstr "Zbyt wiele wyświetlaczy"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Ślad wyjątku (najnowsze wywołanie na końcu):\n"
@ -2041,6 +2095,10 @@ msgstr ""
msgid "Value length > max_length"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Funkcje Viper nie obsługują obecnie więcej niż 4 argumentów"
@ -2449,6 +2507,10 @@ msgstr "argument chr() poza zakresem range(256)"
msgid "circle can only be registered in one parent"
msgstr ""
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "bufor kolorów musi nieć 3 bajty (RGB) lub 4 bajty (RGB + wypełnienie)"
@ -2521,6 +2583,10 @@ msgstr ""
msgid "data must be of equal length"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "liczby dziesiętne nieobsługiwane"
@ -2529,6 +2595,10 @@ msgstr "liczby dziesiętne nieobsługiwane"
msgid "default 'except' must be last"
msgstr "domyślny 'except' musi być ostatni"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2629,6 +2699,10 @@ msgstr "oczekiwano tylko wartości dla zbioru"
msgid "expecting key:value for dict"
msgstr "oczekiwano klucz:wartość dla słownika"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "nadmiarowe argumenty nazwane"
@ -2832,7 +2906,7 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
@ -3075,6 +3149,10 @@ msgstr ""
msgid "maxiter should be > 0"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3157,6 +3235,10 @@ msgstr "brak wolnego NIC"
msgid "no binding for nonlocal found"
msgstr "brak wiązania dla zmiennej nielokalnej"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "brak modułu o nazwie '%q'"
@ -3304,10 +3386,6 @@ msgstr "operandy nie mogły być rozgłaszane razem"
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr ""
@ -3399,6 +3477,8 @@ msgstr "trzeci argument pow() nie może być 0"
msgid "pow() with 3 arguments requires integers"
msgstr "trzyargumentowe pow() wymaga liczb całkowitych"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3496,6 +3576,10 @@ msgstr "kompilowanie skryptów nieobsługiwane"
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "znak jest niedopuszczalny w specyfikacji formatu łańcucha"
@ -3653,6 +3737,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr "zbyt wiele argumentów podanych dla tego formatu"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr "zbyt wiele indeksów"
@ -3662,6 +3750,10 @@ msgstr "zbyt wiele indeksów"
msgid "too many values to unpack (expected %d)"
msgstr "zbyt wiele wartości do rozpakowania (oczekiwano %d)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr ""
@ -3670,10 +3762,6 @@ msgstr ""
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "indeks krotki poza zakresem"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "krotka/lista ma złą długość"
@ -3864,6 +3952,10 @@ msgstr ""
msgid "x value out of bounds"
msgstr "x poza zakresem"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "y powinno być całkowite"
@ -3888,6 +3980,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)"
msgstr ""
#~ msgid "tuple index out of range"
#~ msgstr "indeks krotki poza zakresem"
#~ msgid ""
#~ "\n"
#~ "Code done running. Waiting for reload.\n"

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2021-01-01 04:29+0000\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-13 02:19+0000\n"
"Last-Translator: Wellington Terumi Uemura <wellingtonuemura@gmail.com>\n"
"Language-Team: \n"
"Language: pt_BR\n"
@ -120,6 +120,11 @@ msgstr "%q deve ser um int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() recebe %d argumentos posicionais, porém %d foram informados"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr "%s erro 0x%x"
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "'%q' argumento(s) requerido(s)"
@ -286,6 +291,10 @@ msgstr "0,0 para uma potência complexa"
msgid "3-arg pow() not supported"
msgstr "3-arg pow() não compatível"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr "Tipos 64 bit"
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -552,6 +561,10 @@ msgstr "Os bytes devem estar entre 0 e 255."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr "Os blocos CBC devem ter múltiplos de 16 bytes"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr "CRC ou checksum inválido"
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr "Chame super().__init__() antes de acessar o objeto nativo."
@ -1011,6 +1024,10 @@ msgstr ""
msgid "Function requires lock"
msgstr "A função requer bloqueio"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr "Falha Genérica"
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1139,6 +1156,7 @@ msgstr "Frequência PWM inválida"
msgid "Invalid Pin"
msgstr "Pino inválido"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Argumento inválido"
@ -1248,6 +1266,14 @@ msgstr "O modo de execução é inválido."
msgid "Invalid security_mode"
msgstr "O Security_mode é inválido"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr "Tamanho inválido"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr "Estado inválido"
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "A voz é inválida"
@ -1288,6 +1314,10 @@ msgstr "Tamanho deve ser um int"
msgid "Length must be non-negative"
msgstr "O comprimento deve ser positivo"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr "Endereço MAC inválido"
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "A inicialização do pino MISO falhou."
@ -1519,14 +1549,14 @@ msgstr ""
"São compatíveis apenas os BMPs monocromáticos, indexados em 4bpp ou 8bpp e "
"16bpp ou superior: determinado %d bpp"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "Apenas um TouchAlarm pode ser colocado em deep sleep."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr "Apenas um alarme alarm.time pode ser definido."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
msgstr "Apenas um alarme alarm.touch pode ser definido."
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "Apenas uma cor pode ser transparente de cada vez"
@ -1535,6 +1565,18 @@ msgstr "Apenas uma cor pode ser transparente de cada vez"
msgid "Only raw int supported for ip"
msgstr "Apenas o int bruto é compatível para o ip"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr "A operação ou o recurso não é suportado"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr "A operação expirou"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr "Sem memória"
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Sem soquetes"
@ -1543,6 +1585,10 @@ msgstr "Sem soquetes"
msgid "Oversample must be multiple of 8."
msgstr "A superamostragem deve ser um múltiplo de 8."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr "O PDMIn não está disponível"
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1563,6 +1609,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr "O ParallelBus ainda não é compatível"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr "O periférico está em uso"
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Permissão negada"
@ -1692,6 +1742,10 @@ msgstr "Sistema de arquivos somente leitura"
msgid "Read-only object"
msgstr "Objeto de leitura apenas"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr "A resposta recebida foi inválida"
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "A recarga foi cedo demais"
@ -1704,6 +1758,10 @@ msgstr "As requisições de transmissões remotas é limitada a 8 bytes"
msgid "Requested AES mode is unsupported"
msgstr "O modo AES solicitado não é compatível"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr "O recurso solicitado não foi encontrado"
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Canal direito não suportado"
@ -1927,10 +1985,6 @@ msgid "Total data to write is larger than outgoing_packet_length"
msgstr ""
"O total dos dados que serão gravados é maior que outgoing_packet_length"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr "O TouchAlarm não está disponívle no modo light sleep"
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (a última chamada mais recente):\n"
@ -2094,6 +2148,10 @@ msgstr "Comprimento do valor != comprimento fixo necessário"
msgid "Value length > max_length"
msgstr "O comprimento do valor é > max_length"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr "A versão era inválida"
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Atualmente, as funções do Viper não suportam mais de 4 argumentos"
@ -2510,6 +2568,10 @@ msgstr "o arg chr() está fora do intervalo(256)"
msgid "circle can only be registered in one parent"
msgstr "o círculo só pode ser registrado em um pai"
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr "código fora do alcance 0~127"
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "o buffer das cores deve ter 3 bytes (RGB) ou 4 bytes (RGB + pad byte)"
@ -2584,6 +2646,10 @@ msgstr "os dados devem ser iteráveis"
msgid "data must be of equal length"
msgstr "os dados devem ser de igual comprimento"
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr "o tipo do dado não foi compreendido"
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "os números decimais não são compatíveis"
@ -2592,6 +2658,10 @@ msgstr "os números decimais não são compatíveis"
msgid "default 'except' must be last"
msgstr "a predefinição 'exceto' deve ser o último"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr "o padrão não é uma função"
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2694,6 +2764,10 @@ msgstr "esperando apenas um valor para o conjunto"
msgid "expecting key:value for dict"
msgstr "chave esperada: valor para dict"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr "o ext_hook não é uma função"
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "argumentos extras de palavras-chave passados"
@ -2897,8 +2971,9 @@ msgid "input and output shapes are not compatible"
msgstr "as formas de entrada e saída não são compatíveis"
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgstr "o argumento da entrada deve ser um número inteiro ou uma tupla de 2"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
"argumento da entrada deve ser um número inteiro, uma tupla ou uma lista"
#: extmod/ulab/code/fft/fft.c
msgid "input array length must be power of 2"
@ -3143,6 +3218,10 @@ msgstr "maxiter deve ser > 0"
msgid "maxiter should be > 0"
msgstr "maxiter pode ser > 0"
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr "o argumento mediano deve ser um ndarray"
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3227,6 +3306,10 @@ msgstr "não há uma Placa de Rede disponível"
msgid "no binding for nonlocal found"
msgstr "nenhuma ligação para nonlocal foi encontrada"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr "nenhum empacotador padrão"
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "nenhum módulo chamado '%q'"
@ -3375,10 +3458,6 @@ msgstr "os operandos não puderam ser transmitidos juntos"
msgid "operation is implemented for 1D Boolean arrays only"
msgstr "A operação é implementada apenas para matrizes booleanas 1D"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr "a operação não é implementada para a matriz achatada"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr "a operação não foi implementada nos ndarrays"
@ -3473,6 +3552,8 @@ msgstr "O terceiro argumento pow() não pode ser 0"
msgid "pow() with 3 arguments requires integers"
msgstr "o pow() com 3 argumentos requer números inteiros"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3571,6 +3652,10 @@ msgstr "compilação de script não suportada"
msgid "shape must be a tuple"
msgstr "a forma deve ser uma tupla"
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr "leitura curta"
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "sinal não permitido no especificador do formato da sequência"
@ -3728,6 +3813,10 @@ msgstr "os tobytes podem ser invocados apenas nas matrizes densas"
msgid "too many arguments provided with the given format"
msgstr "Muitos argumentos fornecidos com o formato dado"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr "dimensões demais"
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr "índices demais"
@ -3737,6 +3826,10 @@ msgstr "índices demais"
msgid "too many values to unpack (expected %d)"
msgstr "valores demais para descompactar (esperado %d)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr "Trapz está definido para arrays 1D"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr "o trapz está definido para 1D arrays de igual tamanho"
@ -3745,10 +3838,6 @@ msgstr "o trapz está definido para 1D arrays de igual tamanho"
msgid "trigger level must be 0 or 1"
msgstr "nível do gatilho deve ser 0 ou 1"
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "o índice da tupla está fora do intervalo"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "a tupla/lista está com tamanho incorreto"
@ -3939,6 +4028,10 @@ msgstr "tipo da saída incorreta"
msgid "x value out of bounds"
msgstr "o valor x está fora dos limites"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr "o xTaskCreate falhou"
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "y deve ser um int"
@ -3963,6 +4056,21 @@ 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 "Only one alarm.touch alarm can be set."
#~ msgstr "Apenas um alarme alarm.touch pode ser definido."
#~ msgid "TouchAlarm not available in light sleep"
#~ msgstr "O TouchAlarm não está disponívle no modo light sleep"
#~ msgid "input argument must be an integer or a 2-tuple"
#~ msgstr "o argumento da entrada deve ser um número inteiro ou uma tupla de 2"
#~ msgid "operation is not implemented for flattened array"
#~ msgstr "a operação não é implementada para a matriz achatada"
#~ msgid "tuple index out of range"
#~ msgstr "o índice da tupla está fora do intervalo"
#~ msgid ""
#~ "\n"
#~ "Code done running. Waiting for reload.\n"

View File

@ -5,8 +5,8 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"PO-Revision-Date: 2020-12-28 17:59+0000\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2021-01-05 21:03+0000\n"
"Last-Translator: Jonny Bergdahl <jonny@bergdahl.it>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Language: sv\n"
@ -21,12 +21,16 @@ msgid ""
"\n"
"Code done running.\n"
msgstr ""
"\n"
"Koden har kört klart.\n"
#: main.c
msgid ""
"\n"
"Code stopped by auto-reload.\n"
msgstr ""
"\n"
"Koden stoppades av auto-omladdning.\n"
#: supervisor/shared/safe_mode.c
msgid ""
@ -116,6 +120,11 @@ msgstr "%q ska vara en int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() kräver %d positionsargument men %d gavs"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "'%q' argument krävs"
@ -278,6 +287,10 @@ msgstr "0,0 till ett komplext nummer"
msgid "3-arg pow() not supported"
msgstr "3-arguments pow() stöds inte"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -540,21 +553,26 @@ msgstr "Bytes måste vara mellan 0 och 255."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr "CBC-block måste vara multiplar om 16 byte"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr "Anropa super().__init__() innan du använder det ursprungliga objektet."
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Can only alarm on RTC IO from deep sleep."
msgstr ""
msgstr "Kan bara larma på RTC-IO från djupsömn."
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Can only alarm on one low pin while others alarm high from deep sleep."
msgstr ""
"Kan bara larma från djup sömn på låg för en pinne medan andra larmar på hög."
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Can only alarm on two low pins from deep sleep."
msgstr ""
msgstr "Kan bara larma från djup sömn på två låga pinnar."
#: ports/nrf/common-hal/_bleio/Characteristic.c
msgid "Can't set CCCD on local Characteristic"
@ -591,7 +609,7 @@ msgstr "Det går inte att mata ut båda kanalerna på samma pinne"
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Cannot pull on input-only pin."
msgstr ""
msgstr "Kan bara använda pull på pinne för input."
#: shared-module/bitbangio/SPI.c
msgid "Cannot read without MISO pin."
@ -639,7 +657,7 @@ msgstr "Det går inte att ändra frekvensen på en timer som redan används"
#: ports/esp32s2/common-hal/alarm/pin/PinAlarm.c
msgid "Cannot wake on pin edge. Only level."
msgstr ""
msgstr "Kan inte vakna på nivåskift, enbart nivå."
#: shared-module/bitbangio/SPI.c
msgid "Cannot write without MOSI pin."
@ -994,6 +1012,10 @@ msgstr "Frekvensen måste matcha befintlig PWMOut med denna timer"
msgid "Function requires lock"
msgstr "Funktion kräver lås"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1122,6 +1144,7 @@ msgstr "Ogiltig PWM-frekvens"
msgid "Invalid Pin"
msgstr "Ogiltig pinne"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Ogiltigt argument"
@ -1231,6 +1254,14 @@ msgstr "Ogiltigt körläge."
msgid "Invalid security_mode"
msgstr "Ogiltigt säkerhetsläge"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Ogiltig kanal"
@ -1271,6 +1302,10 @@ msgstr "Length måste vara en int"
msgid "Length must be non-negative"
msgstr "Length måste vara positiv"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "init för MISO-pinne misslyckades."
@ -1503,14 +1538,14 @@ msgstr ""
"Endast monokrom, indexerad 4 bpp eller 8 bpp och 16 bpp eller högre BMP: er "
"stöds: %d bpp angiven"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr "Endast ett alarm.time kan ställas in."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
msgid "Only one color can be transparent at a time"
msgstr "Bara en färg kan vara genomskinlig i taget"
@ -1519,6 +1554,18 @@ msgstr "Bara en färg kan vara genomskinlig i taget"
msgid "Only raw int supported for ip"
msgstr "Endast raw int stöds för ip"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "Slut på sockets"
@ -1527,6 +1574,10 @@ msgstr "Slut på sockets"
msgid "Oversample must be multiple of 8."
msgstr "Översampling måste vara multipel av 8."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1545,6 +1596,10 @@ msgstr ""
msgid "ParallelBus not yet supported"
msgstr "ParallelBus stöds ännu inte"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Åtkomst nekad"
@ -1621,7 +1676,7 @@ msgstr ""
#: main.c
msgid "Pretending to deep sleep until alarm, CTRL-C or file write.\n"
msgstr ""
msgstr "Fingerar djup sömn tills larm, Ctrl-C eller filskrivning.\n"
#: shared-bindings/digitalio/DigitalInOut.c
msgid "Pull not used when direction is output."
@ -1671,6 +1726,10 @@ msgstr "Skrivskyddat filsystem"
msgid "Read-only object"
msgstr "Skrivskyddat objekt"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "Uppdaterad för tidigt"
@ -1683,6 +1742,10 @@ msgstr "RemoteTransmissionRequests begränsad till 8 byte"
msgid "Requested AES mode is unsupported"
msgstr "Det begärda AES-läget stöds inte"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Höger kanal stöds inte"
@ -1902,10 +1965,6 @@ msgstr "För många displayer"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr "Total data som ska skrivas är större än outgoing_packet_length"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (senaste anrop):\n"
@ -2069,6 +2128,10 @@ msgstr "Värdets längde ! = krävd fast längd"
msgid "Value length > max_length"
msgstr "Värdets längd > max_length"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Viper-funktioner stöder för närvarande inte mer än fyra argument"
@ -2479,6 +2542,10 @@ msgstr "chr() arg är inte i intervallet(256)"
msgid "circle can only be registered in one parent"
msgstr "circle kan endast registreras i en förälder"
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr "färgbuffert måste vara 3 byte (RGB) eller 4 byte (RGB + pad byte)"
@ -2551,6 +2618,10 @@ msgstr "data måste vara itererbar"
msgid "data must be of equal length"
msgstr "data måste vara av samma längd"
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr "datatyp inte förstådd"
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "decimaltal stöds inte"
@ -2559,6 +2630,10 @@ msgstr "decimaltal stöds inte"
msgid "default 'except' must be last"
msgstr "standard \"except\" måste ligga sist"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2661,6 +2736,10 @@ msgstr "förväntar bara ett värde för set"
msgid "expecting key:value for dict"
msgstr "förväntar nyckel:värde för dict"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "extra keyword-argument angivna"
@ -2864,8 +2943,8 @@ msgid "input and output shapes are not compatible"
msgstr "indata- och utdataformer är inte kompatibla"
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgstr "indataargumentet måste vara ett heltal eller en 2-tupel"
msgid "input argument must be an integer, a tuple, or a list"
msgstr "indataargument måste vara integer, en tuple eller list"
#: extmod/ulab/code/fft/fft.c
msgid "input array length must be power of 2"
@ -3110,6 +3189,10 @@ msgstr "maxiter måste vara > 0"
msgid "maxiter should be > 0"
msgstr "maxiter bör vara > 0"
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr "argumentet median måste vara en ndarray"
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3192,6 +3275,10 @@ msgstr "ingen tillgänglig NIC"
msgid "no binding for nonlocal found"
msgstr "ingen bindning för ickelokal hittad"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "ingen modul med namnet '%q'"
@ -3339,10 +3426,6 @@ msgstr "operander kan inte sändas tillsammans"
msgid "operation is implemented for 1D Boolean arrays only"
msgstr "operationen är enbart implementerad för 1D Boolean-matriser"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr "operationen inte implementeras för tillplattad matris"
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr "åtgärden är inte implementerad för ndarray:er"
@ -3434,6 +3517,8 @@ msgstr "pow() 3: e argument kan inte vara 0"
msgid "pow() with 3 arguments requires integers"
msgstr "pow() med 3 argument kräver heltal"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3532,6 +3617,10 @@ msgstr "skriptkompilering stöds inte"
msgid "shape must be a tuple"
msgstr "shape måste vara en tuple"
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "tecknet tillåts inte i strängformatspecificerare"
@ -3689,6 +3778,10 @@ msgstr "tobyte kan enbart anropas för täta matriser"
msgid "too many arguments provided with the given format"
msgstr "för många argument för det givna formatet"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr "för många dimensioner"
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr "för många index"
@ -3698,6 +3791,10 @@ msgstr "för många index"
msgid "too many values to unpack (expected %d)"
msgstr "för många värden att packa upp (förväntat %d)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr "trapz är definierat för 1D-matriser"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr "trapz är definierad för 1D-matriser med samma längd"
@ -3706,10 +3803,6 @@ msgstr "trapz är definierad för 1D-matriser med samma längd"
msgid "trigger level must be 0 or 1"
msgstr "triggernivå måste vara 0 eller 1"
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "tupelindex utanför intervallet"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "tupel/lista har fel längd"
@ -3900,6 +3993,10 @@ msgstr "fel utdatatyp"
msgid "x value out of bounds"
msgstr "x-värde utanför intervall"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "y ska vara en int"
@ -3924,6 +4021,18 @@ 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 "Only one alarm.touch alarm can be set."
#~ msgstr "Endast ett larm av typ alarm.touch kan ställas in."
#~ msgid "input argument must be an integer or a 2-tuple"
#~ msgstr "indataargumentet måste vara ett heltal eller en 2-tupel"
#~ msgid "operation is not implemented for flattened array"
#~ msgstr "operationen inte implementeras för tillplattad matris"
#~ msgid "tuple index out of range"
#~ msgstr "tupelindex utanför intervallet"
#~ msgid ""
#~ "\n"
#~ "Code done running. Waiting for reload.\n"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: circuitpython-cn\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2020-12-22 22:54+0530\n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2020-11-19 01:28+0000\n"
"Last-Translator: hexthat <hexthat@gmail.com>\n"
"Language-Team: Chinese Hanyu Pinyin\n"
@ -118,6 +118,11 @@ msgstr "%q yīnggāi shì yīgè int"
msgid "%q() takes %d positional arguments but %d were given"
msgstr "%q() cǎiyòng %d wèizhì cānshù, dàn gěi chū %d"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#, c-format
msgid "%s error 0x%x"
msgstr ""
#: py/argcheck.c
msgid "'%q' argument required"
msgstr "xūyào '%q' cānshù"
@ -280,6 +285,10 @@ msgstr "0.0 dào fùzá diànyuán"
msgid "3-arg pow() not supported"
msgstr "bù zhīchí 3-arg pow ()"
#: shared-module/msgpack/__init__.c
msgid "64 bit types"
msgstr ""
#: ports/atmel-samd/common-hal/countio/Counter.c
#: ports/atmel-samd/common-hal/rotaryio/IncrementalEncoder.c
msgid "A hardware interrupt channel is already in use"
@ -542,6 +551,10 @@ msgstr "Zì jié bìxū jiè yú 0 dào 255 zhī jiān."
msgid "CBC blocks must be multiples of 16 bytes"
msgstr "CBC kuài bì xū shì 16 zì jié de bèi shù"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "CRC or checksum was invalid"
msgstr ""
#: py/objtype.c
msgid "Call super().__init__() before accessing native object."
msgstr "Zài fǎngwèn běn jī wùjiàn zhīqián diàoyòng super().__init__()."
@ -992,6 +1005,10 @@ msgstr "Pínlǜ bìxū yǔ shǐyòng cǐ jìshí qì de xiàn yǒu PWMOut xiāng
msgid "Function requires lock"
msgstr "Hánshù xūyào suǒdìng"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Generic Failure"
msgstr ""
#: shared-bindings/displayio/Display.c
#: shared-bindings/displayio/EPaperDisplay.c
#: shared-bindings/framebufferio/FramebufferDisplay.c
@ -1120,6 +1137,7 @@ msgstr "Wúxiào de PWM pínlǜ"
msgid "Invalid Pin"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
#: py/moduerrno.c shared-module/rgbmatrix/RGBMatrix.c
msgid "Invalid argument"
msgstr "Wúxiào de cānshù"
@ -1229,6 +1247,14 @@ msgstr "Wúxiào de yùnxíng móshì."
msgid "Invalid security_mode"
msgstr "Ānquán móshì wúxiào"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid size"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Invalid state"
msgstr ""
#: shared-bindings/audiomixer/Mixer.c
msgid "Invalid voice"
msgstr "Yǔyīn wúxiào"
@ -1269,6 +1295,10 @@ msgstr "Chángdù bìxū shì yīgè zhěngshù"
msgid "Length must be non-negative"
msgstr "Chángdù bìxū shìfēi fùshù"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "MAC address was invalid"
msgstr ""
#: shared-module/bitbangio/SPI.c
msgid "MISO pin init failed."
msgstr "MISO yǐn jiǎo chūshǐhuà shībài."
@ -1500,12 +1530,12 @@ msgstr ""
"Jǐn zhīchí dān sè, suǒyǐn wéi 4bpp huò 8bpp yǐjí 16bpp huò gèng gāo de BMP: "
"Gěi chū %d bpp"
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one TouchAlarm can be set in deep sleep."
msgstr ""
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "Only one alarm.touch alarm can be set."
#: ports/esp32s2/common-hal/alarm/time/TimeAlarm.c
msgid "Only one alarm.time alarm can be set."
msgstr ""
#: shared-module/displayio/ColorConverter.c
@ -1516,6 +1546,18 @@ msgstr "Yīcì zhǐ néng yǒuyī zhǒng yánsè shì tòumíng de"
msgid "Only raw int supported for ip"
msgstr "Ip jǐn zhīchí raw int"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation or feature not supported"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Operation timed out"
msgstr ""
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Out of memory"
msgstr ""
#: ports/esp32s2/common-hal/socketpool/SocketPool.c
msgid "Out of sockets"
msgstr "tào jiē zì wài"
@ -1524,6 +1566,10 @@ msgstr "tào jiē zì wài"
msgid "Oversample must be multiple of 8."
msgstr "Guò cǎiyàng bìxū shì 8 de bèishù."
#: shared-bindings/audiobusio/PDMIn.c
msgid "PDMIn not available"
msgstr ""
#: shared-bindings/pwmio/PWMOut.c
msgid ""
"PWM duty_cycle must be between 0 and 65535 inclusive (16 bit resolution)"
@ -1541,6 +1587,10 @@ msgstr "Dāng biànliàng_pínlǜ shì False zài jiànzhú shí PWM pínlǜ bù
msgid "ParallelBus not yet supported"
msgstr "Shàng bù zhīchí ParallelBus"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "Peripheral in use"
msgstr ""
#: py/moduerrno.c
msgid "Permission denied"
msgstr "Quánxiàn bèi jùjué"
@ -1662,6 +1712,10 @@ msgstr "Zhǐ dú wénjiàn xìtǒng"
msgid "Read-only object"
msgstr "Zhǐ dú duìxiàng"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Received response was invalid"
msgstr ""
#: shared-bindings/displayio/EPaperDisplay.c
msgid "Refresh too soon"
msgstr "Shuāxīn tài kuàile"
@ -1674,6 +1728,10 @@ msgstr "RemoteTransmissionRequests xiànzhì wèi 8 gè zì jié"
msgid "Requested AES mode is unsupported"
msgstr "Qǐngqiú de AES móshì bù shòu zhīchí"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Requested resource not found"
msgstr ""
#: ports/atmel-samd/common-hal/audioio/AudioOut.c
msgid "Right channel unsupported"
msgstr "Bù zhīchí yòu tōngdào"
@ -1892,10 +1950,6 @@ msgstr "Xiǎnshì tài duō"
msgid "Total data to write is larger than outgoing_packet_length"
msgstr "Yào xiě rù de zǒng shùjù dàyú outgoing_packet_length"
#: ports/esp32s2/common-hal/alarm/touch/TouchAlarm.c
msgid "TouchAlarm not available in light sleep"
msgstr ""
#: py/obj.c
msgid "Traceback (most recent call last):\n"
msgstr "Traceback (Zuìjìn yīcì dǎ diànhuà):\n"
@ -2059,6 +2113,10 @@ msgstr "Zhí chángdù != Suǒ xū de gùdìng chángdù"
msgid "Value length > max_length"
msgstr "Zhí chángdù > zuìdà chángdù"
#: ports/esp32s2/bindings/espidf/__init__.c ports/esp32s2/esp_error.c
msgid "Version was invalid"
msgstr ""
#: py/emitnative.c
msgid "Viper functions don't currently support more than 4 arguments"
msgstr "Viper hánshù mùqián bù zhīchí chāoguò 4 gè cānshù"
@ -2468,6 +2526,10 @@ msgstr "chr() cān shǔ bùzài fànwéi (256)"
msgid "circle can only be registered in one parent"
msgstr "quānzi zhǐ néng zài yī wèi jiāzhǎng zhōng zhùcè"
#: shared-bindings/msgpack/ExtType.c
msgid "code outside range 0~127"
msgstr ""
#: shared-bindings/displayio/Palette.c
msgid "color buffer must be 3 bytes (RGB) or 4 bytes (RGB + pad byte)"
msgstr ""
@ -2543,6 +2605,10 @@ msgstr "shùjù bìxū shì kě diédài de"
msgid "data must be of equal length"
msgstr "shùjù chángdù bìxū xiāngděng"
#: extmod/ulab/code/ndarray.c
msgid "data type not understood"
msgstr ""
#: py/parsenum.c
msgid "decimal numbers not supported"
msgstr "bù zhīchí xiǎoshù shù"
@ -2551,6 +2617,10 @@ msgstr "bù zhīchí xiǎoshù shù"
msgid "default 'except' must be last"
msgstr "mòrèn 'except' bìxū shì zuìhòu yīgè"
#: shared-bindings/msgpack/__init__.c
msgid "default is not a function"
msgstr ""
#: shared-bindings/audiobusio/PDMIn.c
msgid ""
"destination buffer must be a bytearray or array of type 'B' for bit_depth = 8"
@ -2652,6 +2722,10 @@ msgstr "jǐn qídài shèzhì de zhí"
msgid "expecting key:value for dict"
msgstr "qídài guānjiàn: Zìdiǎn de jiàzhí"
#: shared-bindings/msgpack/__init__.c
msgid "ext_hook is not a function"
msgstr ""
#: py/argcheck.c
msgid "extra keyword arguments given"
msgstr "éwài de guānjiàn cí cānshù"
@ -2855,8 +2929,8 @@ msgid "input and output shapes are not compatible"
msgstr ""
#: extmod/ulab/code/ulab_create.c
msgid "input argument must be an integer or a 2-tuple"
msgstr "shūrù cānshù bìxū shì zhěngshù huò 2 yuán zǔ"
msgid "input argument must be an integer, a tuple, or a list"
msgstr ""
#: extmod/ulab/code/fft/fft.c
msgid "input array length must be power of 2"
@ -3099,6 +3173,10 @@ msgstr "maxiter bì xū > 0"
msgid "maxiter should be > 0"
msgstr "maxiter yìng wéi > 0"
#: extmod/ulab/code/numerical/numerical.c
msgid "median argument must be an ndarray"
msgstr ""
#: py/runtime.c
#, c-format
msgid "memory allocation failed, allocating %u bytes"
@ -3181,6 +3259,10 @@ msgstr "méiyǒu kěyòng de NIC"
msgid "no binding for nonlocal found"
msgstr "zhǎo bù dào fēi běndì de bǎng dìng"
#: shared-module/msgpack/__init__.c
msgid "no default packer"
msgstr ""
#: py/builtinimport.c
msgid "no module named '%q'"
msgstr "méiyǒu mókuài '%q'"
@ -3328,10 +3410,6 @@ msgstr "cāozuò shǔ bùnéng yīqǐ guǎngbò"
msgid "operation is implemented for 1D Boolean arrays only"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented for flattened array"
msgstr ""
#: extmod/ulab/code/numerical/numerical.c
msgid "operation is not implemented on ndarrays"
msgstr "cāozuò wèi zài ndarrays shàng shíxiàn"
@ -3422,6 +3500,8 @@ msgstr "pow() 3 cān shǔ bùnéng wéi 0"
msgid "pow() with 3 arguments requires integers"
msgstr "pow() yǒu 3 cānshù xūyào zhěngshù"
#: ports/esp32s2/boards/adafruit_feather_esp32s2_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_feather_esp32s2_tftback_nopsram/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_magtag_2.9_grayscale/mpconfigboard.h
#: ports/esp32s2/boards/adafruit_metro_esp32s2/mpconfigboard.h
#: ports/esp32s2/boards/electroniccats_bastwifi/mpconfigboard.h
@ -3520,6 +3600,10 @@ msgstr "bù zhīchí jiǎoběn biānyì"
msgid "shape must be a tuple"
msgstr ""
#: shared-module/msgpack/__init__.c
msgid "short read"
msgstr ""
#: py/objstr.c
msgid "sign not allowed in string format specifier"
msgstr "zìfú chuàn géshì shuōmíng fú zhōng bù yǔnxǔ shǐyòng fúhào"
@ -3677,6 +3761,10 @@ msgstr ""
msgid "too many arguments provided with the given format"
msgstr "tígōng jǐ dìng géshì de cānshù tài duō"
#: extmod/ulab/code/ulab_create.c
msgid "too many dimensions"
msgstr ""
#: extmod/ulab/code/ndarray.c
msgid "too many indices"
msgstr "suǒyǐn tài duō"
@ -3686,6 +3774,10 @@ msgstr "suǒyǐn tài duō"
msgid "too many values to unpack (expected %d)"
msgstr "dǎkāi tài duō zhí (yùqí %d)"
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays"
msgstr ""
#: extmod/ulab/code/approx/approx.c
msgid "trapz is defined for 1D arrays of equal length"
msgstr "Trapz shì wèi děng zhǎng de 1D shùzǔ dìngyì de"
@ -3694,10 +3786,6 @@ msgstr "Trapz shì wèi děng zhǎng de 1D shùzǔ dìngyì de"
msgid "trigger level must be 0 or 1"
msgstr ""
#: extmod/ulab/code/linalg/linalg.c
msgid "tuple index out of range"
msgstr "yuán zǔ suǒyǐn chāochū fànwéi"
#: py/obj.c
msgid "tuple/list has wrong length"
msgstr "yuán zǔ/lièbiǎo chángdù cuòwù"
@ -3888,6 +3976,10 @@ msgstr "cuòwù de shūchū lèixíng"
msgid "x value out of bounds"
msgstr "x zhí chāochū biānjiè"
#: ports/esp32s2/common-hal/audiobusio/__init__.c
msgid "xTaskCreate failed"
msgstr ""
#: shared-bindings/displayio/Shape.c
msgid "y should be an int"
msgstr "y yīnggāi shì yīgè zhěngshù"
@ -3912,6 +4004,12 @@ 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 "input argument must be an integer or a 2-tuple"
#~ msgstr "shūrù cānshù bìxū shì zhěngshù huò 2 yuán zǔ"
#~ msgid "tuple index out of range"
#~ msgstr "yuán zǔ suǒyǐn chāochū fànwéi"
#~ msgid ""
#~ "\n"
#~ "Code done running. Waiting for reload.\n"

View File

@ -11,3 +11,5 @@ LONGINT_IMPL = NONE
CIRCUITPY_FULL_BUILD = 0
SUPEROPT_GC = 0
CFLAGS_BOARD = --param max-inline-insns-auto=15

View File

@ -14,6 +14,7 @@ LONGINT_IMPL = MPZ
CIRCUITPY_BITBANGIO = 0
CIRCUITPY_COUNTIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0

View File

@ -15,12 +15,14 @@ LONGINT_IMPL = MPZ
CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
MICROPY_PY_ASYNC_AWAIT = 0
SUPEROPT_GC = 0
CFLAGS_INLINE_LIMIT = 55
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH

View File

@ -16,6 +16,7 @@ CIRCUITPY_BITBANGIO = 0
CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_PIXELBUF = 1
CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0
@ -25,6 +26,7 @@ CFLAGS_INLINE_LIMIT = 50
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Crickit
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH

View File

@ -16,6 +16,7 @@ CIRCUITPY_BITBANGIO = 0
CIRCUITPY_COUNTIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_PIXELBUF = 0
CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0
@ -26,6 +27,7 @@ SUPEROPT_GC = 0
CFLAGS_INLINE_LIMIT = 55
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_CircuitPlayground
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_LIS3DH
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel

View File

@ -15,6 +15,7 @@ CIRCUITPY_BITBANGIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_COUNTIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0

View File

@ -18,6 +18,7 @@ CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_GAMEPAD = 0
CFLAGS_INLINE_LIMIT = 50
CIRCUITPY_MSGPACK = 0
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice

View File

@ -15,6 +15,7 @@ CIRCUITPY_BITBANGIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_COUNTIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
# supersized, not ultra-supersized
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0

View File

@ -14,6 +14,7 @@ LONGINT_IMPL = MPZ
CIRCUITPY_BITBANGIO = 0
CIRCUITPY_COUNTIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0

View File

@ -0,0 +1,40 @@
/*
* 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"
#include "common-hal/microcontroller/Pin.h"
#include "supervisor/shared/board.h"
#include "hal/include/hal_gpio.h"
void board_init(void) {
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}

View File

@ -0,0 +1,57 @@
#define MICROPY_HW_BOARD_NAME "Adafruit NeoPixel Trinkey M0"
#define MICROPY_HW_MCU_NAME "samd21e18"
#define MICROPY_HW_NEOPIXEL (&pin_PA05)
#define MICROPY_PORT_A (0)
#define MICROPY_PORT_B (0)
#define MICROPY_PORT_C (0)
#define IGNORE_PIN_PA00 1
#define IGNORE_PIN_PA01 1
#define IGNORE_PIN_PA02 1
#define IGNORE_PIN_PA04 1
#define IGNORE_PIN_PA06 1
#define IGNORE_PIN_PA08 1
#define IGNORE_PIN_PA09 1
#define IGNORE_PIN_PA10 1
#define IGNORE_PIN_PA11 1
#define IGNORE_PIN_PA12 1
#define IGNORE_PIN_PA13 1
#define IGNORE_PIN_PA14 1
#define IGNORE_PIN_PA15 1
#define IGNORE_PIN_PA16 1
#define IGNORE_PIN_PA17 1
#define IGNORE_PIN_PA18 1
#define IGNORE_PIN_PA19 1
#define IGNORE_PIN_PA20 1
#define IGNORE_PIN_PA21 1
// USB is always used internally so skip the pin objects for it.
#define IGNORE_PIN_PA24 1
#define IGNORE_PIN_PA25 1
#define IGNORE_PIN_PA27 1
#define IGNORE_PIN_PA28 1
#define IGNORE_PIN_PA30 1
#define IGNORE_PIN_PA31 1
#define IGNORE_PIN_PB00 1
#define IGNORE_PIN_PB01 1
#define IGNORE_PIN_PB02 1
#define IGNORE_PIN_PB03 1
#define IGNORE_PIN_PB04 1
#define IGNORE_PIN_PB05 1
#define IGNORE_PIN_PB06 1
#define IGNORE_PIN_PB07 1
#define IGNORE_PIN_PB08 1
#define IGNORE_PIN_PB09 1
#define IGNORE_PIN_PB10 1
#define IGNORE_PIN_PB11 1
#define IGNORE_PIN_PB12 1
#define IGNORE_PIN_PB13 1
#define IGNORE_PIN_PB14 1
#define IGNORE_PIN_PB15 1
#define IGNORE_PIN_PB16 1
#define IGNORE_PIN_PB17 1
#define IGNORE_PIN_PB22 1
#define IGNORE_PIN_PB23 1
#define IGNORE_PIN_PB30 1
#define IGNORE_PIN_PB31 1

View File

@ -0,0 +1,44 @@
USB_VID = 0x239A
USB_PID = 0x80F0
USB_PRODUCT = "NeoPixel Trinkey M0"
USB_MANUFACTURER = "Adafruit Industries LLC"
CHIP_VARIANT = SAMD21E18A
CHIP_FAMILY = samd21
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = NONE
SUPEROPT_GC = 0
CIRCUITPY_ANALOGIO = 0
CIRCUITPY_ROTARYIO = 0
CIRCUITPY_RTC = 0
CIRCUITPY_SAMD = 0
CIRCUITPY_PS2IO = 0
CIRCUITPY_PULSEIO = 0
CIRCUITPY_PWMIO = 0
CIRCUITPY_AUDIOCORE = 0
CIRCUITPY_BUSIO = 0
CIRCUITPY_STORAGE = 0
CIRCUITPY_MATH = 1
CIRCUITPY_PIXELBUF = 1
CIRCUITPY_USB_MIDI = 1
CIRCUITPY_TOUCHIO = 1
CIRCUITPY_FULL_BUILD = 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
# Include these Python libraries in firmware.
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID

View File

@ -0,0 +1,9 @@
#include "shared-bindings/board/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_TOUCH1), MP_ROM_PTR(&pin_PA03) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA05) },
{ MP_ROM_QSTR(MP_QSTR_TOUCH2), MP_ROM_PTR(&pin_PA07) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -24,3 +24,8 @@ SUPEROPT_GC = 0
FROZEN_MPY_DIRS += $(TOP)/frozen/pew-pewpew-standalone-10.x
CFLAGS_BOARD = --param max-inline-insns-auto=15
ifeq ($(TRANSLATION), de_DE)
RELEASE_NEEDS_CLEAN_BUILD = 1
CFLAGS_INLINE_LIMIT = 35
SUPEROPT_VM = 0
endif

View File

@ -17,6 +17,7 @@ CIRCUITPY_BITBANGIO = 0
CIRCUITPY_COUNTIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
SUPEROPT_GC = 0

View File

@ -13,3 +13,5 @@ CIRCUITPY_I2CPERIPHERAL = 1
CIRCUITPY_TOUCHIO = 0
SUPEROPT_GC = 0
CFLAGS_BOARD = --param max-inline-insns-auto=15

View File

@ -14,6 +14,7 @@ LONGINT_IMPL = MPZ
CIRCUITPY_BITBANGIO = 0
CIRCUITPY_GAMEPAD = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0

View File

@ -15,6 +15,7 @@ CIRCUITPY_BITBANGIO = 0
CIRCUITPY_COUNTIO = 0
CIRCUITPY_GAMEPAD = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0

View File

@ -16,6 +16,7 @@ CIRCUITPY_BITBANGIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_COUNTIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_VECTORIO = 0
CIRCUITPY_BUSDEVICE = 0

View File

@ -55,21 +55,22 @@ void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self,
mp_raise_NotImplementedError(translate("No DAC on chip"));
#else
int channel = -1;
uint8_t channel;
switch (pin->number) {
#if defined(PIN_PA02) && !defined(IGNORE_PIN_PA02)
case PIN_PA02:
channel = 0;
break;
#endif
#if defined(PIN_PA02) && !defined(IGNORE_PIN_PA02)
if (pin->number != PIN_PA02) {
channel = 0;
}
#endif
#if defined(PIN_PA05) && defined(PIN_PA05) && !defined(IGNORE_PIN_PA05)
if (pin->number != PIN_PA05) {
channel = 1;
}
#endif
#if defined(SAM_D5X_E5X) && defined(PIN_PA05) && !defined(IGNORE_PIN_PA05)
case PIN_PA05:
channel = 1;
break;
#endif
if(channel == -1) {
mp_raise_ValueError(translate("AnalogOut not supported on given pin"));
default:
mp_raise_ValueError(translate("AnalogOut not supported on given pin"));
return;
}

View File

@ -44,6 +44,7 @@
# define _TCC_SIZE(unused, n) TCC ## n ## _SIZE,
# define TCC_SIZES { REPEAT_MACRO(_TCC_SIZE, 0, TCC_INST_NUM) }
static const uint8_t tcc_sizes[TCC_INST_NUM] = TCC_SIZES;
static uint32_t tcc_periods[TCC_INST_NUM];
static uint32_t tc_periods[TC_INST_NUM];
@ -233,8 +234,7 @@ pwmout_result_t common_hal_pwmio_pwmout_construct(pwmio_pwmout_obj_t* self,
resolution = 16;
} else {
// TCC resolution varies so look it up.
const uint8_t _tcc_sizes[TCC_INST_NUM] = TCC_SIZES;
resolution = _tcc_sizes[timer->index];
resolution = tcc_sizes[timer->index];
}
// First determine the divisor that gets us the highest resolution.
uint32_t system_clock = common_hal_mcu_processor_get_frequency();
@ -421,7 +421,8 @@ void common_hal_pwmio_pwmout_set_frequency(pwmio_pwmout_obj_t* self,
if (t->is_tc) {
resolution = 16;
} else {
resolution = 24;
// TCC resolution varies so look it up.
resolution = tcc_sizes[t->index];
}
uint32_t system_clock = common_hal_mcu_processor_get_frequency();
uint32_t new_top;

View File

@ -319,8 +319,9 @@ safe_mode_t port_init(void) {
}
void reset_port(void) {
#if CIRCUITPY_BUSIO
reset_sercoms();
#endif
#if CIRCUITPY_AUDIOIO
audio_dma_reset();
audioout_reset();
@ -429,9 +430,11 @@ uint32_t port_get_saved_word(void) {
// TODO: Move this to an RTC backup register so we can preserve it when only the BACKUP power domain
// is enabled.
static volatile uint64_t overflowed_ticks = 0;
#ifdef SAMD21
static volatile bool _ticks_enabled = false;
#endif
static uint32_t _get_count(uint32_t* overflow_count) {
static uint32_t _get_count(uint64_t* overflow_count) {
#ifdef SAM_D5X_E5X
while ((RTC->MODE0.SYNCBUSY.reg & (RTC_MODE0_SYNCBUSY_COUNTSYNC | RTC_MODE0_SYNCBUSY_COUNT)) != 0) {}
#endif
@ -500,7 +503,7 @@ void RTC_Handler(void) {
}
uint64_t port_get_raw_ticks(uint8_t* subticks) {
uint32_t overflow_count;
uint64_t overflow_count;
uint32_t current_ticks = _get_count(&overflow_count);
if (subticks != NULL) {
*subticks = (current_ticks % 16) * 2;
@ -537,9 +540,11 @@ void port_disable_tick(void) {
// they'll wake us up earlier. If we don't, we'll mess up ticks by overwriting
// the next RTC wake up time.
void port_interrupt_after_ticks(uint32_t ticks) {
#ifdef SAMD21
if (_ticks_enabled) {
return;
}
#endif
_port_interrupt_after_ticks(ticks);
}

View File

@ -4,3 +4,5 @@ USB_PRODUCT = "Spresense"
USB_MANUFACTURER = "Sony"
INTERNAL_FLASH_FILESYSTEM = 1
CIRCUITPY_MSGPACK = 0

View File

@ -299,6 +299,8 @@ ESP_AUTOGEN_LD = $(BUILD)/esp-idf/esp-idf/esp32s2/esp32s2_out.ld $(BUILD)/esp-id
FLASH_FLAGS = --flash_mode $(CIRCUITPY_ESP_FLASH_MODE) --flash_freq $(CIRCUITPY_ESP_FLASH_FREQ) --flash_size $(CIRCUITPY_ESP_FLASH_SIZE)
ESPTOOL_FLAGS ?= -b 460800 --before=default_reset --after=no_reset
all: $(BUILD)/firmware.bin $(BUILD)/firmware.uf2
.PHONY: esp-idf-stamp
@ -337,10 +339,10 @@ $(BUILD)/firmware.uf2: $(BUILD)/circuitpython-firmware.bin
$(Q)$(PYTHON3) $(TOP)/tools/uf2/utils/uf2conv.py -f 0xbfdd4eee -b 0x0000 -c -o $@ $^
flash: $(BUILD)/firmware.bin
esptool.py --chip esp32s2 -p $(PORT) -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x0000 $^
esptool.py --chip esp32s2 -p $(PORT) $(ESPTOOL_FLAGS) write_flash $(FLASH_FLAGS) 0x0000 $^
flash-circuitpython-only: $(BUILD)/circuitpython-firmware.bin
esptool.py --chip esp32s2 -p $(PORT) -b 460800 --before=default_reset --after=no_reset write_flash $(FLASH_FLAGS) 0x10000 $^
esptool.py --chip esp32s2 -p $(PORT) $(ESPTOOL_FLAGS) write_flash $(FLASH_FLAGS) 0x10000 $^
include $(TOP)/py/mkrules.mk

View File

@ -1,84 +0,0 @@
# Circuitpython on ESP32-S2 #
This port adds the ESP32-S2 line of modules from Espressif to Circuitpython. ESP32-S2 modules are low power, single-core Wi-Fi microcontroller SoCs designed for IoT applications.
## How this port is organized: ##
- **bindings/** contains some required bindings to the ESP-IDF for exceptions and memory.
- **boards/** contains the configuration files for each development board and breakout available on the port.
- **common-hal/** contains the port-specific module implementations, used by shared-module and shared-bindings.
- **esp-idf/** contains the Espressif IoT development framework installation, including all the drivers for the port.
- **modules/** contains information specific to certain ESP32-S2 hardware modules, such as the pins used for flash and RAM on the WROVER and WROOM.
- **peripherals/** contains peripheral setup files and peripheral mapping information, sorted by family and sub-variant. Most files in this directory can be generated with the python scripts in **tools/**.
- **supervisor/** contains port-specific implementations of internal flash, serial and USB, as well as the **port.c** file, which initializes the port at startup.
- **tools/** includes useful python scripts for debugging and other purposes.
At the root level, refer to **mpconfigboard.h** and **mpconfigport.mk** for port specific settings and a list of enabled circuitpython modules.
## Connecting to the ESP32-S2 ##
The USB port built into ESP32-S2 boards such as the Saola is not the native USB of the board, but a debugging and programming interface. The actual ESP32-S2 native USB which exposes the Circuitpython drive and CDC connection is located on IO pins 19 and 20:
| GPIO | USB |
| ---- | ----------- |
| 20 | D+ (green) |
| 19 | D- (white) |
| GND | GND (black) |
| 5V | +5V (red) |
Connect these pins using a [USB adapter](https://www.adafruit.com/product/4090) or [breakout cable](https://www.adafruit.com/product/4448) to access the Circuitpython drive.
## Building and flashing ##
Before building or flashing the ESP32-S2, you must [install the esp-idf](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html). This must be re-done every time the esp-idf is updated, but not every time you build. Run `cd ports/esp32s2` from `circuitpython/` to move to the esp32s2 port root, and run:
```
./esp-idf/install.sh
```
After this initial installation, you must add the esp-idf tools to your path. You must also do this **any time you open a new bash environment for building or flashing**:
```
. esp-idf/export.sh
```
When Circuitpython updates the ESP-IDF to a new release, you may need to run this installation process again. The exact commands used may also vary based on your bash environment.
Building boards such as the Saola is typically done through `make flash`. The default port is `tty.SLAB_USBtoUART`, which will only work on certain Mac setups. On most machines, both Mac and Linux, you will need to set the port yourself by running `ls /dev/tty.usb*` and selecting the one that only appears when your development board is plugged in. An example make command with the port setting is as follows:
```
make BOARD=espressif_saola_1_wrover flash PORT=/dev/tty.usbserial-1421120
```
## Debugging ##
The ESP32-S2 supports JTAG debugging over OpenOCD using a JLink or other probe hardware. The official tutorials can be found on the Espressif website [here](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-guides/jtag-debugging/index.html), but they are mostly for the ESP32-S2 Kaluga, which has built-in debugging.
OpenOCD is automatically installed and added to your bash environment during the esp-idf installation and setup process. You can double check that it is installed by using `openocd --version`, as per the tutorial. Attach the JTAG probe pins according to the [instructions](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-guides/jtag-debugging/configure-other-jtag.html) for JTAG debugging on boards that do not contain an integrated debugger.
Once the debugger is connected physically, you must run OpenOCD with attached configuration files specifying the **interface** (your debugger probe) and either a **target** or a **board** (targets are for SoCs only, and can be used when a full board configuration file doesn't exist). You can find the path location of these files by checking the `OPENOCD_SCRIPTS` environmental variable by running `echo $OPENOCD_SCRIPTS` in bash. Interfaces will be in the `interface/` directory, and targets and boards in the `target/` and `board/` directories, respectively.
**Note:** Unfortunately, there are no board files for the esp32-s2 other than the Kaluga, and the included `target/esp32s2.cfg` target file will not work by default on the Jlink for boards like the Saola 1, as the default speed is incorrect. In addition, these files are covered under the GPL and cannot be included in Circuitpython. Thus, you must make a copy of the esp32s2.cfg file yourself and add the following line manually, under `transport select jtag` at the start of the file:
```
adapter_khz 1000
```
Once this is complete, your final OpenOCD command may look something like this:
`openocd -f interface/jlink.cfg -f SOMEPATH/copied-esp32s2-saola-1.cfg`
Where `SOMEPATH` is the location of your copied configuration file (this can be placed in the port/boards director with a prefix to ignore it with `.gitignore`, for instance). Interface, target and board config files sourced from espressif only need their paths from the $OPENOCD_SCRIPTS location, you don't need to include their full path. Once OpenOCD is running, connect to GDB with:
`xtensa-esp32s2-elf-gdb build-espressif_saola_1_wrover/firmware.elf`
And follow the Espressif GDB tutorial [instructions](https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-guides/jtag-debugging/using-debugger.html) for connecting, or add them to your `gdbinit`:
```
target remote :3333
set remote hardware-watchpoint-limit 2
mon reset halt
flushregs
thb app_main
c
```

94
ports/esp32s2/README.rst Normal file
View File

@ -0,0 +1,94 @@
Circuitpython on ESP32-S2
=======================================
This port adds the ESP32-S2 line of modules from Espressif to Circuitpython. ESP32-S2 modules are low power, single-core Wi-Fi microcontroller SoCs designed for IoT applications.
How this port is organized:
---------------------------------------
- **bindings/** contains some required bindings to the ESP-IDF for exceptions and memory.
- **boards/** contains the configuration files for each development board and breakout available on the port.
- **common-hal/** contains the port-specific module implementations, used by shared-module and shared-bindings.
- **esp-idf/** contains the Espressif IoT development framework installation, including all the drivers for the port.
- **modules/** contains information specific to certain ESP32-S2 hardware modules, such as the pins used for flash and RAM on the WROVER and WROOM.
- **peripherals/** contains peripheral setup files and peripheral mapping information, sorted by family and sub-variant. Most files in this directory can be generated with the python scripts in **tools/**.
- **supervisor/** contains port-specific implementations of internal flash, serial and USB, as well as the **port.c** file, which initializes the port at startup.
- **tools/** includes useful python scripts for debugging and other purposes.
At the root level, refer to **mpconfigboard.h** and **mpconfigport.mk** for port specific settings and a list of enabled circuitpython modules.
Connecting to the ESP32-S2
---------------------------------------
The USB port built into ESP32-S2 boards such as the Saola is not the native USB of the board, but a debugging and programming interface. The actual ESP32-S2 native USB which exposes the Circuitpython drive and CDC connection is located on IO pins 19 and 20:
.. csv-table::
:header: GPIO, USB
20, "D+ (green)"
19, "D- (white)"
GND, "GND (black)"
5V, "+5V (red)"
Connect these pins using a `USB adapter <https://www.adafruit.com/product/4090>`_ or `breakout cable <https://www.adafruit.com/product/4448>`_ to access the Circuitpython drive.
Building and flashing
---------------------------------------
Before building or flashing the ESP32-S2, you must `install the esp-idf <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/get-started/index.html>`_. This must be re-done every time the esp-idf is updated, but not every time you build. Run ``cd ports/esp32s2`` from ``circuitpython/`` to move to the esp32s2 port root, and run:
.. code-block::
./esp-idf/install.sh
After this initial installation, you must add the esp-idf tools to your path. You must also do this **any time you open a new bash environment for building or flashing**:
.. code-block::
. esp-idf/export.sh
When Circuitpython updates the ESP-IDF to a new release, you may need to run this installation process again. The exact commands used may also vary based on your bash environment.
Building boards such as the Saola is typically done through ``make flash``. The default port is ``tty.SLAB_USBtoUART``, which will only work on certain Mac setups. On most machines, both Mac and Linux, you will need to set the port yourself by running ``ls /dev/tty.usb*`` and selecting the one that only appears when your development board is plugged in. An example make command with the port setting is as follows:
.. code-block::
make BOARD=espressif_saola_1_wrover flash PORT=/dev/tty.usbserial-1421120
Debugging
---------------------------------------
The ESP32-S2 supports JTAG debugging over OpenOCD using a JLink or other probe hardware. The official tutorials can be found on the Espressif website `here <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-guides/jtag-debugging/index.html>`_, but they are mostly for the ESP32-S2 Kaluga, which has built-in debugging.
OpenOCD is automatically installed and added to your bash environment during the esp-idf installation and setup process. You can double check that it is installed by using ``openocd --version``, as per the tutorial. Attach the JTAG probe pins according to the `instructions for JTAG debugging <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-guides/jtag-debugging/configure-other-jtag.html>`_ on boards that do not contain an integrated debugger.
Once the debugger is connected physically, you must run OpenOCD with attached configuration files specifying the **interface** (your debugger probe) and either a **target** or a **board** (targets are for SoCs only, and can be used when a full board configuration file doesn't exist). You can find the path location of these files by checking the ``OPENOCD_SCRIPTS`` environmental variable by running ``echo $OPENOCD_SCRIPTS`` in bash. Interfaces will be in the ``interface/`` directory, and targets and boards in the ``target/`` and ``board/`` directories, respectively.
**Note:** Unfortunately, there are no board files for the esp32-s2 other than the Kaluga, and the included ``target/esp32s2.cfg`` target file will not work by default on the Jlink for boards like the Saola 1, as the default speed is incorrect. In addition, these files are covered under the GPL and cannot be included in Circuitpython. Thus, you must make a copy of the esp32s2.cfg file yourself and add the following line manually, under ``transport select jtag`` at the start of the file:
.. code-block::
adapter_khz 1000
Once this is complete, your final OpenOCD command may look something like this:
.. code-block::
openocd -f interface/jlink.cfg -f SOMEPATH/copied-esp32s2-saola-1.cfg
Where ``SOMEPATH`` is the location of your copied configuration file (this can be placed in the port/boards directory with a prefix to ignore it with ``.gitignore``, for instance). Interface, target and board config files sourced from espressif only need their paths from the $OPENOCD_SCRIPTS location, you don't need to include their full path. Once OpenOCD is running, connect to GDB with:
.. code-block::
xtensa-esp32s2-elf-gdb build-espressif_saola_1_wrover/firmware.elf
And follow the Espressif GDB tutorial `instructions for connecting <https://docs.espressif.com/projects/esp-idf/en/latest/esp32s2/api-guides/jtag-debugging/using-debugger.html>`_, or add them to your ``gdbinit``:
.. code-block::
target remote :3333
set remote hardware-watchpoint-limit 2
mon reset halt
flushregs
thb app_main
c

View File

@ -65,12 +65,12 @@ STATIC mp_obj_t espidf_heap_caps_get_largest_free_block(void) {
}
MP_DEFINE_CONST_FUN_OBJ_0(espidf_heap_caps_get_largest_free_block_obj, espidf_heap_caps_get_largest_free_block);
//| class MemoryError(MemoryError):
//| """Raised when an ESP IDF memory allocation fails."""
//| class IDFError(OSError):
//| """Raised for certain generic ESP IDF errors."""
//| ...
//|
NORETURN void mp_raise_espidf_MemoryError(void) {
nlr_raise(mp_obj_new_exception(&mp_type_espidf_MemoryError));
NORETURN void mp_raise_espidf_IDFError(void) {
nlr_raise(mp_obj_new_exception(&mp_type_espidf_IDFError));
}
void espidf_exception_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kind_t kind) {
@ -83,6 +83,24 @@ void espidf_exception_print(const mp_print_t *print, mp_obj_t o_in, mp_print_kin
mp_obj_exception_print(print, o_in, kind);
}
const mp_obj_type_t mp_type_espidf_IDFError = {
{ &mp_type_type },
.name = MP_QSTR_IDFError,
.print = espidf_exception_print,
.make_new = mp_obj_exception_make_new,
.attr = mp_obj_exception_attr,
.parent = &mp_type_OSError,
};
//| class MemoryError(MemoryError):
//| """Raised when an ESP IDF memory allocation fails."""
//| ...
//|
NORETURN void mp_raise_espidf_MemoryError(void) {
nlr_raise(mp_obj_new_exception(&mp_type_espidf_MemoryError));
}
const mp_obj_type_t mp_type_espidf_MemoryError = {
{ &mp_type_type },
.name = MP_QSTR_MemoryError,
@ -99,6 +117,7 @@ STATIC const mp_rom_map_elem_t espidf_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_heap_caps_get_free_size), MP_ROM_PTR(&espidf_heap_caps_get_free_size_obj)},
{ MP_ROM_QSTR(MP_QSTR_heap_caps_get_largest_free_block), MP_ROM_PTR(&espidf_heap_caps_get_largest_free_block_obj)},
{ MP_ROM_QSTR(MP_QSTR_IDFError), MP_ROM_PTR(&mp_type_espidf_IDFError) },
{ MP_ROM_QSTR(MP_QSTR_MemoryError), MP_ROM_PTR(&mp_type_espidf_MemoryError) },
};
@ -108,3 +127,64 @@ const mp_obj_module_t espidf_module = {
.base = { &mp_type_module },
.globals = (mp_obj_dict_t*)&espidf_module_globals,
};
void raise_esp_error(esp_err_t err) {
const compressed_string_t *msg = NULL;
const mp_obj_type_t * exception_type = &mp_type_espidf_IDFError;
switch(err) {
case ESP_FAIL:
msg = translate("Generic Failure");
break;
case ESP_ERR_NO_MEM:
exception_type = &mp_type_espidf_MemoryError;
msg = translate("Out of memory");
break;
case ESP_ERR_INVALID_ARG:
msg = translate("Invalid argument");
break;
case ESP_ERR_INVALID_STATE:
msg = translate("Invalid state");
break;
case ESP_ERR_INVALID_SIZE:
msg = translate("Invalid size");
break;
case ESP_ERR_NOT_FOUND:
msg = translate("Requested resource not found");
break;
case ESP_ERR_NOT_SUPPORTED:
msg = translate("Operation or feature not supported");
break;
case ESP_ERR_TIMEOUT:
msg = translate("Operation timed out");
break;
case ESP_ERR_INVALID_RESPONSE:
msg = translate("Received response was invalid");
break;
case ESP_ERR_INVALID_CRC:
msg = translate("CRC or checksum was invalid");
break;
case ESP_ERR_INVALID_VERSION:
msg = translate("Version was invalid");
break;
case ESP_ERR_INVALID_MAC:
msg = translate("MAC address was invalid");
break;
}
if (msg) {
mp_raise_msg(exception_type, msg);
}
const char *group = "ESP-IDF";
// tests must be in descending order
MP_STATIC_ASSERT( ESP_ERR_FLASH_BASE > ESP_ERR_MESH_BASE );
MP_STATIC_ASSERT( ESP_ERR_MESH_BASE > ESP_ERR_WIFI_BASE );
if(err >= ESP_ERR_FLASH_BASE) {
group = "Flash";
} else if (err >= ESP_ERR_MESH_BASE) {
group = "Mesh";
} else if (err >= ESP_ERR_WIFI_BASE) {
group = "WiFi";
}
mp_raise_msg_varg(exception_type, translate("%s error 0x%x"), group, err);
}

View File

@ -27,8 +27,16 @@
#ifndef MICROPY_INCLUDED_ESP32S2_BINDINGS_ESPIDF___INIT___H
#define MICROPY_INCLUDED_ESP32S2_BINDINGS_ESPIDF___INIT___H
#include "esp_err.h"
#include "py/mpconfig.h"
#include "py/obj.h"
extern const mp_obj_type_t mp_type_espidf_IDFError;
extern const mp_obj_type_t mp_type_espidf_MemoryError;
NORETURN void mp_raise_espidf_MemoryError(void);
void raise_esp_error(esp_err_t err) NORETURN;
#define CHECK_ESP_RESULT(x) do { int res = (x); if(res != ESP_OK) raise_esp_error(res); } while(0)
#endif // MICROPY_INCLUDED_ESP32S2_BINDINGS_ESPIDF___INIT___H

View File

@ -0,0 +1,52 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* 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
* 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"
#include "mpconfigboard.h"
#include "shared-bindings/microcontroller/Pin.h"
void board_init(void) {
// USB
common_hal_never_reset_pin(&pin_GPIO19);
common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -0,0 +1,45 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 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.
*/
//Micropython setup
#define MICROPY_HW_BOARD_NAME "Feather ESP32S2 without PSRAM"
#define MICROPY_HW_MCU_NAME "ESP32S2"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO33)
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
#define BOARD_USER_SAFE_MODE_ACTION translate("pressing boot button at start up.\n")
#define AUTORESET_DELAY_MS 500
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO4)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO3)
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO36)
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO35)
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO37)

View File

@ -0,0 +1,22 @@
USB_VID = 0x239A
USB_PID = 0x80EC
USB_PRODUCT = "Feather ESP32S2 no PSRAM"
USB_MANUFACTURER = "Adafruit"
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = MPZ
# The default queue depth of 16 overflows on release builds,
# so increase it to 32.
CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE=dio
CIRCUITPY_ESP_FLASH_FREQ=40m
CIRCUITPY_ESP_FLASH_SIZE=4MB
CIRCUITPY_MODULE=wroom
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register

View File

@ -0,0 +1,63 @@
#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_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO15) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO15) },
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL_POWER), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_D35), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_D36), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_D37), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_D38), MP_ROM_PTR(&pin_GPIO38) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO38) },
{ MP_ROM_QSTR(MP_QSTR_D39), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO39) },
{ 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_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -0,0 +1,122 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* 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
* 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"
#include "mpconfigboard.h"
#include "shared-bindings/busio/SPI.h"
#include "shared-bindings/displayio/FourWire.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-module/displayio/__init__.h"
#include "shared-module/displayio/mipi_constants.h"
/*
displayio_fourwire_obj_t board_display_obj;
#define DELAY 0x80
uint8_t display_init_sequence[] = {
0x01, 0 | DELAY, 150, // SWRESET
0x11, 0 | DELAY, 255, // SLPOUT
0x36, 1, 0x00, // _MADCTL bottom to top refresh in vsync aligned order.
0x3a, 1, 0x55, // COLMOD - 16bit color
0x21, 0 | DELAY, 10, // _INVON
0x13, 0 | DELAY, 10, // _NORON
0x29, 0 | DELAY, 255, // _DISPON
};
*/
void board_init(void) {
// USB
common_hal_never_reset_pin(&pin_GPIO19);
common_hal_never_reset_pin(&pin_GPIO20);
// Debug UART
#ifdef DEBUG
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif /* DEBUG */
/*
busio_spi_obj_t* spi = &displays[0].fourwire_bus.inline_bus;
common_hal_busio_spi_construct(spi, &pin_GPIO36, &pin_GPIO35, NULL);
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_GPIO40, // TFT_DC Command or data
&pin_GPIO42, // TFT_CS Chip select
&pin_GPIO41, // TFT_RST Reset
4000000, // Baudrate
0, // Polarity
0); // Phase
displayio_display_obj_t* display = &displays[0].display;
display->base.type = &displayio_display_type;
common_hal_displayio_display_construct(display,
bus,
240, // Width (after rotation)
135, // Height (after rotation)
0, // column start
0, // row start
0, // rotation
16, // Color depth
false, // Grayscale
false, // Pixels in a byte share a row. Only used for depth < 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_GPIO7, // backlight pin
NO_BRIGHTNESS_COMMAND,
1.0f, // brightness (ignored)
true, // auto_brightness
false, // single_byte_bounds
false, // data_as_commands
true, // auto_refresh
60, // native_frames_per_second
true, // backlight_on_high
false); // not SH1107
*/
}
bool board_requests_safe_mode(void) {
return false;
}
void reset_board(void) {
}
void board_deinit(void) {
}

View File

@ -0,0 +1,45 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 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.
*/
//Micropython setup
#define MICROPY_HW_BOARD_NAME "Feather ESP32S2 without PSRAM"
#define MICROPY_HW_MCU_NAME "ESP32S2"
#define MICROPY_HW_NEOPIXEL (&pin_GPIO33)
#define CIRCUITPY_BOOT_BUTTON (&pin_GPIO0)
#define BOARD_USER_SAFE_MODE_ACTION translate("pressing boot button at start up.\n")
#define AUTORESET_DELAY_MS 500
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO4)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO3)
#define DEFAULT_SPI_BUS_SCK (&pin_GPIO36)
#define DEFAULT_SPI_BUS_MOSI (&pin_GPIO35)
#define DEFAULT_SPI_BUS_MISO (&pin_GPIO37)

View File

@ -0,0 +1,22 @@
USB_VID = 0x239A
USB_PID = 0x80EE
USB_PRODUCT = "Feather ESP32S2 TFT no PSRAM"
USB_MANUFACTURER = "Adafruit"
INTERNAL_FLASH_FILESYSTEM = 1
LONGINT_IMPL = MPZ
# The default queue depth of 16 overflows on release builds,
# so increase it to 32.
CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE=dio
CIRCUITPY_ESP_FLASH_FREQ=40m
CIRCUITPY_ESP_FLASH_SIZE=4MB
CIRCUITPY_MODULE=wroom
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register

View File

@ -0,0 +1,72 @@
#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_D0), MP_ROM_PTR(&pin_GPIO0) },
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_GPIO3) },
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_GPIO4) },
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_GPIO5) },
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_GPIO6) },
{ MP_ROM_QSTR(MP_QSTR_TFT_BACKLIGHT), MP_ROM_PTR(&pin_GPIO7) },
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_A5), MP_ROM_PTR(&pin_GPIO8) },
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_GPIO9) },
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_GPIO10) },
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_GPIO11) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_GPIO12) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_L), MP_ROM_PTR(&pin_GPIO13) },
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_GPIO14) },
{ MP_ROM_QSTR(MP_QSTR_D15), MP_ROM_PTR(&pin_GPIO15) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_GPIO15) },
{ MP_ROM_QSTR(MP_QSTR_D16), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_GPIO16) },
{ MP_ROM_QSTR(MP_QSTR_D17), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_GPIO17) },
{ MP_ROM_QSTR(MP_QSTR_D18), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_GPIO18) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL_POWER), MP_ROM_PTR(&pin_GPIO21) },
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_GPIO33) },
{ MP_ROM_QSTR(MP_QSTR_D35), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_GPIO35) },
{ MP_ROM_QSTR(MP_QSTR_D36), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_GPIO36) },
{ MP_ROM_QSTR(MP_QSTR_D37), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_GPIO37) },
{ MP_ROM_QSTR(MP_QSTR_D38), MP_ROM_PTR(&pin_GPIO38) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_GPIO38) },
{ MP_ROM_QSTR(MP_QSTR_D39), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_GPIO39) },
{ MP_ROM_QSTR(MP_QSTR_TFT_DC), MP_ROM_PTR(&pin_GPIO40) },
{ MP_ROM_QSTR(MP_QSTR_TFT_RESET), MP_ROM_PTR(&pin_GPIO41) },
{ MP_ROM_QSTR(MP_QSTR_TFT_CS), MP_ROM_PTR(&pin_GPIO42) },
{ 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_DISPLAY), MP_ROM_PTR(&displays[0].display)}
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -49,6 +49,8 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ 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_DISPLAY), MP_ROM_PTR(&displays[0].epaper_display)}
{ MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].epaper_display)},
{ MP_ROM_QSTR(MP_QSTR_ACCELEROMETER_INTERRUPT), MP_ROM_PTR(&pin_GPIO9) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);

View File

@ -27,6 +27,8 @@
#include "supervisor/board.h"
#include "mpconfigboard.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "components/driver/include/driver/gpio.h"
#include "components/soc/include/hal/gpio_hal.h"
void board_init(void) {
// USB
@ -47,6 +49,12 @@ void board_init(void) {
common_hal_never_reset_pin(&pin_GPIO30);
common_hal_never_reset_pin(&pin_GPIO31);
common_hal_never_reset_pin(&pin_GPIO32);
// Add LDO2 to never reset list, set to output and enable
common_hal_never_reset_pin(&pin_GPIO21);
gpio_set_direction(pin_GPIO21.number, GPIO_MODE_DEF_OUTPUT);
gpio_set_level(pin_GPIO21.number, true);
}
bool board_requests_safe_mode(void) {

View File

@ -34,8 +34,8 @@
#define AUTORESET_DELAY_MS 500
// #define MICROPY_HW_APA102_MOSI (&pin_GPIO40)
// #define MICROPY_HW_APA102_SCK (&pin_GPIO45)
#define MICROPY_HW_APA102_MOSI (&pin_GPIO40)
#define MICROPY_HW_APA102_SCK (&pin_GPIO45)
#define DEFAULT_I2C_BUS_SCL (&pin_GPIO9)
#define DEFAULT_I2C_BUS_SDA (&pin_GPIO8)

View File

@ -92,9 +92,9 @@ STATIC mp_obj_t _get_wake_alarm(size_t n_alarms, const mp_obj_t *alarms) {
return alarm_pin_pinalarm_get_wakeup_alarm(n_alarms, alarms);
}
case ESP_SLEEP_WAKEUP_TOUCHPAD:
case ESP_SLEEP_WAKEUP_TOUCHPAD: {
return alarm_touch_touchalarm_get_wakeup_alarm(n_alarms, alarms);
break;
}
case ESP_SLEEP_WAKEUP_UNDEFINED:
default:

View File

@ -31,8 +31,8 @@
#include "peripherals/touch.h"
#include "supervisor/esp_port.h"
static uint16_t touch_channel_mask;
static volatile bool woke_up = false;
static touch_pad_t touch_channel = TOUCH_PAD_MAX;
void common_hal_alarm_touch_touchalarm_construct(alarm_touch_touchalarm_obj_t *self, const mcu_pin_obj_t *pin) {
if (pin->touch_channel == TOUCH_PAD_MAX) {
@ -50,14 +50,20 @@ mp_obj_t alarm_touch_touchalarm_get_wakeup_alarm(const size_t n_alarms, const mp
}
}
// Create TouchAlarm object.
alarm_touch_touchalarm_obj_t *alarm = m_new_obj(alarm_touch_touchalarm_obj_t);
alarm->base.type = &alarm_touch_touchalarm_type;
alarm->pin = NULL;
touch_pad_t wake_channel = touch_pad_get_current_meas_channel();
if (wake_channel == TOUCH_PAD_MAX) {
return alarm;
}
// Map the pin number back to a pin object.
for (size_t i = 0; i < mcu_pin_globals.map.used; i++) {
const mcu_pin_obj_t* pin_obj = MP_OBJ_TO_PTR(mcu_pin_globals.map.table[i].value);
if (pin_obj->touch_channel == touch_channel) {
if (pin_obj->touch_channel == wake_channel) {
alarm->pin = mcu_pin_globals.map.table[i].value;
break;
}
@ -83,46 +89,66 @@ void alarm_touch_touchalarm_set_alarm(const bool deep_sleep, const size_t n_alar
for (size_t i = 0; i < n_alarms; i++) {
if (MP_OBJ_IS_TYPE(alarms[i], &alarm_touch_touchalarm_type)) {
if (!touch_alarm_set) {
touch_alarm = MP_OBJ_TO_PTR(alarms[i]);
touch_alarm_set = true;
} else {
mp_raise_ValueError(translate("Only one alarm.touch alarm can be set."));
if (deep_sleep && touch_alarm_set) {
mp_raise_ValueError(translate("Only one TouchAlarm can be set in deep sleep."));
}
touch_alarm = MP_OBJ_TO_PTR(alarms[i]);
touch_channel_mask |= 1 << touch_alarm->pin->number;
touch_alarm_set = true;
}
}
if (!touch_alarm_set) {
return;
}
touch_channel = touch_alarm->pin->touch_channel;
// configure interrupt for pretend to deep sleep
// this will be disabled if we actually deep sleep
// intialize touchpad
// reset touch peripheral
peripherals_touch_reset();
peripherals_touch_never_reset(true);
peripherals_touch_init(touch_channel);
// wait for touch data to reset
mp_hal_delay_ms(10);
for (uint8_t i = 1; i <= 14; i++) {
if ((touch_channel_mask & 1 << i) != 0) {
touch_pad_t touch_channel = (touch_pad_t)i;
// intialize touchpad
peripherals_touch_init(touch_channel);
// configure trigger threshold
uint32_t touch_value;
touch_pad_read_benchmark(touch_channel, &touch_value);
touch_pad_set_thresh(touch_channel, touch_value * 0.1); //10%
// wait for touch data to reset
mp_hal_delay_ms(10);
// configure trigger threshold
uint32_t touch_value;
touch_pad_read_benchmark(touch_channel, &touch_value);
touch_pad_set_thresh(touch_channel, touch_value * 0.1); //10%
}
}
// configure touch interrupt
touch_pad_timeout_set(true, SOC_TOUCH_PAD_THRESHOLD_MAX);
touch_pad_isr_register(touch_interrupt, NULL, TOUCH_PAD_INTR_MASK_ALL);
touch_pad_intr_enable(TOUCH_PAD_INTR_MASK_ACTIVE | TOUCH_PAD_INTR_MASK_INACTIVE | TOUCH_PAD_INTR_MASK_TIMEOUT);
touch_pad_intr_enable(TOUCH_PAD_INTR_MASK_ACTIVE | TOUCH_PAD_INTR_MASK_INACTIVE);
}
void alarm_touch_touchalarm_prepare_for_deep_sleep(void) {
// intialize touchpad
if (!touch_channel_mask) {
return;
}
touch_pad_t touch_channel = TOUCH_PAD_MAX;
for (uint8_t i = 1; i <= 14; i++) {
if ((touch_channel_mask & 1 << i) != 0) {
touch_channel = (touch_pad_t)i;
break;
}
}
// reset touch peripheral
peripherals_touch_never_reset(false);
peripherals_touch_reset();
// intialize touchpad
peripherals_touch_init(touch_channel);
// configure touchpad for sleep
@ -148,6 +174,6 @@ bool alarm_touch_touchalarm_woke_us_up(void) {
void alarm_touch_touchalarm_reset(void) {
woke_up = false;
touch_channel = TOUCH_PAD_MAX;
touch_channel_mask = 0;
peripherals_touch_never_reset(false);
}

View File

@ -0,0 +1,126 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 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 <stdint.h>
#include <string.h>
#include "mpconfigport.h"
#include "bindings/espidf/__init__.h"
// Some boards don't implement I2SOut, so suppress any routines from here.
#if CIRCUITPY_AUDIOBUSIO_I2SOUT
#include "extmod/vfs_fat.h"
#include "py/gc.h"
#include "py/mperrno.h"
#include "py/runtime.h"
#include "common-hal/audiobusio/I2SOut.h"
#include "shared-bindings/audiobusio/I2SOut.h"
#include "shared-bindings/audiocore/RawSample.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "supervisor/shared/translate.h"
#include "driver/i2s.h"
// Caller validates that pins are free.
void common_hal_audiobusio_i2sout_construct(audiobusio_i2sout_obj_t* self,
const mcu_pin_obj_t* bit_clock, const mcu_pin_obj_t* word_select,
const mcu_pin_obj_t* data, bool left_justified) {
port_i2s_allocate_init(&self->peripheral, left_justified);
i2s_pin_config_t i2s_pin_config = {
.bck_io_num = bit_clock->number,
.ws_io_num = word_select->number,
.data_out_num = data->number,
.data_in_num = I2S_PIN_NO_CHANGE,
};
CHECK_ESP_RESULT(i2s_set_pin(self->peripheral.instance, &i2s_pin_config));
self->bit_clock = bit_clock;
self->word_select = word_select;
self->data = data;
}
bool common_hal_audiobusio_i2sout_deinited(audiobusio_i2sout_obj_t* self) {
return self->peripheral.instance == -1;
}
void common_hal_audiobusio_i2sout_deinit(audiobusio_i2sout_obj_t* self) {
if (common_hal_audiobusio_i2sout_deinited(self)) {
return;
}
if (self->bit_clock) {
reset_pin_number(self->bit_clock->number);
}
self->bit_clock = NULL;
if (self->word_select) {
reset_pin_number(self->word_select->number);
}
self->word_select = NULL;
if (self->data) {
reset_pin_number(self->data->number);
}
self->data = NULL;
if (self->peripheral.instance >= 0) {
port_i2s_reset_instance(self->peripheral.instance);
}
self->peripheral.instance = -1;
}
void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t* self,
mp_obj_t sample, bool loop) {
if (common_hal_audiobusio_i2sout_get_playing(self)) {
common_hal_audiobusio_i2sout_stop(self);
}
port_i2s_play(&self->peripheral, sample, loop);
}
void common_hal_audiobusio_i2sout_pause(audiobusio_i2sout_obj_t* self) {
port_i2s_pause(&self->peripheral);
}
void common_hal_audiobusio_i2sout_resume(audiobusio_i2sout_obj_t* self) {
port_i2s_resume(&self->peripheral);
}
bool common_hal_audiobusio_i2sout_get_paused(audiobusio_i2sout_obj_t* self) {
return port_i2s_paused(&self->peripheral);
}
void common_hal_audiobusio_i2sout_stop(audiobusio_i2sout_obj_t* self) {
port_i2s_stop(&self->peripheral);
}
bool common_hal_audiobusio_i2sout_get_playing(audiobusio_i2sout_obj_t* self) {
return port_i2s_playing(&self->peripheral);
}
#endif // CIRCUITPY_AUDIOBUSIO_I2SOUT

View File

@ -0,0 +1,45 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 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.
*/
#pragma once
#include "supervisor/background_callback.h"
#include "common-hal/microcontroller/Pin.h"
#include "common-hal/audiobusio/__init__.h"
// Some boards don't implement I2SOut, so suppress any routines from here.
#if CIRCUITPY_AUDIOBUSIO_I2SOUT
typedef struct {
mp_obj_base_t base;
i2s_t peripheral;
const mcu_pin_obj_t *bit_clock;
const mcu_pin_obj_t *word_select;
const mcu_pin_obj_t *data;
} audiobusio_i2sout_obj_t;
#endif

View File

@ -0,0 +1,245 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 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 <string.h>
#include "py/runtime.h"
#include "common-hal/audiobusio/__init__.h"
#include "bindings/espidf/__init__.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "shared-module/audiocore/__init__.h"
#define I2S_QUEUE_SIZE (3)
static i2s_t *i2s_instance[I2S_NUM_MAX];
static QueueHandle_t i2s_queues[I2S_NUM_MAX];
static TaskHandle_t i2s_tasks[I2S_NUM_MAX];
static int8_t port_i2s_allocate(void) {
#if defined(I2S_NUM_1)
if(!i2s_instance[1]) return 1;
#endif
if(!i2s_instance[0]) return 0;
mp_raise_RuntimeError(translate("Peripheral in use"));
}
void port_i2s_reset_instance(int i) {
assert(i >= 0 && i < I2S_NUM_MAX);
if (i2s_tasks[i]) {
vTaskDelete(i2s_tasks[i]);
}
i2s_tasks[i] = NULL;
(void)i2s_driver_uninstall(i);
i2s_instance[i] = NULL;
}
void i2s_reset(void) {
for (int i=0; i < I2S_NUM_MAX; i++) {
port_i2s_reset_instance(i);
}
}
static void i2s_fill_buffer(i2s_t *self) {
if (self->instance < 0 || self->instance >= I2S_NUM_MAX) {
return;
}
#define STACK_BUFFER_SIZE (512)
int16_t signed_samples[STACK_BUFFER_SIZE / sizeof(int16_t)];
if (!self->playing || self->paused || !self->sample || self->stopping) {
memset(signed_samples, 0, sizeof(signed_samples));
size_t bytes_written = 0;
do {
CHECK_ESP_RESULT(i2s_write(self->instance, signed_samples, sizeof(signed_samples), &bytes_written, 0));
} while (bytes_written != 0);
return;
}
while (!self->stopping) {
if (self->sample_data == self->sample_end) {
uint32_t sample_buffer_length;
audioio_get_buffer_result_t get_buffer_result =
audiosample_get_buffer(self->sample, false, 0,
&self->sample_data, &sample_buffer_length);
self->sample_end = self->sample_data + sample_buffer_length;
if (get_buffer_result == GET_BUFFER_DONE) {
if (self->loop) {
audiosample_reset_buffer(self->sample, false, 0);
} else {
self->stopping = true;
break;
}
}
if (get_buffer_result == GET_BUFFER_ERROR || sample_buffer_length == 0) {
self->stopping = true;
break;
}
}
size_t bytes_written = 0;
size_t bytecount = self->sample_end - self->sample_data;
if (self->samples_signed && self->channel_count == 2) {
if (self->bytes_per_sample == 2) {
CHECK_ESP_RESULT(i2s_write(self->instance, self->sample_data, bytecount, &bytes_written, 0));
} else {
CHECK_ESP_RESULT(i2s_write_expand(self->instance, self->sample_data, bytecount, 8, 16, &bytes_written, 0));
}
} else {
const size_t bytes_per_output_frame = 4;
size_t bytes_per_input_frame = self->channel_count * self->bytes_per_sample;
size_t framecount = MIN(STACK_BUFFER_SIZE / bytes_per_output_frame, bytecount / bytes_per_input_frame);
if (self->samples_signed) {
assert(self->channel_count == 1);
if (self->bytes_per_sample == 1) {
audiosample_convert_s8m_s16s(signed_samples, (int8_t*)(void*)self->sample_data, framecount);
} else {
audiosample_convert_s16m_s16s(signed_samples, (int16_t*)(void*)self->sample_data, framecount);
}
} else {
if (self->channel_count == 1) {
if (self->bytes_per_sample == 1) {
audiosample_convert_u8m_s16s(signed_samples, (uint8_t*)(void*)self->sample_data, framecount);
} else {
audiosample_convert_u16m_s16s(signed_samples, (uint16_t*)(void*)self->sample_data, framecount);
}
} else {
if (self->bytes_per_sample == 1) {
audiosample_convert_u8s_s16s(signed_samples, (uint8_t*)(void*)self->sample_data, framecount);
} else {
audiosample_convert_u16s_s16s(signed_samples, (uint16_t*)(void*)self->sample_data, framecount);
}
}
}
size_t expanded_bytes_written = 0;
CHECK_ESP_RESULT(i2s_write(self->instance, signed_samples, bytes_per_output_frame*framecount, &expanded_bytes_written, 0));
assert(expanded_bytes_written % 4 == 0);
bytes_written = expanded_bytes_written / bytes_per_output_frame * bytes_per_input_frame;
}
self->sample_data += bytes_written;
// We have filled the DMA buffer
if (!bytes_written) {
break;
}
}
}
static void i2s_callback_fun(void *self_in) {
i2s_t *self = self_in;
i2s_fill_buffer(self);
}
static void i2s_event_task(void *self_in) {
i2s_t *self = self_in;
while(true) {
i2s_event_type_t event;
BaseType_t result = xQueueReceive(i2s_queues[self->instance], &event, portMAX_DELAY);
if (result && event == I2S_EVENT_TX_DONE) {
background_callback_add(&self->callback, i2s_callback_fun, self_in);
}
}
}
void port_i2s_allocate_init(i2s_t *self, bool left_justified) {
self->instance = port_i2s_allocate();
i2s_config_t i2s_config = {
.mode = I2S_MODE_MASTER | I2S_MODE_TX,
.sample_rate = 44100,
.bits_per_sample = 16,
.channel_format = I2S_CHANNEL_FMT_RIGHT_LEFT,
.communication_format = left_justified ? I2S_COMM_FORMAT_STAND_I2S : I2S_COMM_FORMAT_STAND_I2S,
.dma_buf_count = 2,
.dma_buf_len = 128, // in _frames_, so 128 is 512 bytes per dma buf
.use_apll = false,
};
CHECK_ESP_RESULT(i2s_driver_install(self->instance, &i2s_config, I2S_QUEUE_SIZE, &i2s_queues[self->instance]));
if (!xTaskCreate(i2s_event_task, "I2S_task", 3 * configMINIMAL_STACK_SIZE, self, CONFIG_PTHREAD_TASK_PRIO_DEFAULT, &i2s_tasks[self->instance])) {
mp_raise_OSError_msg(translate("xTaskCreate failed"));
}
i2s_instance[self->instance] = self;
}
void port_i2s_play(i2s_t *self, mp_obj_t sample, bool loop) {
self->sample = sample;
self->loop = loop;
self->bytes_per_sample = audiosample_bits_per_sample(sample) / 8;
self->channel_count = audiosample_channel_count(sample);
bool single_buffer;
bool samples_signed;
uint32_t max_buffer_length;
uint8_t spacing;
audiosample_get_buffer_structure(sample, false, &single_buffer, &samples_signed,
&max_buffer_length, &spacing);
self->samples_signed = samples_signed;
self->playing = true;
self->paused = false;
self->stopping = false;
self->sample_data = self->sample_end = NULL;
// We always output stereo so output twice as many bits.
// uint16_t bits_per_sample_output = bits_per_sample * 2;
audiosample_reset_buffer(self->sample, false, 0);
CHECK_ESP_RESULT(i2s_set_sample_rates(self->instance, audiosample_sample_rate(sample)));
background_callback_add(&self->callback, i2s_callback_fun, self);
}
bool port_i2s_playing(i2s_t *self) {
return self->playing && !self->stopping;
}
bool port_i2s_paused(i2s_t *self) {
return self->paused;
}
void port_i2s_stop(i2s_t *self) {
self->sample = NULL;
self->paused = false;
self->playing = false;
self->stopping = false;
}
void port_i2s_pause(i2s_t *self) {
if (!self->paused) {
self->paused = true;
CHECK_ESP_RESULT(i2s_stop(self->instance));
}
}
void port_i2s_resume(i2s_t *self) {
if (self->paused) {
self->paused = false;
CHECK_ESP_RESULT(i2s_start(self->instance));
}
}

View File

@ -0,0 +1,61 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 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.
*/
#pragma once
#include "py/obj.h"
#include "supervisor/background_callback.h"
#include "driver/i2s.h"
typedef struct {
mp_obj_t *sample;
bool left_justified;
bool loop;
bool paused;
bool playing;
bool stopping;
bool samples_signed;
int8_t bytes_per_sample;
int8_t channel_count;
int8_t instance;
uint16_t buffer_length;
uint8_t *sample_data, *sample_end;
i2s_config_t i2s_config;
background_callback_t callback;
} i2s_t;
void port_i2s_allocate_init(i2s_t *self, bool left_justified);
void port_i2s_reset_instance(int i);
void i2s_reset(void);
void port_i2s_play(i2s_t *self, mp_obj_t sample, bool loop);
void port_i2s_stop(i2s_t *self);
bool port_i2s_playing(i2s_t *self);
bool port_i2s_paused(i2s_t *self);
void port_i2s_pause(i2s_t *self);
void port_i2s_resume(i2s_t *self);

View File

@ -37,13 +37,14 @@
#ifdef MICROPY_HW_NEOPIXEL
bool neopixel_in_use;
#endif
#ifdef MICROPY_HW_APA102_MOSI
bool apa102_sck_in_use;
bool apa102_mosi_in_use;
#endif
STATIC uint32_t never_reset_pins[2];
STATIC uint32_t in_use[2];
bool apa102_mosi_in_use;
bool apa102_sck_in_use;
STATIC void floating_gpio_reset(gpio_num_t pin_number) {
// This is the same as gpio_reset_pin(), but without the pullup.
// Note that gpio_config resets the iomatrix to GPIO_FUNC as well.
@ -86,6 +87,20 @@ void reset_pin_number(gpio_num_t pin_number) {
return;
}
#endif
#ifdef MICROPY_HW_APA102_MOSI
if (pin_number == MICROPY_HW_APA102_MOSI->number ||
pin_number == MICROPY_HW_APA102_SCK->number) {
apa102_mosi_in_use = apa102_mosi_in_use && pin_number != MICROPY_HW_APA102_MOSI->number;
apa102_sck_in_use = apa102_sck_in_use && pin_number != MICROPY_HW_APA102_SCK->number;
if (!apa102_sck_in_use && !apa102_mosi_in_use) {
rgb_led_status_init();
}
return;
}
#endif
}
void common_hal_reset_pin(const mcu_pin_obj_t* pin) {
@ -110,6 +125,11 @@ void reset_all_pins(void) {
#ifdef MICROPY_HW_NEOPIXEL
neopixel_in_use = false;
#endif
#ifdef MICROPY_HW_APA102_MOSI
apa102_sck_in_use = false;
apa102_mosi_in_use = false;
#endif
}
void claim_pin(const mcu_pin_obj_t* pin) {
@ -119,6 +139,15 @@ void claim_pin(const mcu_pin_obj_t* pin) {
neopixel_in_use = true;
}
#endif
#ifdef MICROPY_HW_APA102_MOSI
if (pin == MICROPY_HW_APA102_MOSI) {
apa102_mosi_in_use = true;
}
if (pin == MICROPY_HW_APA102_SCK) {
apa102_sck_in_use = true;
}
#endif
}
void common_hal_mcu_pin_claim(const mcu_pin_obj_t* pin) {
@ -131,10 +160,18 @@ bool pin_number_is_free(gpio_num_t pin_number) {
return !neopixel_in_use;
}
#endif
#ifdef MICROPY_HW_APA102_MOSI
if (pin_number == MICROPY_HW_APA102_MOSI->number) {
return !apa102_mosi_in_use;
}
if (pin_number == MICROPY_HW_APA102_SCK->number) {
return !apa102_sck_in_use;
}
#endif
uint8_t offset = pin_number / 32;
uint32_t mask = 1 << (pin_number % 32);
return (never_reset_pins[offset] & mask) == 0 && (in_use[offset] & mask) == 0;
return (in_use[offset] & mask) == 0;
}
bool common_hal_mcu_pin_is_free(const mcu_pin_obj_t *pin) {

View File

@ -31,8 +31,10 @@
#include "peripherals/pins.h"
extern bool apa102_mosi_in_use;
#ifdef MICROPY_HW_APA102_MOSI
extern bool apa102_sck_in_use;
extern bool apa102_mosi_in_use;
#endif
#ifdef MICROPY_HW_NEOPIXEL
extern bool neopixel_in_use;

View File

@ -178,7 +178,7 @@ mp_uint_t common_hal_socketpool_socket_recvfrom_into(socketpool_socket_obj_t* se
struct sockaddr_in source_addr;
socklen_t socklen = sizeof(source_addr);
int bytes_received = lwip_recvfrom(self->num, buf, len - 1, 0, (struct sockaddr *)&source_addr, &socklen);
int bytes_received = lwip_recvfrom(self->num, buf, len, 0, (struct sockaddr *)&source_addr, &socklen);
memcpy((void *)ip, (void*)&source_addr.sin_addr.s_addr, sizeof source_addr.sin_addr.s_addr);
*port = source_addr.sin_port;
@ -186,10 +186,9 @@ mp_uint_t common_hal_socketpool_socket_recvfrom_into(socketpool_socket_obj_t* se
if (bytes_received < 0) {
mp_raise_BrokenPipeError();
return 0;
} else {
buf[bytes_received] = 0; // Null-terminate whatever we received
return bytes_received;
}
return bytes_received;
}
void common_hal_socketpool_socket_close(socketpool_socket_obj_t* self) {

View File

@ -54,3 +54,37 @@ mp_obj_t common_hal_wifi_network_get_country(wifi_network_obj_t *self) {
// 2 instead of strlen(cstr) as this gives us only the country-code
return mp_obj_new_str(cstr, 2);
}
mp_obj_t common_hal_wifi_network_get_authmode(wifi_network_obj_t *self) {
const char* authmode = "";
switch (self->record.authmode) {
case WIFI_AUTH_OPEN:
authmode = "OPEN";
break;
case WIFI_AUTH_WEP:
authmode = "WEP";
break;
case WIFI_AUTH_WPA_PSK:
authmode = "WPA_PSK";
break;
case WIFI_AUTH_WPA2_PSK:
authmode = "WPA2_PSK";
break;
case WIFI_AUTH_WPA_WPA2_PSK:
authmode = "WPA_WPA2_PSK";
break;
case WIFI_AUTH_WPA2_ENTERPRISE:
authmode = "WPA2_ENTERPRISE";
break;
case WIFI_AUTH_WPA3_PSK:
authmode = "WPA3_PSK";
break;
case WIFI_AUTH_WPA2_WPA3_PSK:
authmode = "WPA2_WPA3_PSK";
break;
default:
authmode = "UNKNOWN";
break;
}
return mp_obj_new_str(authmode, strlen(authmode));
}

View File

@ -55,8 +55,6 @@ static void start_station(wifi_radio_obj_t *self) {
esp_wifi_set_mode(next_mode);
self->sta_mode = 1;
esp_wifi_set_config(WIFI_MODE_STA, &self->sta_config);
}
bool common_hal_wifi_radio_get_enabled(wifi_radio_obj_t *self) {

View File

@ -47,23 +47,23 @@ static void event_handler(void* arg, esp_event_base_t event_base,
if (event_base == WIFI_EVENT) {
switch (event_id) {
case WIFI_EVENT_SCAN_DONE:
ESP_EARLY_LOGW(TAG, "scan");
ESP_LOGW(TAG, "scan");
xEventGroupSetBits(radio->event_group_handle, WIFI_SCAN_DONE_BIT);
break;
case WIFI_EVENT_STA_START:
ESP_EARLY_LOGW(TAG, "start");
ESP_LOGW(TAG, "start");
break;
case WIFI_EVENT_STA_STOP:
ESP_EARLY_LOGW(TAG, "stop");
ESP_LOGW(TAG, "stop");
break;
case WIFI_EVENT_STA_CONNECTED:
ESP_EARLY_LOGW(TAG, "connected");
ESP_LOGW(TAG, "connected");
break;
case WIFI_EVENT_STA_DISCONNECTED: {
ESP_EARLY_LOGW(TAG, "disconnected");
ESP_LOGW(TAG, "disconnected");
wifi_event_sta_disconnected_t* d = (wifi_event_sta_disconnected_t*) event_data;
uint8_t reason = d->reason;
ESP_EARLY_LOGW(TAG, "reason %d 0x%02x", reason, reason);
ESP_LOGW(TAG, "reason %d 0x%02x", reason, reason);
if (radio->retries_left > 0 &&
(reason == WIFI_REASON_AUTH_EXPIRE ||
reason == WIFI_REASON_NOT_AUTHED ||
@ -71,24 +71,27 @@ static void event_handler(void* arg, esp_event_base_t event_base,
reason == WIFI_REASON_CONNECTION_FAIL ||
reason == WIFI_REASON_4WAY_HANDSHAKE_TIMEOUT)) {
radio->retries_left--;
ESP_EARLY_LOGI(TAG, "Retrying connect. %d retries remaining", radio->retries_left);
ESP_LOGI(TAG, "Retrying connect. %d retries remaining", radio->retries_left);
esp_wifi_connect();
return;
}
radio->last_disconnect_reason = reason;
xEventGroupSetBits(radio->event_group_handle, WIFI_DISCONNECTED_BIT);
break;
}
// Cases to handle later.
// case WIFI_EVENT_STA_AUTHMODE_CHANGE:
default:
default: {
ESP_LOGW(TAG, "event %d 0x%02x", event_id, event_id);
break;
}
}
}
if (event_base == IP_EVENT && event_id == IP_EVENT_STA_GOT_IP) {
ESP_EARLY_LOGW(TAG, "got ip");
ESP_LOGW(TAG, "got ip");
radio->retries_left = radio->starting_retries;
xEventGroupSetBits(radio->event_group_handle, WIFI_CONNECTED_BIT);
}

View File

@ -10,4 +10,7 @@ CONFIG_ESP_CONSOLE_UART_BAUDRATE=115200
CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT=y
# CONFIG_ESP_SYSTEM_PANIC_PRINT_REBOOT is not set
# CONFIG_ESP_SYSTEM_PANIC_SILENT_REBOOT is not set
# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
# CONFIG_ESP_SYSTEM_PANIC_GDBSTUB is not set
CONFIG_BOOTLOADER_COMPILER_OPTIMIZATION_DEBUG=y
CONFIG_COMPILER_OPTIMIZATION_DEFAULT=y
CONFIG_COMPILER_OPTIMIZATION_ASSERTIONS_ENABLE=y

91
ports/esp32s2/esp_error.c Normal file
View File

@ -0,0 +1,91 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 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 "esp_error.h"
#include "py/runtime.h"
#include "bindings/espidf/__init__.h"
void raise_esp_error(esp_err_t err) {
const compressed_string_t *msg = NULL;
const mp_obj_type_t * exception_type = &mp_type_espidf_IDFError;
switch(err) {
case ESP_FAIL:
msg = translate("Generic Failure");
break;
case ESP_ERR_NO_MEM:
exception_type = &mp_type_espidf_MemoryError;
msg = translate("Out of memory");
break;
case ESP_ERR_INVALID_ARG:
msg = translate("Invalid argument");
break;
case ESP_ERR_INVALID_STATE:
msg = translate("Invalid state");
break;
case ESP_ERR_INVALID_SIZE:
msg = translate("Invalid size");
break;
case ESP_ERR_NOT_FOUND:
msg = translate("Requested resource not found");
break;
case ESP_ERR_NOT_SUPPORTED:
msg = translate("Operation or feature not supported");
break;
case ESP_ERR_TIMEOUT:
msg = translate("Operation timed out");
break;
case ESP_ERR_INVALID_RESPONSE:
msg = translate("Received response was invalid");
break;
case ESP_ERR_INVALID_CRC:
msg = translate("CRC or checksum was invalid");
break;
case ESP_ERR_INVALID_VERSION:
msg = translate("Version was invalid");
break;
case ESP_ERR_INVALID_MAC:
msg = translate("MAC address was invalid");
break;
}
if (msg) {
mp_raise_msg(exception_type, msg);
}
const char *group = "ESP-IDF";
// tests must be in descending order
MP_STATIC_ASSERT( ESP_ERR_FLASH_BASE > ESP_ERR_MESH_BASE );
MP_STATIC_ASSERT( ESP_ERR_MESH_BASE > ESP_ERR_WIFI_BASE );
if(err >= ESP_ERR_FLASH_BASE) {
group = "Flash";
} else if (err >= ESP_ERR_MESH_BASE) {
group = "Mesh";
} else if (err >= ESP_ERR_WIFI_BASE) {
group = "WiFi";
}
mp_raise_msg_varg(exception_type, translate("%s error 0x%x"), group, err);
}

View File

@ -32,6 +32,7 @@
#define MICROPY_PY_UJSON (1)
#define MICROPY_USE_INTERNAL_PRINTF (0)
#define MICROPY_PY_SYS_PLATFORM "Espressif ESP32-S2"
#include "py/circuitpy_mpconfig.h"

View File

@ -15,7 +15,11 @@ LONGINT_IMPL = MPZ
# These modules are implemented in ports/<port>/common-hal:
CIRCUITPY_FULL_BUILD = 1
CIRCUITPY_ALARM = 1
CIRCUITPY_AUDIOBUSIO = 0
CIRCUITPY_AUDIOCORE = 1
CIRCUITPY_AUDIOMP3 = 0
CIRCUITPY_AUDIOBUSIO = 1
CIRCUITPY_AUDIOBUSIO_PDMIN = 0
CIRCUITPY_AUDIOBUSIO_I2SOUT = 1
CIRCUITPY_AUDIOIO = 0
CIRCUITPY_CANIO = 1
CIRCUITPY_COUNTIO = 1

View File

@ -61,6 +61,10 @@
#include "components/soc/soc/esp32s2/include/soc/cache_memory.h"
#include "components/soc/soc/esp32s2/include/soc/rtc_cntl_reg.h"
#if CIRCUITPY_AUDIOBUSIO
#include "common-hal/audiobusio/__init__.h"
#endif
#define HEAP_SIZE (48 * 1024)
uint32_t* heap;
@ -107,6 +111,20 @@ safe_mode_t port_init(void) {
heap = NULL;
never_reset_module_internal_pins();
#if defined(DEBUG)
// debug UART
common_hal_never_reset_pin(&pin_GPIO43);
common_hal_never_reset_pin(&pin_GPIO44);
#endif
#if defined(DEBUG) || defined(ENABLE_JTAG)
// JTAG
common_hal_never_reset_pin(&pin_GPIO39);
common_hal_never_reset_pin(&pin_GPIO40);
common_hal_never_reset_pin(&pin_GPIO41);
common_hal_never_reset_pin(&pin_GPIO42);
#endif
#ifdef CONFIG_SPIRAM
heap = (uint32_t*) (DRAM0_CACHE_ADDRESS_HIGH - CONFIG_SPIRAM_SIZE);
heap_size = CONFIG_SPIRAM_SIZE / sizeof(uint32_t);
@ -153,6 +171,10 @@ void reset_port(void) {
ps2_reset();
#endif
#if CIRCUITPY_AUDIOBUSIO
i2s_reset();
#endif
#if CIRCUITPY_PULSEIO
esp32s2_peripherals_rmt_reset();
pulsein_reset();
@ -275,10 +297,14 @@ void port_disable_tick(void) {
esp_timer_stop(_tick_timer);
}
void sleep_timer_cb(void* arg) {
void port_wake_main_task() {
xTaskNotifyGive(circuitpython_task);
}
void sleep_timer_cb(void* arg) {
port_wake_main_task();
}
void port_interrupt_after_ticks(uint32_t ticks) {
uint64_t timeout_us = ticks * 1000000ull / 1024;
if (esp_timer_start_once(_sleep_timer, timeout_us) != ESP_OK) {

View File

@ -15,6 +15,7 @@ CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_FRAMEBUFFERIO = 0
CIRCUITPY_FREQUENCYIO = 0
CIRCUITPY_I2CPERIPHERAL = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_NEOPIXEL_WRITE = 0
CIRCUITPY_NVM = 0
CIRCUITPY_PIXELBUF = 0

View File

@ -16,6 +16,7 @@ CIRCUITPY_AUDIOMP3 = 0
CIRCUITPY_BUSIO = 1
CIRCUITPY_DISPLAYIO = 0
CIRCUITPY_FRAMEBUFFERIO = 0
CIRCUITPY_MSGPACK = 0
CIRCUITPY_GAMEPAD = 0
CIRCUITPY_NEOPIXEL_WRITE = 0
CIRCUITPY_NVM = 0

View File

@ -469,7 +469,7 @@ mp_obj_t common_hal_bleio_adapter_start_scan(bleio_adapter_obj_t *self, uint8_t*
ble_drv_add_event_handler(scan_on_ble_evt, self->scan_results);
uint32_t nrf_timeout = SEC_TO_UNITS(timeout, UNIT_10_MS);
uint32_t nrf_timeout = SEC_TO_UNITS(timeout, UNIT_10_MS) + 0.5f;
if (nrf_timeout > UINT16_MAX) {
// 0xffff / 100
mp_raise_ValueError(translate("timeout must be < 655.35 secs"));
@ -479,15 +479,15 @@ mp_obj_t common_hal_bleio_adapter_start_scan(bleio_adapter_obj_t *self, uint8_t*
mp_raise_ValueError(translate("non-zero timeout must be > 0.01"));
}
if (nrf_timeout) {
if (nrf_timeout == 0) {
nrf_timeout = BLE_GAP_SCAN_TIMEOUT_UNLIMITED;
}
ble_gap_scan_params_t scan_params = {
.extended = extended,
.interval = SEC_TO_UNITS(interval, UNIT_0_625_MS),
.interval = SEC_TO_UNITS(interval, UNIT_0_625_MS) + 0.5f,
.timeout = nrf_timeout,
.window = SEC_TO_UNITS(window, UNIT_0_625_MS),
.window = SEC_TO_UNITS(window, UNIT_0_625_MS) + 0.5f,
.scan_phys = BLE_GAP_PHY_1MBPS,
.active = active
};
@ -553,7 +553,7 @@ mp_obj_t common_hal_bleio_adapter_connect(bleio_adapter_obj_t *self, bleio_addre
.window = MSEC_TO_UNITS(100, UNIT_0_625_MS),
.scan_phys = BLE_GAP_PHY_1MBPS,
// timeout of 0 means no timeout
.timeout = SEC_TO_UNITS(timeout, UNIT_10_MS),
.timeout = SEC_TO_UNITS(timeout, UNIT_10_MS) + 0.5f,
};
ble_gap_conn_params_t conn_params = {
@ -696,7 +696,7 @@ uint32_t _common_hal_bleio_adapter_start_advertising(bleio_adapter_obj_t *self,
}
ble_gap_adv_params_t adv_params = {
.interval = SEC_TO_UNITS(interval, UNIT_0_625_MS),
.interval = SEC_TO_UNITS(interval, UNIT_0_625_MS) + 0.5f,
.properties.type = adv_type,
.duration = SEC_TO_UNITS(timeout, UNIT_10_MS),
.filter_policy = BLE_GAP_ADV_FP_ANY,

View File

@ -276,7 +276,7 @@ uint32_t port_get_saved_word(void) {
uint64_t port_get_raw_ticks(uint8_t* subticks) {
common_hal_mcu_disable_interrupts();
uint32_t rtc = nrfx_rtc_counter_get(&rtc_instance);
uint32_t overflow_count = overflow_tracker.overflowed_ticks;
uint64_t overflow_count = overflow_tracker.overflowed_ticks;
common_hal_mcu_enable_interrupts();
if (subticks != NULL) {

View File

@ -58,6 +58,14 @@ BASE_CFLAGS = \
# -H
# Set a global CIRCUITPY_DEBUG flag.
# Don't just call it "DEBUG": too many libraries use plain DEBUG.
ifneq ($(DEBUG),)
CFLAGS += -DCIRCUITPY_DEBUG=$(DEBUG)
else
CFLAGS += -DCIRCUITPY_DEBUG=0
endif
###
# Handle frozen modules.
@ -292,6 +300,9 @@ endif
ifeq ($(CIRCUITPY_PEW),1)
SRC_PATTERNS += _pew/%
endif
ifeq ($(CIRCUITPY_MSGPACK),1)
SRC_PATTERNS += msgpack/%
endif
# All possible sources are listed here, and are filtered by SRC_PATTERNS in SRC_COMMON_HAL
SRC_COMMON_HAL_ALL = \
@ -412,6 +423,8 @@ $(filter $(SRC_PATTERNS), \
math/__init__.c \
microcontroller/ResetReason.c \
microcontroller/RunMode.c \
msgpack/__init__.c \
msgpack/ExtType.c \
supervisor/RunReason.c \
)
@ -481,6 +494,7 @@ SRC_SHARED_MODULE_ALL = \
memorymonitor/AllocationAlarm.c \
memorymonitor/AllocationSize.c \
network/__init__.c \
msgpack/__init__.c \
os/__init__.c \
random/__init__.c \
rgbmatrix/RGBMatrix.c \

View File

@ -774,6 +774,13 @@ extern const struct _mp_obj_module_t wifi_module;
#define WIFI_MODULE
#endif
#if CIRCUITPY_MSGPACK
extern const struct _mp_obj_module_t msgpack_module;
#define MSGPACK_MODULE { MP_ROM_QSTR(MP_QSTR_msgpack), MP_ROM_PTR(&msgpack_module) },
#else
#define MSGPACK_MODULE
#endif
// Define certain native modules with weak links so they can be replaced with Python
// implementations. This list may grow over time.
#define MICROPY_PORT_BUILTIN_MODULE_WEAK_LINKS \
@ -830,6 +837,7 @@ extern const struct _mp_obj_module_t wifi_module;
_EVE_MODULE \
MEMORYMONITOR_MODULE \
MICROCONTROLLER_MODULE \
MSGPACK_MODULE \
NEOPIXEL_WRITE_MODULE \
NETWORK_MODULE \
SOCKET_MODULE \

View File

@ -55,6 +55,10 @@ CFLAGS += -DCIRCUITPY_AUDIOBUSIO=$(CIRCUITPY_AUDIOBUSIO)
CIRCUITPY_AUDIOBUSIO_I2SOUT ?= $(CIRCUITPY_AUDIOBUSIO)
CFLAGS += -DCIRCUITPY_AUDIOBUSIO_I2SOUT=$(CIRCUITPY_AUDIOBUSIO_I2SOUT)
# Likewise, some boards have I2SOut but do not implement PDMIn.
CIRCUITPY_AUDIOBUSIO_PDMIN ?= $(CIRCUITPY_AUDIOBUSIO)
CFLAGS += -DCIRCUITPY_AUDIOBUSIO_PDMIN=$(CIRCUITPY_AUDIOBUSIO_PDMIN)
CIRCUITPY_AUDIOIO ?= $(CIRCUITPY_FULL_BUILD)
CFLAGS += -DCIRCUITPY_AUDIOIO=$(CIRCUITPY_AUDIOIO)
@ -308,3 +312,6 @@ CFLAGS += -DCIRCUITPY_WIFI=$(CIRCUITPY_WIFI)
# Enabled micropython.native decorator (experimental)
CIRCUITPY_ENABLE_MPY_NATIVE ?= 0
CFLAGS += -DCIRCUITPY_ENABLE_MPY_NATIVE=$(CIRCUITPY_ENABLE_MPY_NATIVE)
CIRCUITPY_MSGPACK ?= $(CIRCUITPY_FULL_BUILD)
CFLAGS += -DCIRCUITPY_MSGPACK=$(CIRCUITPY_MSGPACK)

View File

@ -33,8 +33,8 @@
#include "shared-bindings/_bleio/Address.h"
#include "shared-bindings/_bleio/Adapter.h"
#define ADV_INTERVAL_MIN (0.02001f)
#define ADV_INTERVAL_MIN_STRING "0.02001"
#define ADV_INTERVAL_MIN (0.02f)
#define ADV_INTERVAL_MIN_STRING "0.02"
#define ADV_INTERVAL_MAX (10.24f)
#define ADV_INTERVAL_MAX_STRING "10.24"
// 20ms is recommended by Apple
@ -204,7 +204,7 @@ const mp_obj_property_t bleio_adapter_name_obj = {
//| :param ~_typing.ReadableBuffer scan_response: scan response data packet bytes. ``None`` if no scan response is needed.
//| :param bool connectable: If `True` then other devices are allowed to connect to this peripheral.
//| :param bool anonymous: If `True` then this device's MAC address is randomized before advertising.
//| :param int timeout: If set, we will only advertise for this many seconds.
//| :param int timeout: If set, we will only advertise for this many seconds. Zero means no timeout.
//| :param float interval: advertising interval, in seconds"""
//| ...
//|
@ -237,7 +237,7 @@ STATIC mp_obj_t bleio_adapter_start_advertising(mp_uint_t n_args, const mp_obj_t
args[ARG_interval].u_obj = mp_obj_new_float(ADV_INTERVAL_DEFAULT);
}
const mp_float_t interval = mp_obj_float_get(args[ARG_interval].u_obj);
const mp_float_t interval = mp_obj_get_float(args[ARG_interval].u_obj);
if (interval < ADV_INTERVAL_MIN || interval > ADV_INTERVAL_MAX) {
mp_raise_ValueError_varg(translate("interval must be in range %s-%s"),
ADV_INTERVAL_MIN_STRING, ADV_INTERVAL_MAX_STRING);
@ -279,7 +279,7 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_1(bleio_adapter_stop_advertising_obj, bleio_adapt
//| ignored. Format is one byte for length (n) and n bytes of prefix and can be repeated.
//| :param int buffer_size: the maximum number of advertising bytes to buffer.
//| :param bool extended: When True, support extended advertising packets. Increasing buffer_size is recommended when this is set.
//| :param float timeout: the scan timeout in seconds. If None, will scan until `stop_scan` is called.
//| :param float timeout: the scan timeout in seconds. If None or zero, will scan until `stop_scan` is called.
//| :param float interval: the interval (in seconds) between the start of two consecutive scan windows
//| Must be in the range 0.0025 - 40.959375 seconds.
//| :param float window: the duration (in seconds) to scan a single BLE channel.
@ -320,7 +320,7 @@ STATIC mp_obj_t bleio_adapter_start_scan(size_t n_args, const mp_obj_t *pos_args
args[ARG_window].u_obj = mp_obj_new_float(WINDOW_DEFAULT);
}
const mp_float_t interval = mp_obj_float_get(args[ARG_interval].u_obj);
const mp_float_t interval = mp_obj_get_float(args[ARG_interval].u_obj);
if (interval < INTERVAL_MIN || interval > INTERVAL_MAX) {
mp_raise_ValueError_varg(translate("interval must be in range %s-%s"), INTERVAL_MIN_STRING, INTERVAL_MAX_STRING);
}
@ -332,7 +332,7 @@ STATIC mp_obj_t bleio_adapter_start_scan(size_t n_args, const mp_obj_t *pos_args
}
#pragma GCC diagnostic pop
const mp_float_t window = mp_obj_float_get(args[ARG_window].u_obj);
const mp_float_t window = mp_obj_get_float(args[ARG_window].u_obj);
if (window > interval) {
mp_raise_ValueError(translate("window must be <= interval"));
}

View File

@ -51,7 +51,7 @@
//|
STATIC mp_obj_t pixelbuf_colorwheel(mp_obj_t n) {
return MP_OBJ_NEW_SMALL_INT(colorwheel(MP_OBJ_IS_SMALL_INT(n) ? MP_OBJ_SMALL_INT_VALUE(n) : mp_obj_float_get(n)));
return MP_OBJ_NEW_SMALL_INT(colorwheel(MP_OBJ_IS_SMALL_INT(n) ? MP_OBJ_SMALL_INT_VALUE(n) : mp_obj_get_float(n)));
}
STATIC MP_DEFINE_CONST_FUN_OBJ_1(pixelbuf_colorwheel_obj, pixelbuf_colorwheel);

View File

@ -53,6 +53,25 @@
//| """Not used. Access the sole instance through `alarm.sleep_memory`."""
//| ...
//|
//| def __bool__(self) -> bool:
//| """``sleep_memory`` is ``True`` if its length is greater than zero.
//| This is an easy way to check for its existence.
//| """
//| ...
//|
//| def __len__(self) -> int:
//| """Return the length. This is used by (`len`)"""
//| ...
//|
STATIC mp_obj_t alarm_sleep_memory_unary_op(mp_unary_op_t op, mp_obj_t self_in) {
alarm_sleep_memory_obj_t *self = MP_OBJ_TO_PTR(self_in);
uint16_t len = common_hal_alarm_sleep_memory_get_length(self);
switch (op) {
case MP_UNARY_OP_BOOL: return mp_obj_new_bool(len != 0);
case MP_UNARY_OP_LEN: return MP_OBJ_NEW_SMALL_INT(len);
default: return MP_OBJ_NULL; // op not supported
}
}
STATIC const mp_rom_map_elem_t alarm_sleep_memory_locals_dict_table[] = {
};
@ -154,6 +173,7 @@ const mp_obj_type_t alarm_sleep_memory_type = {
{ &mp_type_type },
.name = MP_QSTR_SleepMemory,
.subscr = alarm_sleep_memory_subscr,
.unary_op = alarm_sleep_memory_unary_op,
.print = NULL,
.locals_dict = (mp_obj_t)&alarm_sleep_memory_locals_dict,
};

View File

@ -84,6 +84,9 @@
//| ...
//|
STATIC mp_obj_t audiobusio_pdmin_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
#if !CIRCUITPY_AUDIOBUSIO_PDMIN
mp_raise_NotImplementedError(translate("PDMIn not available"));
#else
enum { ARG_clock_pin, ARG_data_pin, ARG_sample_rate, ARG_bit_depth, ARG_mono, ARG_oversample, ARG_startup_delay };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_clock_pin, MP_ARG_REQUIRED | MP_ARG_OBJ },
@ -132,8 +135,10 @@ STATIC mp_obj_t audiobusio_pdmin_make_new(const mp_obj_type_t *type, size_t n_ar
mp_hal_delay_ms(startup_delay * 1000);
return MP_OBJ_FROM_PTR(self);
#endif
}
#if CIRCUITPY_AUDIOBUSIO_PDMIN
//| def deinit(self) -> None:
//| """Deinitialises the PDMIn and releases any hardware resources for reuse."""
//| ...
@ -237,10 +242,13 @@ STATIC const mp_rom_map_elem_t audiobusio_pdmin_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_sample_rate), MP_ROM_PTR(&audiobusio_pdmin_sample_rate_obj) }
};
STATIC MP_DEFINE_CONST_DICT(audiobusio_pdmin_locals_dict, audiobusio_pdmin_locals_dict_table);
#endif
const mp_obj_type_t audiobusio_pdmin_type = {
{ &mp_type_type },
.name = MP_QSTR_PDMIn,
.make_new = audiobusio_pdmin_make_new,
#if CIRCUITPY_AUDIOBUSIO_PDMIN
.locals_dict = (mp_obj_dict_t*)&audiobusio_pdmin_locals_dict,
#endif
};

View File

@ -33,6 +33,7 @@
extern const mp_obj_type_t audiobusio_pdmin_type;
#if CIRCUITPY_AUDIOBUSIO_PDMIN
void common_hal_audiobusio_pdmin_construct(audiobusio_pdmin_obj_t* self,
const mcu_pin_obj_t* clock_pin, const mcu_pin_obj_t* data_pin,
uint32_t sample_rate, uint8_t bit_depth, bool mono, uint8_t oversample);
@ -43,5 +44,6 @@ uint32_t common_hal_audiobusio_pdmin_record_to_buffer(audiobusio_pdmin_obj_t* se
uint8_t common_hal_audiobusio_pdmin_get_bit_depth(audiobusio_pdmin_obj_t* self);
uint32_t common_hal_audiobusio_pdmin_get_sample_rate(audiobusio_pdmin_obj_t* self);
// TODO(tannewt): Add record to file
#endif
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_AUDIOBUSIO_AUDIOOUT_H

View File

@ -0,0 +1,126 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Bernhard Boser
*
* 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 "py/runtime.h"
#include "py/smallint.h"
#include "py/objproperty.h"
#include "shared-bindings/msgpack/ExtType.h"
//| class ExtType:
//| """ExtType represents ext type in msgpack."""
//| def __init__(self, code: int, data: bytes) -> None:
//| """Constructor
//| :param int code: type code in range 0~127.
//| :param bytes data: representation."""
//|
STATIC mp_obj_t mod_msgpack_exttype_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
mod_msgpack_extype_obj_t *self = m_new_obj(mod_msgpack_extype_obj_t);
self->base.type = &mod_msgpack_exttype_type;
enum { ARG_code, ARG_data };
static const mp_arg_t allowed_args[] = {
{ MP_QSTR_code, MP_ARG_INT | MP_ARG_REQUIRED },
{ MP_QSTR_data, MP_ARG_OBJ | MP_ARG_REQUIRED },
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
int code = args[ARG_code].u_int;
if (code < 0 || code > 127) {
mp_raise_AttributeError(translate("code outside range 0~127"));
}
self->code = code;
mp_obj_t data = args[ARG_data].u_obj;
self->data = data;
return MP_OBJ_FROM_PTR(self);
}
//| code: int
//| """The type code, in range 0~127."""
//| ...
//|
STATIC mp_obj_t mod_msgpack_exttype_get_code(mp_obj_t self_in) {
mod_msgpack_extype_obj_t *self = MP_OBJ_TO_PTR(self_in);
return MP_OBJ_NEW_SMALL_INT(self->code);
}
MP_DEFINE_CONST_FUN_OBJ_1(mod_msgpack_exttype_get_code_obj, mod_msgpack_exttype_get_code);
STATIC mp_obj_t mod_msgpack_exttype_set_code(mp_obj_t self_in, mp_obj_t code_in) {
mod_msgpack_extype_obj_t *self = MP_OBJ_TO_PTR(self_in);
int code = mp_obj_get_int(code_in);
if (code < 0 || code > 127) {
mp_raise_AttributeError(translate("code outside range 0~127"));
}
self->code = code;
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(mod_msgpack_exttype_set_code_obj, mod_msgpack_exttype_set_code);
const mp_obj_property_t mod_msgpack_exttype_code_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&mod_msgpack_exttype_get_code_obj,
(mp_obj_t)&mod_msgpack_exttype_set_code_obj,
(mp_obj_t)&mp_const_none_obj},
};
//| data: bytes
//| """Data."""
//| ...
//|
STATIC mp_obj_t mod_msgpack_exttype_get_data(mp_obj_t self_in) {
mod_msgpack_extype_obj_t *self = MP_OBJ_TO_PTR(self_in);
return self->data;
}
MP_DEFINE_CONST_FUN_OBJ_1(mod_msgpack_exttype_get_data_obj, mod_msgpack_exttype_get_data);
STATIC mp_obj_t mod_msgpack_exttype_set_data(mp_obj_t self_in, mp_obj_t data_in) {
mod_msgpack_extype_obj_t *self = MP_OBJ_TO_PTR(self_in);
self->data = data_in;
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_2(mod_msgpack_exttype_set_data_obj, mod_msgpack_exttype_set_data);
const mp_obj_property_t mod_msgpack_exttype_data_obj = {
.base.type = &mp_type_property,
.proxy = {(mp_obj_t)&mod_msgpack_exttype_get_data_obj,
(mp_obj_t)&mod_msgpack_exttype_set_data_obj,
(mp_obj_t)&mp_const_none_obj},
};
STATIC mp_rom_map_elem_t mod_msgpack_exttype_locals_dict_table[] = {
// Properties
{ MP_ROM_QSTR(MP_QSTR_code), MP_ROM_PTR(&mod_msgpack_exttype_code_obj) },
{ MP_ROM_QSTR(MP_QSTR_data), MP_ROM_PTR(&mod_msgpack_exttype_data_obj) },
};
STATIC MP_DEFINE_CONST_DICT(mod_msgpack_exttype_locals_dict, mod_msgpack_exttype_locals_dict_table);
const mp_obj_type_t mod_msgpack_exttype_type = {
{ &mp_type_type },
.name = MP_QSTR_ExtType,
.make_new = mod_msgpack_exttype_make_new,
.locals_dict = (mp_obj_dict_t*)&mod_msgpack_exttype_locals_dict,
};

View File

@ -0,0 +1,40 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2020 Bernhard Boser
*
* 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_MSGPACK_EXTTYPE___INIT___H
#define MICROPY_INCLUDED_SHARED_BINDINGS_MSGPACK_EXTTYPE___INIT___H
#include "py/obj.h"
typedef struct {
mp_obj_base_t base;
int32_t code;
mp_obj_t data;
} mod_msgpack_extype_obj_t;
extern const mp_obj_type_t mod_msgpack_exttype_type;
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_MSGPACK_EXTTYPE___INIT___H

View File

@ -0,0 +1,162 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2019 Bernhard Boser
*
* 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 <stdio.h>
#include "py/obj.h"
#include "py/runtime.h"
#include "shared-bindings/msgpack/__init__.h"
#include "shared-module/msgpack/__init__.h"
#include "shared-bindings/msgpack/ExtType.h"
#define MP_OBJ_IS_METH(o) (MP_OBJ_IS_OBJ(o) && (((mp_obj_base_t*)MP_OBJ_TO_PTR(o))->type->name == MP_QSTR_bound_method))
//| """Pack object in msgpack format
//|
//| The msgpack format is similar to json, except that the encoded data is binary.
//| See https://msgpack.org for details. The module implements a subset of the cpython
//| module msgpack-python.
//|
//| Not implemented: 64-bit int, uint, float.
//|
//| Example 1::
//|
//| import msgpack
//| from io import BytesIO
//|
//| b = BytesIO()
//| msgpack.pack({'list': [True, False, None, 1, 3.14], 'str': 'blah'}, b)
//| b.seek(0)
//| print(msgpack.unpack(b))
//|
//| Example 2: handling objects::
//|
//| from msgpack import pack, unpack, ExtType
//| from io import BytesIO
//|
//| class MyClass:
//| def __init__(self, val):
//| self.value = val
//| def __str__(self):
//| return str(self.value)
//|
//| data = MyClass(b'my_value')
//|
//| def encoder(obj):
//| if isinstance(obj, MyClass):
//| return ExtType(1, obj.value)
//| return f"no encoder for {obj}"
//|
//| def decoder(code, data):
//| if code == 1:
//| return MyClass(data)
//| return f"no decoder for type {code}"
//|
//| buffer = BytesIO()
//| pack(data, buffer, default=encoder)
//| buffer.seek(0)
//| decoded = unpack(buffer, ext_hook=decoder)
//| print(f"{data} -> {buffer.getvalue()} -> {decoded}")
//|
//| """
//|
//| def pack(obj: object, buffer: WriteableBuffer, *, default: Union[Callable[[object], None], None] = None) -> None:
//| """Ouput object to buffer in msgpack format.
//|
//| :param object obj: Object to convert to msgpack format.
//| :param ~_typing.WriteableBuffer buffer: buffer to write into
//| :param Optional[~_typing.Callable[[object], None]] default:
//| function called for python objects that do not have
//| a representation in msgpack format.
//| """
//| ...
//|
STATIC mp_obj_t mod_msgpack_pack(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_obj, ARG_buffer, ARG_default };
STATIC const mp_arg_t allowed_args[] = {
{ MP_QSTR_obj, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_buffer, MP_ARG_REQUIRED | MP_ARG_OBJ },
{ MP_QSTR_default, MP_ARG_KW_ONLY | MP_ARG_OBJ, { .u_obj = mp_const_none } },
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
mp_obj_t handler = args[ARG_default].u_obj;
if (handler != mp_const_none && !MP_OBJ_IS_FUN(handler) && !MP_OBJ_IS_METH(handler)) {
mp_raise_ValueError(translate("default is not a function"));
}
common_hal_msgpack_pack(args[ARG_obj].u_obj, args[ARG_buffer].u_obj, handler);
return mp_const_none;
}
MP_DEFINE_CONST_FUN_OBJ_KW(mod_msgpack_pack_obj, 1, mod_msgpack_pack);
//| def unpack(buffer: ReadableBuffer, *, ext_hook: Union[Callable[[int, bytes], object], None] = None, use_list: bool=True) -> object:
//| """Unpack and return one object from buffer.
//|
//| :param ~_typing.ReadableBuffer buffer: buffer to read from
//| :param Optional[~_typing.Callable[[int, bytes], object]] ext_hook: function called for objects in
//| msgpack ext format.
//| :param Optional[bool] use_list: return array as list or tuple (use_list=False).
//|
//| :return object: object read from buffer.
//| """
//| ...
//|
STATIC mp_obj_t mod_msgpack_unpack(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
enum { ARG_buffer, ARG_ext_hook, ARG_use_list };
STATIC const mp_arg_t allowed_args[] = {
{ MP_QSTR_buffer, MP_ARG_REQUIRED | MP_ARG_OBJ, },
{ MP_QSTR_ext_hook, MP_ARG_KW_ONLY | MP_ARG_OBJ, { .u_obj = mp_const_none } },
{ MP_QSTR_use_list, MP_ARG_KW_ONLY | MP_ARG_BOOL, { .u_bool = true } },
};
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
mp_obj_t hook = args[ARG_ext_hook].u_obj;
if (hook != mp_const_none && !MP_OBJ_IS_FUN(hook) && !MP_OBJ_IS_METH(hook)) {
mp_raise_ValueError(translate("ext_hook is not a function"));
}
return common_hal_msgpack_unpack(args[ARG_buffer].u_obj, hook, args[ARG_use_list].u_bool);
}
MP_DEFINE_CONST_FUN_OBJ_KW(mod_msgpack_unpack_obj, 1, mod_msgpack_unpack);
STATIC const mp_rom_map_elem_t msgpack_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR___name__), MP_ROM_QSTR(MP_QSTR_msgpack) },
{ MP_ROM_QSTR(MP_QSTR_ExtType), MP_ROM_PTR(&mod_msgpack_exttype_type) },
{ MP_ROM_QSTR(MP_QSTR_pack), MP_ROM_PTR(&mod_msgpack_pack_obj) },
{ MP_ROM_QSTR(MP_QSTR_unpack), MP_ROM_PTR(&mod_msgpack_unpack_obj) },
};
STATIC MP_DEFINE_CONST_DICT(msgpack_module_globals, msgpack_module_globals_table);
const mp_obj_module_t msgpack_module = {
.base = { &mp_type_module },
.globals = (mp_obj_dict_t*)&msgpack_module_globals,
};

View File

@ -0,0 +1,34 @@
/*
* This file is part of the MicroPython project, http://micropython.org/
*
* The MIT License (MIT)
*
* Copyright (c) 2016 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_SHARED_BINDINGS_MSGPACK___INIT___H
#define MICROPY_INCLUDED_SHARED_BINDINGS_MSGPACK___INIT___H
#include "py/obj.h"
// nothing for now
#endif // MICROPY_INCLUDED_SHARED_BINDINGS_MSGPACK___INIT___H

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