Merging back with updated main files

This commit is contained in:
latkinso42 2022-09-02 15:51:45 -04:00
commit 6fe2ea4513
63 changed files with 455 additions and 241 deletions

76
LICENSE
View File

@ -1,6 +1,6 @@
The MIT License (MIT) MIT License
Copyright (c) 2013-2022 Damien P. George Copyright (c) 2013-2022 Damien P. George and others
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@ -9,77 +9,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions: furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in The above copyright notice and this permission notice shall be included in all
all copies or substantial portions of the Software. copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 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 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
THE SOFTWARE. SOFTWARE.
--------------------------------------------------------------------------------
Unless specified otherwise (see below), the above license and copyright applies
to all files in this repository.
Individual files may include additional copyright holders.
The various ports of MicroPython may include third-party software that is
licensed under different terms. These licenses are summarised in the tree
below, please refer to these files and directories for further license and
copyright information. Note that (L)GPL-licensed code listed below is only
used during the build process and is not part of the compiled source code.
/ (MIT)
/drivers
/cc3000 (BSD-3-clause)
/cc3100 (BSD-3-clause)
/wiznet5k (BSD-3-clause)
/lib
/asf4 (Apache-2.0)
/axtls (BSD-3-clause)
/config
/scripts
/config (GPL-2.0-or-later)
/Rules.mak (GPL-2.0)
/berkeley-db-1xx (BSD-4-clause)
/btstack (See btstack/LICENSE)
/cmsis (BSD-3-clause)
/crypto-algorithms (NONE)
/libhydrogen (ISC)
/littlefs (BSD-3-clause)
/lwip (BSD-3-clause)
/mynewt-nimble (Apache-2.0)
/nrfx (BSD-3-clause)
/nxp_driver (BSD-3-Clause)
/oofatfs (BSD-1-clause)
/pico-sdk (BSD-3-clause)
/re15 (BSD-3-clause)
/stm32lib (BSD-3-clause)
/tinytest (BSD-3-clause)
/tinyusb (MIT)
/uzlib (Zlib)
/logo (uses OFL-1.1)
/ports
/cc3200
/hal (BSD-3-clause)
/simplelink (BSD-3-clause)
/FreeRTOS (GPL-2.0 with FreeRTOS exception)
/stm32
/usbd*.c (MCD-ST Liberty SW License Agreement V2)
/stm32_it.* (MIT + BSD-3-clause)
/system_stm32*.c (MIT + BSD-3-clause)
/boards
/startup_stm32*.s (BSD-3-clause)
/*/stm32*.h (BSD-3-clause)
/usbdev (MCD-ST Liberty SW License Agreement V2)
/usbhost (MCD-ST Liberty SW License Agreement V2)
/teensy
/core (PJRC.COM)
/zephyr
/src (Apache-2.0)
/tools
/dfu.py (LGPL-3.0-only)

85
LICENSE_MicroPython Normal file
View File

@ -0,0 +1,85 @@
The MIT License (MIT)
Copyright (c) 2013-2022 Damien P. George
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.
--------------------------------------------------------------------------------
Unless specified otherwise (see below), the above license and copyright applies
to all files in this repository.
Individual files may include additional copyright holders.
The various ports of MicroPython may include third-party software that is
licensed under different terms. These licenses are summarised in the tree
below, please refer to these files and directories for further license and
copyright information. Note that (L)GPL-licensed code listed below is only
used during the build process and is not part of the compiled source code.
/ (MIT)
/drivers
/cc3000 (BSD-3-clause)
/cc3100 (BSD-3-clause)
/wiznet5k (BSD-3-clause)
/lib
/asf4 (Apache-2.0)
/axtls (BSD-3-clause)
/config
/scripts
/config (GPL-2.0-or-later)
/Rules.mak (GPL-2.0)
/berkeley-db-1xx (BSD-4-clause)
/btstack (See btstack/LICENSE)
/cmsis (BSD-3-clause)
/crypto-algorithms (NONE)
/libhydrogen (ISC)
/littlefs (BSD-3-clause)
/lwip (BSD-3-clause)
/mynewt-nimble (Apache-2.0)
/nrfx (BSD-3-clause)
/nxp_driver (BSD-3-Clause)
/oofatfs (BSD-1-clause)
/pico-sdk (BSD-3-clause)
/re15 (BSD-3-clause)
/stm32lib (BSD-3-clause)
/tinytest (BSD-3-clause)
/tinyusb (MIT)
/uzlib (Zlib)
/logo (uses OFL-1.1)
/ports
/cc3200
/hal (BSD-3-clause)
/simplelink (BSD-3-clause)
/FreeRTOS (GPL-2.0 with FreeRTOS exception)
/stm32
/usbd*.c (MCD-ST Liberty SW License Agreement V2)
/stm32_it.* (MIT + BSD-3-clause)
/system_stm32*.c (MIT + BSD-3-clause)
/boards
/startup_stm32*.s (BSD-3-clause)
/*/stm32*.h (BSD-3-clause)
/usbdev (MCD-ST Liberty SW License Agreement V2)
/usbhost (MCD-ST Liberty SW License Agreement V2)
/teensy
/core (PJRC.COM)
/zephyr
/src (Apache-2.0)
/tools
/dfu.py (LGPL-3.0-only)

View File

@ -1,9 +1,8 @@
MicroPython & CircuitPython license information # MicroPython & CircuitPython License
===============================================
The MIT License (MIT) MIT License
Copyright (c) 2013-2017 Damien P. George, and others Copyright (c) 2013-2022 Damien P. George and others
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal
@ -12,13 +11,13 @@ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions: furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in The above copyright notice and this permission notice shall be included in all
all copies or substantial portions of the Software. copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 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 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
THE SOFTWARE. SOFTWARE.

View File

@ -141,7 +141,7 @@ statement will ensure hardware isn't enabled longer than needed.
Verify your device Verify your device
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
Whenever possible, make sure device you are talking to is the device you expect. Whenever possible, make sure the device you are talking to is the device you expect.
If not, raise a RuntimeError. Beware that I2C addresses can be identical on If not, raise a RuntimeError. Beware that I2C addresses can be identical on
different devices so read registers you know to make sure they match your different devices so read registers you know to make sure they match your
expectation. Validating this upfront will help catch mistakes. expectation. Validating this upfront will help catch mistakes.
@ -202,7 +202,7 @@ interchangeably with the CPython name. This is confusing. Instead, think up a
new name that is related to the extra functionality you are adding. new name that is related to the extra functionality you are adding.
For example, storage mounting and unmounting related functions were moved from For example, storage mounting and unmounting related functions were moved from
``uos`` into a new `storage` module. Terminal related functions were moved into ``uos`` into a new `storage` module. Terminal-related functions were moved into
`multiterminal`. These names better match their functionality and do not `multiterminal`. These names better match their functionality and do not
conflict with CPython names. Make sure to check that you don't conflict with conflict with CPython names. Make sure to check that you don't conflict with
CPython libraries too. That way we can port the API to CPython in the future. CPython libraries too. That way we can port the API to CPython in the future.
@ -213,7 +213,7 @@ Example
When adding extra functionality to CircuitPython to mimic what a normal When adding extra functionality to CircuitPython to mimic what a normal
operating system would do, either copy an existing CPython API (for example file operating system would do, either copy an existing CPython API (for example file
writing) or create a separate module to achieve what you want. For example, writing) or create a separate module to achieve what you want. For example,
mounting and unmount drives is not a part of CPython so it should be done in a mounting and unmounting drives is not a part of CPython so it should be done in a
module, such as a new ``storage`` module, that is only available in CircuitPython. module, such as a new ``storage`` module, that is only available in CircuitPython.
That way when someone moves the code to CPython they know what parts need to be That way when someone moves the code to CPython they know what parts need to be
adapted. adapted.

View File

@ -48,7 +48,7 @@ Full Table of Contents
../CONTRIBUTING ../CONTRIBUTING
../BUILDING ../BUILDING
../CODE_OF_CONDUCT ../CODE_OF_CONDUCT
../license.rst ../docs/LICENSE
../WEBUSB_README ../WEBUSB_README
Indices and tables Indices and tables

View File

@ -40,7 +40,6 @@ ALIASES_BY_BOARD = {
"pybadge": ["edgebadge"], "pybadge": ["edgebadge"],
"pyportal": ["pyportal_pynt"], "pyportal": ["pyportal_pynt"],
"gemma_m0": ["gemma_m0_pycon2018"], "gemma_m0": ["gemma_m0_pycon2018"],
"pewpew10": ["pewpew13"],
} }
ALIASES_BRAND_NAMES = { ALIASES_BRAND_NAMES = {
@ -54,8 +53,6 @@ ALIASES_BRAND_NAMES = {
"Adafruit PyPortal Pynt", "Adafruit PyPortal Pynt",
"gemma_m0_pycon2018": "gemma_m0_pycon2018":
"Adafruit Gemma M0 PyCon 2018", "Adafruit Gemma M0 PyCon 2018",
"pewpew13":
"PewPew 13",
} }
ADDITIONAL_MODULES = { ADDITIONAL_MODULES = {

View File

@ -138,7 +138,7 @@ root will be returned.
When requested with the `OPTIONS` method, the server will respond with CORS related headers. Most When requested with the `OPTIONS` method, the server will respond with CORS related headers. Most
aren't needed for API use. They are there for the web browser. aren't needed for API use. They are there for the web browser.
* `Access-Control-Allow-Methods` - Varies with USB state. `GET, OPTIONS` when USB is active. `GET, OPTIONS, PUT, DELETE` otherwise. * `Access-Control-Allow-Methods` - Varies with USB state. `GET, OPTIONS` when USB is active. `GET, OPTIONS, PUT, DELETE, MOVE` otherwise.
Example: Example:
@ -405,6 +405,12 @@ curl -v -L http://circuitpython.local/cp/version.json
} }
``` ```
#### `/code/`
The `/code/` page returns a small static html page that will pull in and load the full code editor from
[code.circuitpython.org](https://code.circuitpython.org) for a full code editor experience. Because most
of the resources reside online instead of the device, an active internet connection is required.
### Static files ### Static files
* `/favicon.ico` - Blinka * `/favicon.ico` - Blinka

@ -1 +1 @@
Subproject commit f993d5fac69f3a0cfa33988268666c462b72c0ec Subproject commit 9a8338b3bdaeac9eeb5b74d147107c67db33fdac

View File

@ -404,14 +404,12 @@ msgstr "Alamat harus sepanjang %d byte"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "" msgstr ""
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Semua perangkat I2C sedang digunakan" msgstr "Semua perangkat I2C sedang digunakan"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1074,6 +1072,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1612,6 +1611,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2904,6 +2904,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "error = 0x%08lX" msgstr "error = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "" msgstr ""

View File

@ -2873,6 +2873,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "" msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "" msgstr ""

View File

@ -405,14 +405,12 @@ msgstr "Adresa musí být %d bajtů dlouhá"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "Všechny CAN periferie jsou používány" msgstr "Všechny CAN periferie jsou používány"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Všechny I2C periferie jsou používány" msgstr "Všechny I2C periferie jsou používány"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1074,6 +1072,7 @@ msgid "I2C init error"
msgstr "Chyba inicializace I2C" msgstr "Chyba inicializace I2C"
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "Periférie I2C je používána" msgstr "Periférie I2C je používána"
@ -1608,6 +1607,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2891,6 +2891,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "" msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "" msgstr ""

View File

@ -407,14 +407,12 @@ msgstr "Die Adresse muss %d Bytes lang sein"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "Alle CAN-Schnittstellen sind in Benutzung" msgstr "Alle CAN-Schnittstellen sind in Benutzung"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Alle I2C-Peripheriegeräte sind in Benutzung" msgstr "Alle I2C-Peripheriegeräte sind in Benutzung"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr "Alle I2C-Ziele sind in Verwendung"
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1084,6 +1082,7 @@ msgid "I2C init error"
msgstr "I2C Initialisierungsfehler" msgstr "I2C Initialisierungsfehler"
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "I2C Peripherie in Verwendung" msgstr "I2C Peripherie in Verwendung"
@ -1628,6 +1627,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "Nur ein TouchAlarm kann in Deep Sleep gesetzt werden." msgstr "Nur ein TouchAlarm kann in Deep Sleep gesetzt werden."
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "Nur eine Adresse ist erlaubt" msgstr "Nur eine Adresse ist erlaubt"
@ -2956,6 +2956,12 @@ msgstr "epoch_time wird auf diesem Board nicht unterstützt"
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "Fehler = 0x%08lX" msgstr "Fehler = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "Exceptions müssen von BaseException abgeleitet sein" msgstr "Exceptions müssen von BaseException abgeleitet sein"
@ -4443,6 +4449,9 @@ msgstr "zi muss eine Gleitkommazahl sein"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi muss die Form (n_section, 2) haben" msgstr "zi muss die Form (n_section, 2) haben"
#~ msgid "All I2C targets are in use"
#~ msgstr "Alle I2C-Ziele sind in Verwendung"
#~ msgid "Failed to init wifi" #~ msgid "Failed to init wifi"
#~ msgstr "Wifi Initialisierung ist fehlgeschlagen" #~ msgstr "Wifi Initialisierung ist fehlgeschlagen"

View File

@ -398,12 +398,10 @@ msgstr ""
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "" msgstr ""
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use"
msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use" #: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use"
msgstr "" msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
@ -1061,6 +1059,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1592,6 +1591,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2873,6 +2873,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "" msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "" msgstr ""

View File

@ -408,14 +408,12 @@ msgstr "Address must be %d bytes long"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "All CAN peripherals are in use" msgstr "All CAN peripherals are in use"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "All I2C peripherals are in use" msgstr "All I2C peripherals are in use"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1075,6 +1073,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "I2C peripheral in use" msgstr "I2C peripheral in use"
@ -1612,6 +1611,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "Only one TouchAlarm can be set in deep sleep." msgstr "Only one TouchAlarm can be set in deep sleep."
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2910,6 +2910,12 @@ msgstr "epoch_time not supported on this board"
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "error = 0x%08lX" msgstr "error = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "exceptions must derive from BaseException" msgstr "exceptions must derive from BaseException"

View File

@ -407,14 +407,12 @@ msgstr "La dirección debe tener %d bytes de largo"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "Todos los periféricos CAN están en uso" msgstr "Todos los periféricos CAN están en uso"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Todos los periféricos I2C están siendo usados" msgstr "Todos los periféricos I2C están siendo usados"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1083,6 +1081,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "Dispositivo I2C en uso" msgstr "Dispositivo I2C en uso"
@ -1633,6 +1632,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "Solamente una TouchAlarm puede ser configurada durante deep sleep." msgstr "Solamente una TouchAlarm puede ser configurada durante deep sleep."
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2947,6 +2947,12 @@ msgstr "epoch_time no esta soportado en esta tarjeta"
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "error = 0x%08lX" msgstr "error = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "las excepciones deben derivar de BaseException" msgstr "las excepciones deben derivar de BaseException"

View File

@ -401,14 +401,12 @@ msgstr "ang palette ay dapat 32 bytes ang haba"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "" msgstr ""
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Lahat ng I2C peripherals ginagamit" msgstr "Lahat ng I2C peripherals ginagamit"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1072,6 +1070,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1608,6 +1607,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2905,6 +2905,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "" msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "ang mga exceptions ay dapat makuha mula sa BaseException" msgstr "ang mga exceptions ay dapat makuha mula sa BaseException"

View File

@ -8,14 +8,14 @@ msgstr ""
"Project-Id-Version: 0.1\n" "Project-Id-Version: 0.1\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2021-01-04 12:55-0600\n" "POT-Creation-Date: 2021-01-04 12:55-0600\n"
"PO-Revision-Date: 2022-08-09 04:22+0000\n" "PO-Revision-Date: 2022-08-29 18:20+0000\n"
"Last-Translator: Maxime Leroy <lisacintosh@gmail.com>\n" "Last-Translator: Maxime Leroy <lisacintosh@gmail.com>\n"
"Language: fr\n" "Language: fr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n > 1;\n" "Plural-Forms: nplurals=2; plural=n > 1;\n"
"X-Generator: Weblate 4.14-dev\n" "X-Generator: Weblate 4.14.1-dev\n"
#: main.c #: main.c
msgid "" msgid ""
@ -410,14 +410,12 @@ msgstr "L'adresse doit être longue de %d octets"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "Tous les périphériques CAN sont utilisés" msgstr "Tous les périphériques CAN sont utilisés"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Tous les périphériques I2C sont utilisés" msgstr "Tous les périphériques I2C sont utilisés"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1103,6 +1101,7 @@ msgid "I2C init error"
msgstr "Erreur d'initialisation I2C" msgstr "Erreur d'initialisation I2C"
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "périphérique I2C utilisé" msgstr "périphérique I2C utilisé"
@ -1656,6 +1655,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "Seulement une TouchAlarm peu être réglée en sommeil profond." msgstr "Seulement une TouchAlarm peu être réglée en sommeil profond."
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "Seulement une adresse est autorisée" msgstr "Seulement une adresse est autorisée"
@ -2987,6 +2987,12 @@ msgstr "epoch_time n'est pas supporté sur ce panneau"
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "erreur = 0x%08lX" msgstr "erreur = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "les exceptions doivent dériver de 'BaseException'" msgstr "les exceptions doivent dériver de 'BaseException'"
@ -3372,7 +3378,7 @@ msgstr "décorateur micropython invalide"
#: ports/espressif/common-hal/esp32_camera/Camera.c #: ports/espressif/common-hal/esp32_camera/Camera.c
msgid "invalid setting" msgid "invalid setting"
msgstr "" msgstr "réglage invalide"
#: shared-bindings/random/__init__.c #: shared-bindings/random/__init__.c
msgid "invalid step" msgid "invalid step"
@ -4471,6 +4477,9 @@ msgstr "zi doit être de type float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi doit être de forme (n_section, 2)" msgstr "zi doit être de forme (n_section, 2)"
#~ msgid "All I2C targets are in use"
#~ msgstr "Toutes les cibles I2C sont utilisées"
#~ msgid "Failed to init wifi" #~ msgid "Failed to init wifi"
#~ msgstr "Echec de l'initialisation du Wifi" #~ msgstr "Echec de l'initialisation du Wifi"

View File

@ -398,12 +398,10 @@ msgstr ""
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "" msgstr ""
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use"
msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use" #: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use"
msgstr "" msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
@ -1061,6 +1059,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1592,6 +1591,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2873,6 +2873,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "" msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "" msgstr ""

View File

@ -407,14 +407,12 @@ msgstr "L'indirizzo deve essere lungo %d byte"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "Tutte le periferiche CAN sono in uso" msgstr "Tutte le periferiche CAN sono in uso"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Tutte le periferiche I2C sono in uso" msgstr "Tutte le periferiche I2C sono in uso"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1077,6 +1075,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1615,6 +1614,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2913,6 +2913,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "errore = 0x%08lX" msgstr "errore = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "le eccezioni devono derivare da BaseException" msgstr "le eccezioni devono derivare da BaseException"

View File

@ -403,14 +403,12 @@ msgstr "アドレスは、%dバイト長でなければなりません"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "全てのCAN周辺機器が使用中" msgstr "全てのCAN周辺機器が使用中"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "全てのI2C周辺機器が使用中" msgstr "全てのI2C周辺機器が使用中"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1070,6 +1068,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1605,6 +1604,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2891,6 +2891,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "error = 0x1%08lX" msgstr "error = 0x1%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "例外はBaseExceptionから派生していなければなりません" msgstr "例外はBaseExceptionから派生していなければなりません"

View File

@ -399,14 +399,12 @@ msgstr ""
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "" msgstr ""
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "사용중인 모든 I2C주변 기기" msgstr "사용중인 모든 I2C주변 기기"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1064,6 +1062,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1595,6 +1594,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2877,6 +2877,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "" msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "" msgstr ""

View File

@ -401,14 +401,12 @@ msgstr "Adres moet %d bytes lang zijn"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "Alle CAN-peripherals zijn in gebruik" msgstr "Alle CAN-peripherals zijn in gebruik"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Alle I2C peripherals zijn in gebruik" msgstr "Alle I2C peripherals zijn in gebruik"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1070,6 +1068,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1609,6 +1608,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2906,6 +2906,12 @@ msgstr "epoch_time niet ondersteund op dit bord"
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "fout = 0x%08lX" msgstr "fout = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "uitzonderingen moeten afleiden van BaseException" msgstr "uitzonderingen moeten afleiden van BaseException"

View File

@ -403,14 +403,12 @@ msgstr "Adres musi mieć %d bajtów"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "" msgstr ""
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Wszystkie peryferia I2C w użyciu" msgstr "Wszystkie peryferia I2C w użyciu"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1070,6 +1068,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1603,6 +1602,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2885,6 +2885,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "błąd = 0x%08lX" msgstr "błąd = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "wyjątki muszą dziedziczyć po BaseException" msgstr "wyjątki muszą dziedziczyć po BaseException"

View File

@ -411,14 +411,12 @@ msgstr "O endereço deve ter %d bytes de comprimento"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "Todos os periféricos CAN estão em uso" msgstr "Todos os periféricos CAN estão em uso"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Todos os periféricos I2C estão em uso" msgstr "Todos os periféricos I2C estão em uso"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr "Todos os alvos I2C já estão em uso"
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1092,6 +1090,7 @@ msgid "I2C init error"
msgstr "Erro de inicialização do I2C" msgstr "Erro de inicialização do I2C"
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "Periférico I2C em uso" msgstr "Periférico I2C em uso"
@ -1638,6 +1637,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "Apenas um TouchAlarm pode ser colocado em deep sleep." msgstr "Apenas um TouchAlarm pode ser colocado em deep sleep."
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "Apenas um endereço é permitido" msgstr "Apenas um endereço é permitido"
@ -2965,6 +2965,12 @@ msgstr "O epoch_time não é compatível com esta placa"
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "erro = 0x%08lX" msgstr "erro = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "as exceções devem derivar a partir do BaseException" msgstr "as exceções devem derivar a partir do BaseException"
@ -4447,6 +4453,9 @@ msgstr "zi deve ser de um tipo float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi deve estar na forma (n_section, 2)" msgstr "zi deve estar na forma (n_section, 2)"
#~ msgid "All I2C targets are in use"
#~ msgstr "Todos os alvos I2C já estão em uso"
#~ msgid "Failed to init wifi" #~ msgid "Failed to init wifi"
#~ msgstr "Houve uma falha ao iniciar o wifi" #~ msgstr "Houve uma falha ao iniciar o wifi"

View File

@ -406,14 +406,12 @@ msgstr "Адрес должен быть длиной %d байт"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "Все периферийные устройства CAN уже используются" msgstr "Все периферийные устройства CAN уже используются"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Все периферийные устройства I2C уже используются" msgstr "Все периферийные устройства I2C уже используются"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1090,6 +1088,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "Периферийное устройство I2C уже используется" msgstr "Периферийное устройство I2C уже используется"
@ -1634,6 +1633,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2922,6 +2922,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "" msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "" msgstr ""

View File

@ -406,14 +406,12 @@ msgstr "Adressen måste vara %d byte lång"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "All I2C-kringutrustning används" msgstr "All I2C-kringutrustning används"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "All I2C-kringutrustning används" msgstr "All I2C-kringutrustning används"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr "Alla I2C-mål används"
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1077,6 +1075,7 @@ msgid "I2C init error"
msgstr "I2C-initieringsfel" msgstr "I2C-initieringsfel"
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "I2C-enhet används redan" msgstr "I2C-enhet används redan"
@ -1618,6 +1617,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "Endast ett TouchAlarm kan ställas in för djupsömn." msgstr "Endast ett TouchAlarm kan ställas in för djupsömn."
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "Endast en adress är tillåten" msgstr "Endast en adress är tillåten"
@ -2931,6 +2931,12 @@ msgstr "epoch_time stöds inte av detta kort"
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "fel = 0x%08lX" msgstr "fel = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "exceptions måste ärvas från BaseException" msgstr "exceptions måste ärvas från BaseException"
@ -4406,6 +4412,9 @@ msgstr "zi måste vara av typ float"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi måste vara i formen (n_section, 2)" msgstr "zi måste vara i formen (n_section, 2)"
#~ msgid "All I2C targets are in use"
#~ msgstr "Alla I2C-mål används"
#~ msgid "Failed to init wifi" #~ msgid "Failed to init wifi"
#~ msgstr "Kunde inte initiera WiFi" #~ msgstr "Kunde inte initiera WiFi"

View File

@ -7,15 +7,15 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"PO-Revision-Date: 2022-08-14 12:14+0000\n" "PO-Revision-Date: 2022-08-29 18:20+0000\n"
"Last-Translator: Can Kocyigit <cank3698@googlemail.com>\n" "Last-Translator: Boran Roni <boranroniurtekin@gmail.com>\n"
"Language-Team: none\n" "Language-Team: none\n"
"Language: tr\n" "Language: tr\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n" "Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.14-dev\n" "X-Generator: Weblate 4.14.1-dev\n"
#: main.c #: main.c
msgid "" msgid ""
@ -118,11 +118,11 @@ msgstr "%q indeksleri integer olmalı, %s değil"
#: shared-module/bitbangio/SPI.c #: shared-module/bitbangio/SPI.c
msgid "%q init failed" msgid "%q init failed"
msgstr "" msgstr "%q init başarısız oldu"
#: py/argcheck.c #: py/argcheck.c
msgid "%q length must be %d" msgid "%q length must be %d"
msgstr "" msgstr "%q boyutu %d olmalıdır"
#: py/argcheck.c #: py/argcheck.c
msgid "%q length must be %d-%d" msgid "%q length must be %d-%d"
@ -130,11 +130,11 @@ msgstr "%q boyutları %d-%d olmalıdır"
#: py/argcheck.c #: py/argcheck.c
msgid "%q length must be <= %d" msgid "%q length must be <= %d"
msgstr "" msgstr "%q boyutu <= %d olmalıdır"
#: py/argcheck.c #: py/argcheck.c
msgid "%q length must be >= %d" msgid "%q length must be >= %d"
msgstr "" msgstr "%q boyutu >= %d olmalıdır"
#: shared-bindings/busio/I2C.c #: shared-bindings/busio/I2C.c
msgid "%q length must be >= 1" msgid "%q length must be >= 1"
@ -142,7 +142,7 @@ msgstr "%q boyutu >=1 olmalıdır"
#: py/argcheck.c #: py/argcheck.c
msgid "%q must be %d" msgid "%q must be %d"
msgstr "" msgstr "%q, %d olmalıdır"
#: py/argcheck.c #: py/argcheck.c
msgid "%q must be %d-%d" msgid "%q must be %d-%d"
@ -150,7 +150,7 @@ msgstr "%q, %d-%d olmalıdır"
#: shared-bindings/displayio/Display.c #: shared-bindings/displayio/Display.c
msgid "%q must be 1 when %q is True" msgid "%q must be 1 when %q is True"
msgstr "" msgstr "%q 1 olmalı, %q True olduğu zaman"
#: py/argcheck.c shared-bindings/gifio/GifWriter.c #: py/argcheck.c shared-bindings/gifio/GifWriter.c
msgid "%q must be <= %d" msgid "%q must be <= %d"
@ -174,7 +174,7 @@ msgstr "%q bir string olmalıdır"
#: py/argcheck.c #: py/argcheck.c
msgid "%q must be an int" msgid "%q must be an int"
msgstr "" msgstr "%q bir tam sayı olmalıdır"
#: py/argcheck.c #: py/argcheck.c
msgid "%q must be of type %q" msgid "%q must be of type %q"
@ -219,7 +219,7 @@ msgstr "%q, %q ve %q aynı uzunlukta olmalıdır"
#: py/objint.c #: py/objint.c
msgid "%q=%q" msgid "%q=%q"
msgstr "" msgstr "%q=%q"
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c #: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
#, c-format #, c-format
@ -316,7 +316,6 @@ msgid "'%s' object isn't subscriptable"
msgstr "'%s' nesnesi subscriptable özelliğe sahip değil" msgstr "'%s' nesnesi subscriptable özelliğe sahip değil"
#: py/objstr.c #: py/objstr.c
#, fuzzy
msgid "'=' alignment not allowed in string format specifier" msgid "'=' alignment not allowed in string format specifier"
msgstr "'=' hizalamasına string biçiminde izin verilmez" msgstr "'=' hizalamasına string biçiminde izin verilmez"
@ -412,14 +411,12 @@ msgstr "Adres %d byte uzunluğunda olmalıdır"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "Tüm CAN çevre birimleri kullanımda" msgstr "Tüm CAN çevre birimleri kullanımda"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "Tüm I2C çevre birimleri kullanımda" msgstr "Tüm I2C çevre birimleri kullanımda"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr ""
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1078,6 +1075,7 @@ msgid "I2C init error"
msgstr "" msgstr ""
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "" msgstr ""
@ -1609,6 +1607,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "" msgstr ""
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "" msgstr ""
@ -2893,6 +2892,12 @@ msgstr ""
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "" msgstr ""
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "" msgstr ""
@ -4362,6 +4367,9 @@ msgstr ""
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "" msgstr ""
#~ msgid "All I2C targets are in use"
#~ msgstr "Tüm I2C hedefleri kullanımda"
#~ msgid "%q must be a tuple of length 2" #~ msgid "%q must be a tuple of length 2"
#~ msgstr "%q, boyutu 2 olan bir tuple olmalıdır" #~ msgstr "%q, boyutu 2 olan bir tuple olmalıdır"

View File

@ -409,14 +409,12 @@ msgstr "dìzhǐ chángdù bìxū shì %d zìjié"
msgid "All CAN peripherals are in use" msgid "All CAN peripherals are in use"
msgstr "suǒyǒu CAN wàishè dōu zài shǐyòng zhōng" msgstr "suǒyǒu CAN wàishè dōu zài shǐyòng zhōng"
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c #: ports/espressif/common-hal/busio/I2C.c
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/nrf/common-hal/busio/I2C.c
msgid "All I2C peripherals are in use" msgid "All I2C peripherals are in use"
msgstr "suǒyǒu I2C wàishè dōu zài shǐyòng zhōng" msgstr "suǒyǒu I2C wàishè dōu zài shǐyòng zhōng"
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
msgid "All I2C targets are in use"
msgstr "suǒyǒu I2C mùbiāo dōu zài shǐyòng zhōng"
#: ports/espressif/common-hal/countio/Counter.c #: ports/espressif/common-hal/countio/Counter.c
#: ports/espressif/common-hal/frequencyio/FrequencyIn.c #: ports/espressif/common-hal/frequencyio/FrequencyIn.c
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c #: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
@ -1082,6 +1080,7 @@ msgid "I2C init error"
msgstr "I2C qǐdòng cuòwù" msgstr "I2C qǐdòng cuòwù"
#: ports/raspberrypi/common-hal/busio/I2C.c #: ports/raspberrypi/common-hal/busio/I2C.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "I2C peripheral in use" msgid "I2C peripheral in use"
msgstr "I2C wài shè zhèng zài shǐ yòng zhōng" msgstr "I2C wài shè zhèng zài shǐ yòng zhōng"
@ -1626,6 +1625,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
msgstr "zhǐ yǒu yí gè chù mō bì kě yǐ shè zhì zài shēn dù shuì mián." msgstr "zhǐ yǒu yí gè chù mō bì kě yǐ shè zhì zài shēn dù shuì mián."
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c #: ports/espressif/common-hal/i2ctarget/I2CTarget.c
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
msgid "Only one address is allowed" msgid "Only one address is allowed"
msgstr "zhǐ yǔn xǔ yí gè dì zhǐ" msgstr "zhǐ yǔn xǔ yí gè dì zhǐ"
@ -2937,6 +2937,12 @@ msgstr "epoch_time bǎn bù zhī chí cǐ bǎn běn"
msgid "error = 0x%08lX" msgid "error = 0x%08lX"
msgstr "cuòwù = 0x%08lX" msgstr "cuòwù = 0x%08lX"
#: ports/espressif/common-hal/esp32_camera/Camera.c
msgid ""
"esp32_camera.Camera requires reserved PSRAM to be configured. See the "
"documentation for instructions."
msgstr ""
#: py/runtime.c #: py/runtime.c
msgid "exceptions must derive from BaseException" msgid "exceptions must derive from BaseException"
msgstr "lìwài bìxū láizì BaseException" msgstr "lìwài bìxū láizì BaseException"
@ -4412,6 +4418,9 @@ msgstr "zi bìxū wèi fú diǎn xíng"
msgid "zi must be of shape (n_section, 2)" msgid "zi must be of shape (n_section, 2)"
msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)" msgstr "zi bìxū jùyǒu xíngzhuàng (n_section,2)"
#~ msgid "All I2C targets are in use"
#~ msgstr "suǒyǒu I2C mùbiāo dōu zài shǐyòng zhōng"
#~ msgid "Failed to init wifi" #~ msgid "Failed to init wifi"
#~ msgstr "Wúfǎ chūshǐhuà wifi" #~ msgstr "Wúfǎ chūshǐhuà wifi"

View File

@ -15,7 +15,7 @@ CIRCUITPY_MATH = 1
CIRCUITPY_AUDIOIO = 1 CIRCUITPY_AUDIOIO = 1
CIRCUITPY_ANALOGIO = 1 CIRCUITPY_ANALOGIO = 1
CIRCUITPY_DISPLAYIO = 1 CIRCUITPY_DISPLAYIO = 1
CIRCUITPY_KEYPPAD = 1 CIRCUITPY_KEYPAD = 1
CIRCUITPY_PULSEIO = 0 CIRCUITPY_PULSEIO = 0
CIRCUITPY_AUDIOBUSIO = 0 CIRCUITPY_AUDIOBUSIO = 0

View File

@ -63,7 +63,7 @@
//| """ //| """
//| Configure and initialize a camera with the given properties //| Configure and initialize a camera with the given properties
//| //|
//| This driver requires that the ``CIRCUITPY_RESERVED_PSRAM`` in ``/.env`` be large enough to hold the camera frambuffer(s). Generally, boards with built-in cameras will have a default setting that is large enough. If the constructor raises a MemoryError, this probably indicates the setting is too small and should be increased. //| This driver requires that the ``CIRCUITPY_RESERVED_PSRAM`` in ``/.env`` be large enough to hold the camera frambuffer(s). Generally, boards with built-in cameras will have a default setting that is large enough. If the constructor raises a MemoryError or an IDFError, this probably indicates the setting is too small and should be increased.
//| //|
//| //|
//| .. important:: //| .. important::

View File

@ -19,3 +19,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 4MB
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = qio CIRCUITPY_ESP_FLASH_MODE = qio
CIRCUITPY_ESP_FLASH_FREQ = 80m CIRCUITPY_ESP_FLASH_FREQ = 80m
CIRCUITPY_ESP_FLASH_SIZE = 8MB CIRCUITPY_ESP_FLASH_SIZE = 8MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -13,3 +13,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -20,3 +20,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 8MB
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -17,3 +17,4 @@ CIRCUITPY_NEOPIXEL_WRITE = 0
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 80m CIRCUITPY_ESP_FLASH_FREQ = 80m
CIRCUITPY_ESP_FLASH_SIZE = 8MB CIRCUITPY_ESP_FLASH_SIZE = 8MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 80m CIRCUITPY_ESP_FLASH_FREQ = 80m
CIRCUITPY_ESP_FLASH_SIZE = 8MB CIRCUITPY_ESP_FLASH_SIZE = 8MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 80m CIRCUITPY_ESP_FLASH_FREQ = 80m
CIRCUITPY_ESP_FLASH_SIZE = 8MB CIRCUITPY_ESP_FLASH_SIZE = 8MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -21,3 +21,4 @@ CIRCUITPY_ESP32_CAMERA = 0
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/mixgo_cp_lib/mixgoce_lib FROZEN_MPY_DIRS += $(TOP)/frozen/mixgo_cp_lib/mixgoce_lib
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -21,3 +21,4 @@ CIRCUITPY_ESP32_CAMERA = 0
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
FROZEN_MPY_DIRS += $(TOP)/frozen/mixgo_cp_lib/mixgoce_lib FROZEN_MPY_DIRS += $(TOP)/frozen/mixgo_cp_lib/mixgoce_lib
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -18,3 +18,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 8MB
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -18,3 +18,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 8MB
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
CIRCUITPY_ESP_FLASH_MODE = dio CIRCUITPY_ESP_FLASH_MODE = dio
CIRCUITPY_ESP_FLASH_FREQ = 40m CIRCUITPY_ESP_FLASH_FREQ = 40m
CIRCUITPY_ESP_FLASH_SIZE = 4MB CIRCUITPY_ESP_FLASH_SIZE = 4MB
CIRCUITPY_ESP32_CAMERA = 0

View File

@ -34,6 +34,10 @@
#include "esp32-camera/driver/private_include/cam_hal.h" #include "esp32-camera/driver/private_include/cam_hal.h"
#if !CONFIG_SPIRAM
#error esp32_camera only works on boards configured with spiram, disable it in mpconfigboard.mk
#endif
static void maybe_claim_pin(const mcu_pin_obj_t *pin) { static void maybe_claim_pin(const mcu_pin_obj_t *pin) {
if (pin) { if (pin) {
claim_pin(pin); claim_pin(pin);
@ -57,6 +61,11 @@ void common_hal_esp32_camera_camera_construct(
mp_int_t framebuffer_count, mp_int_t framebuffer_count,
camera_grab_mode_t grab_mode) { camera_grab_mode_t grab_mode) {
if (common_hal_espidf_get_reserved_psram() == 0) {
mp_raise_msg(&mp_type_MemoryError, translate(
"esp32_camera.Camera requires reserved PSRAM to be configured. "
"See the documentation for instructions."));
}
for (int i = 0; i < 8; i++) { for (int i = 0; i < 8; i++) {
claim_pin_number(data_pins[i]); claim_pin_number(data_pins[i]);
} }

View File

@ -74,6 +74,11 @@ static void pulseout_event_handler(nrf_timer_event_t event_type, void *p_context
nrfx_timer_pause(timer); nrfx_timer_pause(timer);
pulse_array_index++; pulse_array_index++;
// Ignore a zero-length pulse
while (pulse_array_index < pulse_array_length &&
pulse_array[pulse_array_index] == 0) {
pulse_array_index++;
}
// No more pulses. Turn off output and don't restart. // No more pulses. Turn off output and don't restart.
if (pulse_array_index >= pulse_array_length) { if (pulse_array_index >= pulse_array_length) {

@ -1 +1 @@
Subproject commit 426e46126b5a1efaea4544cdb71ab81b61983034 Subproject commit 2e6142b15b8a75c1227dd3edbe839193b2bf9041

View File

@ -41,7 +41,7 @@
//| class SPIDevice: //| class SPIDevice:
//| """SPI Device Manager""" //| """SPI Device Manager"""
//| //|
//| def __init__(self, spi: busio.SPI, chip_select: microcontroller.Pin, *, baudrate: int = 100000, polarity: int = 0, phase: int = 0, extra_clocks : int = 0) -> None: //| def __init__(self, spi: busio.SPI, chip_select: digitalio.DigitalInOut, *, baudrate: int = 100000, polarity: int = 0, phase: int = 0, extra_clocks : int = 0) -> None:
//| //|
//| """ //| """
//| Represents a single SPI device and manages locking the bus and the device address. //| Represents a single SPI device and manages locking the bus and the device address.

View File

@ -222,15 +222,16 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(busio_uart___exit___obj, 4, 4, busio_
//| def readline(self) -> bytes: //| def readline(self) -> bytes:
//| """Read a line, ending in a newline character, or //| """Read a line, ending in a newline character, or
//| return None if a timeout occurs sooner, or //| return ``None`` if a timeout occurs sooner, or
//| return everything readable if no newline is found and timeout=0 //| return everything readable if no newline is found and
//| ``timeout=0``
//| //|
//| :return: the line read //| :return: the line read
//| :rtype: bytes or None""" //| :rtype: bytes or None"""
//| ... //| ...
//| //|
//| def write(self, buf: WriteableBuffer) -> Optional[int]: //| def write(self, buf: ReadableBuffer) -> Optional[int]:
//| """Write the buffer of bytes to the bus. //| """Write the buffer of bytes to the bus.
//| //|
//| *New in CircuitPython 4.0:* ``buf`` must be bytes, not a string. //| *New in CircuitPython 4.0:* ``buf`` must be bytes, not a string.

View File

@ -166,6 +166,20 @@ MP_DEFINE_CONST_FUN_OBJ_1(os_rmdir_obj, os_rmdir);
//| def stat(path: str) -> Tuple[int, int, int, int, int, int, int, int, int, int]: //| def stat(path: str) -> Tuple[int, int, int, int, int, int, int, int, int, int]:
//| """Get the status of a file or directory. //| """Get the status of a file or directory.
//| //|
//| Returns a tuple with the status of a file or directory in the following order:
//|
//|
//| * ``st_mode`` -- File type, regular or directory
//| * ``st_ino`` -- Set to 0
//| * ``st_dev`` -- Set to 0
//| * ``st_nlink`` -- Set to 0
//| * ``st_uid`` -- Set to 0
//| * ``st_gid`` -- Set to 0
//| * ``st_size`` -- Size of the file in bytes
//| * ``st_atime`` -- Time of most recent access expressed in seconds
//| * ``st_mtime`` -- Time of most recent content modification expressed in seconds.
//| * ``st_ctime`` -- Time of most recent content modification expressed in seconds.
//|
//| .. note:: On builds without long integers, the number of seconds //| .. note:: On builds without long integers, the number of seconds
//| for contemporary dates will not fit in a small integer. //| for contemporary dates will not fit in a small integer.
//| So the time fields return 946684800, //| So the time fields return 946684800,

View File

@ -87,7 +87,8 @@ STATIC mp_obj_t pulseio_pulsein_make_new(const mp_obj_type_t *type, size_t n_arg
mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
const mcu_pin_obj_t *pin = validate_obj_is_free_pin(args[ARG_pin].u_obj); const mcu_pin_obj_t *pin = validate_obj_is_free_pin(args[ARG_pin].u_obj);
pulseio_pulsein_obj_t *self = m_new_obj(pulseio_pulsein_obj_t); // Make object long-lived to avoid moving between imports
pulseio_pulsein_obj_t *self = m_new_ll_obj(pulseio_pulsein_obj_t);
self->base.type = &pulseio_pulsein_type; self->base.type = &pulseio_pulsein_type;
common_hal_pulseio_pulsein_construct(self, pin, args[ARG_maxlen].u_int, common_hal_pulseio_pulsein_construct(self, pin, args[ARG_maxlen].u_int,

View File

@ -41,8 +41,17 @@
//| SocketPool can be created for each radio. //| SocketPool can be created for each radio.
//| //|
//| SocketPool should be used in place of CPython's socket which provides //| SocketPool should be used in place of CPython's socket which provides
//| a pool of sockets provided by the underlying OS.""" //| a pool of sockets provided by the underlying OS.
//| """
//| //|
//| def __init__(self, radio: wifi.Radio) -> None:
//| """Create a new SocketPool object for the provided radio
//|
//| :param wifi.Radio radio: The (connected) network hardware to associate
//| with this SocketPool; currently, this will always be the object
//| returned by :py:attr:`wifi.radio`
//| """
//| ...
STATIC mp_obj_t socketpool_socketpool_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) { STATIC mp_obj_t socketpool_socketpool_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *args) {
mp_arg_check_num(n_args, n_kw, 1, 1, false); mp_arg_check_num(n_args, n_kw, 1, 1, false);

View File

@ -191,10 +191,11 @@ STATIC mp_obj_t usb_hid_device_send_report(size_t n_args, const mp_obj_t *pos_ar
} }
MP_DEFINE_CONST_FUN_OBJ_KW(usb_hid_device_send_report_obj, 1, usb_hid_device_send_report); MP_DEFINE_CONST_FUN_OBJ_KW(usb_hid_device_send_report_obj, 1, usb_hid_device_send_report);
//| def get_last_received_report(self, report_id: Optional[int] = None) -> bytes: //| def get_last_received_report(self, report_id: Optional[int] = None) -> Optional[bytes]:
//| """Get the last received HID OUT or feature report for the given report ID. //| """Get the last received HID OUT or feature report for the given report ID.
//| The report ID may be omitted if there is no report ID, or only one report ID. //| The report ID may be omitted if there is no report ID, or only one report ID.
//| Return `None` if nothing received. //| Return `None` if nothing received. After returning a report, subsequent calls
//| will return `None` until next report is received.
//| """ //| """
//| ... //| ...
//| //|
@ -219,25 +220,6 @@ STATIC mp_obj_t usb_hid_device_get_last_received_report(size_t n_args, const mp_
} }
MP_DEFINE_CONST_FUN_OBJ_KW(usb_hid_device_get_last_received_report_obj, 1, usb_hid_device_get_last_received_report); MP_DEFINE_CONST_FUN_OBJ_KW(usb_hid_device_get_last_received_report_obj, 1, usb_hid_device_get_last_received_report);
//| last_received_report: bytes
//| """The HID OUT report as a `bytes` (read-only). `None` if nothing received.
//| Same as `get_last_received_report()` with no argument.
//|
//| Deprecated: will be removed in CircutPython 8.0.0. Use `get_last_received_report()` instead.
//| """
//|
STATIC mp_obj_t usb_hid_device_obj_get_last_received_report_property(mp_obj_t self_in) {
usb_hid_device_obj_t *self = MP_OBJ_TO_PTR(self_in);
// Get the sole report_id, if there is one.
const uint8_t report_id = common_hal_usb_hid_device_validate_report_id(self, -1);
return common_hal_usb_hid_device_get_last_received_report(self, report_id);
}
MP_DEFINE_CONST_FUN_OBJ_1(usb_hid_device_get_last_received_report_property_obj, usb_hid_device_obj_get_last_received_report_property);
MP_PROPERTY_GETTER(usb_hid_device_last_received_report_obj,
(mp_obj_t)&usb_hid_device_get_last_received_report_property_obj);
//| usage_page: int //| usage_page: int
//| """The device usage page identifier, which designates a category of device. (read-only)""" //| """The device usage page identifier, which designates a category of device. (read-only)"""
//| //|
@ -269,7 +251,6 @@ MP_PROPERTY_GETTER(usb_hid_device_usage_obj,
STATIC const mp_rom_map_elem_t usb_hid_device_locals_dict_table[] = { STATIC const mp_rom_map_elem_t usb_hid_device_locals_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_send_report), MP_ROM_PTR(&usb_hid_device_send_report_obj) }, { MP_ROM_QSTR(MP_QSTR_send_report), MP_ROM_PTR(&usb_hid_device_send_report_obj) },
{ MP_ROM_QSTR(MP_QSTR_get_last_received_report), MP_ROM_PTR(&usb_hid_device_get_last_received_report_obj) }, { MP_ROM_QSTR(MP_QSTR_get_last_received_report), MP_ROM_PTR(&usb_hid_device_get_last_received_report_obj) },
{ MP_ROM_QSTR(MP_QSTR_last_received_report), MP_ROM_PTR(&usb_hid_device_last_received_report_obj) },
{ MP_ROM_QSTR(MP_QSTR_usage_page), MP_ROM_PTR(&usb_hid_device_usage_page_obj) }, { MP_ROM_QSTR(MP_QSTR_usage_page), MP_ROM_PTR(&usb_hid_device_usage_page_obj) },
{ MP_ROM_QSTR(MP_QSTR_usage), MP_ROM_PTR(&usb_hid_device_usage_obj) }, { MP_ROM_QSTR(MP_QSTR_usage), MP_ROM_PTR(&usb_hid_device_usage_obj) },

View File

@ -12,7 +12,7 @@
<h1><a href="/"><img src="/favicon.ico"/></a>&nbsp;Welcome!</h1> <h1><a href="/"><img src="/favicon.ico"/></a>&nbsp;Welcome!</h1>
<p>Welcome to CircuitPython's Web API. Go to the <a href="/fs/">file browser</a> to work with files in the CIRCUITPY drive. Go to the <a href="/cp/serial/">serial terminal</a> to see code output and interact with the REPL. Make sure you've set <code>CIRCUITPY_WEB_API_PASSWORD='somepassword'</code> in <code>/.env</code>. Provide the password when the browser prompts for it. <strong>Leave the username blank.</strong></p> <p>Welcome to CircuitPython's Web API. Go to the <a href="/fs/">file browser</a> to work with files in the CIRCUITPY drive. Go to the <a href="/code/">full code editor</a> for a more enriching experience which requires an active internet connection. Go to the <a href="/cp/serial/">serial terminal</a> to see code output and interact with the REPL. Make sure you've set <code>CIRCUITPY_WEB_API_PASSWORD='somepassword'</code> in <code>/.env</code>. Provide the password when the browser prompts for it. <strong>Leave the username blank.</strong></p>
<h2>Device Info:</h2> <h2>Device Info:</h2>

View File

@ -511,10 +511,10 @@ static void _reply_access_control(socketpool_socket_obj_t *socket, _request *req
"HTTP/1.1 204 No Content\r\n", "HTTP/1.1 204 No Content\r\n",
"Content-Length: 0\r\n", "Content-Length: 0\r\n",
"Access-Control-Expose-Headers: Access-Control-Allow-Methods\r\n", "Access-Control-Expose-Headers: Access-Control-Allow-Methods\r\n",
"Access-Control-Allow-Headers: X-Timestamp, Content-Type, Authorization\r\n", "Access-Control-Allow-Headers: X-Timestamp, X-Destination, Content-Type, Authorization\r\n",
"Access-Control-Allow-Methods:GET, OPTIONS", NULL); "Access-Control-Allow-Methods:GET, OPTIONS", NULL);
if (!_usb_active()) { if (!_usb_active()) {
_send_str(socket, ", PUT, DELETE"); _send_str(socket, ", PUT, DELETE, MOVE");
#if CIRCUITPY_USB_MSC #if CIRCUITPY_USB_MSC
usb_msc_unlock(); usb_msc_unlock();
#endif #endif

View File

@ -56,9 +56,12 @@ DEFAULT_CLUSTERLIST = {
"espressif_esp32s3_devkitc_1_n8r8", "espressif_esp32s3_devkitc_1_n8r8",
], ],
"0x303A:0x7009": ["espressif_esp32s2_devkitc_1_n4", "espressif_esp32s2_devkitc_1_n4r2"], "0x303A:0x7009": ["espressif_esp32s2_devkitc_1_n4", "espressif_esp32s2_devkitc_1_n4r2"],
"0x70010001:0x00100001": ["ai_thinker_esp32-c3s", "ai_thinker_esp32-c3s-2m"],
} }
cli_parser = argparse.ArgumentParser(description="USB VID/PID Duplicate Checker") cli_parser = argparse.ArgumentParser(
description="USB VID/PID and Creator/Creation ID Duplicate Checker"
)
def configboard_files(): def configboard_files():
@ -71,29 +74,38 @@ def configboard_files():
return working_dir.glob("ports/**/boards/**/mpconfigboard.mk") return working_dir.glob("ports/**/boards/**/mpconfigboard.mk")
VID_PATTERN = re.compile(r"^USB_VID\s*=\s*(.*)", flags=re.M)
PID_PATTERN = re.compile(r"^USB_PID\s*=\s*(.*)", flags=re.M)
CREATOR_PATTERN = re.compile(r"^CIRCUITPY_CREATOR_ID\s*=\s*(.*)", flags=re.M)
CREATION_PATTERN = re.compile(r"^CIRCUITPY_CREATION_ID\s*=\s*(.*)", flags=re.M)
def check_vid_pid(files, clusterlist): def check_vid_pid(files, clusterlist):
"""Compiles a list of USB VID & PID values for all boards, and checks """Compiles a list of USB VID & PID values for all boards, and checks
for duplicates. Exits with ``sys.exit()`` (non-zero exit code) for duplicates. Exits with ``sys.exit()`` (non-zero exit code)
if duplicates are found, and lists the duplicates. if duplicates are found, and lists the duplicates.
""" """
vid_pattern = re.compile(r"^USB_VID\s*=\s*(.*)", flags=re.M)
pid_pattern = re.compile(r"^USB_PID\s*=\s*(.*)", flags=re.M)
usb_pattern = re.compile(r"^CIRCUITPY_USB\s*=\s*0$|^IDF_TARGET = (esp32|esp32c3)$", flags=re.M) usb_pattern = re.compile(r"^CIRCUITPY_USB\s*=\s*0$|^IDF_TARGET = (esp32|esp32c3)$", flags=re.M)
usb_ids = defaultdict(set) usb_ids = defaultdict(set)
for board_config in files: for board_config in files:
src_text = board_config.read_text() src_text = board_config.read_text()
usb_vid = vid_pattern.search(src_text) usb_vid = VID_PATTERN.search(src_text)
usb_pid = pid_pattern.search(src_text) usb_pid = PID_PATTERN.search(src_text)
creator = CREATOR_PATTERN.search(src_text)
creation = CREATION_PATTERN.search(src_text)
non_usb = usb_pattern.search(src_text) non_usb = usb_pattern.search(src_text)
board_name = board_config.parts[-2] board_name = board_config.parts[-2]
if usb_vid and usb_pid: if usb_vid and usb_pid:
id_group = f"0x{int(usb_vid.group(1), 16):04X}:0x{int(usb_pid.group(1), 16):04X}" id_group = f"0x{int(usb_vid.group(1), 16):04X}:0x{int(usb_pid.group(1), 16):04X}"
elif non_usb: elif non_usb:
if creator is None or creation is None:
print(f"{board_name=} {creator=} {creation=}", file=sys.stderr)
continue continue
id_group = f"0x{int(creator.group(1), 16):08X}:0x{int(creation.group(1), 16):08X}"
else: else:
raise SystemExit(f"Could not find expected settings in {board_config}") raise SystemExit(f"Could not find expected settings in {board_config}")
@ -117,18 +129,19 @@ def check_vid_pid(files, clusterlist):
duplicate_message = ( duplicate_message = (
f"Duplicate VID/PID usage found!\n{duplicates}\n" f"Duplicate VID/PID usage found!\n{duplicates}\n"
f"If you are open source maker, then you can request a PID from http://pid.codes\n" f"If you are open source maker, then you can request a PID from http://pid.codes\n"
f"For boards without native USB, you can request a Creator ID from https://github.com/creationid/creators/\n"
f"Otherwise, companies should pay the USB-IF for a vendor ID: https://www.usb.org/getting-vendor-id" f"Otherwise, companies should pay the USB-IF for a vendor ID: https://www.usb.org/getting-vendor-id"
) )
sys.exit(duplicate_message) sys.exit(duplicate_message)
else: else:
print("No USB PID duplicates found.") print("No unexpected ID duplicates found.")
if __name__ == "__main__": if __name__ == "__main__":
arguments = cli_parser.parse_args() arguments = cli_parser.parse_args()
print("Running USB VID/PID Duplicate Checker...") print("Running USB VID/PID and Creator/Creation ID Duplicate Checker...")
board_files = configboard_files() board_files = configboard_files()
check_vid_pid(board_files, DEFAULT_CLUSTERLIST) check_vid_pid(board_files, DEFAULT_CLUSTERLIST)