Merging back with updated main files
This commit is contained in:
commit
6fe2ea4513
76
LICENSE
76
LICENSE
@ -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
|
||||
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
|
||||
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 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)
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
85
LICENSE_MicroPython
Normal file
85
LICENSE_MicroPython
Normal 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)
|
@ -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
|
||||
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
|
||||
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 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.
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
@ -141,7 +141,7 @@ statement will ensure hardware isn't enabled longer than needed.
|
||||
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
|
||||
different devices so read registers you know to make sure they match your
|
||||
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.
|
||||
|
||||
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
|
||||
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.
|
||||
@ -213,7 +213,7 @@ Example
|
||||
When adding extra functionality to CircuitPython to mimic what a normal
|
||||
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,
|
||||
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.
|
||||
That way when someone moves the code to CPython they know what parts need to be
|
||||
adapted.
|
||||
|
@ -48,7 +48,7 @@ Full Table of Contents
|
||||
../CONTRIBUTING
|
||||
../BUILDING
|
||||
../CODE_OF_CONDUCT
|
||||
../license.rst
|
||||
../docs/LICENSE
|
||||
../WEBUSB_README
|
||||
|
||||
Indices and tables
|
||||
|
@ -40,7 +40,6 @@ ALIASES_BY_BOARD = {
|
||||
"pybadge": ["edgebadge"],
|
||||
"pyportal": ["pyportal_pynt"],
|
||||
"gemma_m0": ["gemma_m0_pycon2018"],
|
||||
"pewpew10": ["pewpew13"],
|
||||
}
|
||||
|
||||
ALIASES_BRAND_NAMES = {
|
||||
@ -54,8 +53,6 @@ ALIASES_BRAND_NAMES = {
|
||||
"Adafruit PyPortal Pynt",
|
||||
"gemma_m0_pycon2018":
|
||||
"Adafruit Gemma M0 PyCon 2018",
|
||||
"pewpew13":
|
||||
"PewPew 13",
|
||||
}
|
||||
|
||||
ADDITIONAL_MODULES = {
|
||||
|
@ -138,7 +138,7 @@ root will be returned.
|
||||
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.
|
||||
|
||||
* `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:
|
||||
|
||||
@ -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
|
||||
|
||||
* `/favicon.ico` - Blinka
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit f993d5fac69f3a0cfa33988268666c462b72c0ec
|
||||
Subproject commit 9a8338b3bdaeac9eeb5b74d147107c67db33fdac
|
16
locale/ID.po
16
locale/ID.po
@ -404,14 +404,12 @@ msgstr "Alamat harus sepanjang %d byte"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1074,6 +1072,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1612,6 +1611,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2904,6 +2904,12 @@ msgstr ""
|
||||
msgid "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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr ""
|
||||
|
@ -2873,6 +2873,12 @@ msgstr ""
|
||||
msgid "error = 0x%08lX"
|
||||
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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr ""
|
||||
|
16
locale/cs.po
16
locale/cs.po
@ -405,14 +405,12 @@ msgstr "Adresa musí být %d bajtů dlouhá"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1074,6 +1072,7 @@ msgid "I2C init error"
|
||||
msgstr "Chyba inicializace I2C"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr "Periférie I2C je používána"
|
||||
|
||||
@ -1608,6 +1607,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2891,6 +2891,12 @@ msgstr ""
|
||||
msgid "error = 0x%08lX"
|
||||
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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr ""
|
||||
|
@ -407,14 +407,12 @@ msgstr "Die Adresse muss %d Bytes lang sein"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1084,6 +1082,7 @@ msgid "I2C init error"
|
||||
msgstr "I2C Initialisierungsfehler"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
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."
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr "Nur eine Adresse ist erlaubt"
|
||||
|
||||
@ -2956,6 +2956,12 @@ msgstr "epoch_time wird auf diesem Board nicht unterstützt"
|
||||
msgid "error = 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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
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)"
|
||||
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"
|
||||
#~ msgstr "Wifi Initialisierung ist fehlgeschlagen"
|
||||
|
||||
|
16
locale/el.po
16
locale/el.po
@ -398,12 +398,10 @@ msgstr ""
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/busio/I2C.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 ""
|
||||
|
||||
#: ports/espressif/common-hal/countio/Counter.c
|
||||
@ -1061,6 +1059,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1592,6 +1591,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2873,6 +2873,12 @@ msgstr ""
|
||||
msgid "error = 0x%08lX"
|
||||
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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr ""
|
||||
|
@ -408,14 +408,12 @@ msgstr "Address must be %d bytes long"
|
||||
msgid "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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1075,6 +1073,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "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."
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2910,6 +2910,12 @@ msgstr "epoch_time not supported on this board"
|
||||
msgid "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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr "exceptions must derive from BaseException"
|
||||
|
16
locale/es.po
16
locale/es.po
@ -407,14 +407,12 @@ msgstr "La dirección debe tener %d bytes de largo"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1083,6 +1081,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
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."
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2947,6 +2947,12 @@ msgstr "epoch_time no esta soportado en esta tarjeta"
|
||||
msgid "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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr "las excepciones deben derivar de BaseException"
|
||||
|
@ -401,14 +401,12 @@ msgstr "ang palette ay dapat 32 bytes ang haba"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1072,6 +1070,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1608,6 +1607,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2905,6 +2905,12 @@ msgstr ""
|
||||
msgid "error = 0x%08lX"
|
||||
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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr "ang mga exceptions ay dapat makuha mula sa BaseException"
|
||||
|
25
locale/fr.po
25
locale/fr.po
@ -8,14 +8,14 @@ msgstr ""
|
||||
"Project-Id-Version: 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2021-01-04 12:55-0600\n"
|
||||
"PO-Revision-Date: 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"
|
||||
"Language: fr\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.14-dev\n"
|
||||
"X-Generator: Weblate 4.14.1-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -410,14 +410,12 @@ msgstr "L'adresse doit être longue de %d octets"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1103,6 +1101,7 @@ msgid "I2C init error"
|
||||
msgstr "Erreur d'initialisation I2C"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
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."
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
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"
|
||||
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
|
||||
msgid "exceptions must derive from 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
|
||||
msgid "invalid setting"
|
||||
msgstr ""
|
||||
msgstr "réglage invalide"
|
||||
|
||||
#: shared-bindings/random/__init__.c
|
||||
msgid "invalid step"
|
||||
@ -4471,6 +4477,9 @@ 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 "All I2C targets are in use"
|
||||
#~ msgstr "Toutes les cibles I2C sont utilisées"
|
||||
|
||||
#~ msgid "Failed to init wifi"
|
||||
#~ msgstr "Echec de l'initialisation du Wifi"
|
||||
|
||||
|
16
locale/hi.po
16
locale/hi.po
@ -398,12 +398,10 @@ msgstr ""
|
||||
msgid "All CAN peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||
msgid "All I2C peripherals are in use"
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/busio/I2C.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 ""
|
||||
|
||||
#: ports/espressif/common-hal/countio/Counter.c
|
||||
@ -1061,6 +1059,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1592,6 +1591,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2873,6 +2873,12 @@ msgstr ""
|
||||
msgid "error = 0x%08lX"
|
||||
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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr ""
|
||||
|
@ -407,14 +407,12 @@ msgstr "L'indirizzo deve essere lungo %d byte"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1077,6 +1075,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1615,6 +1614,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2913,6 +2913,12 @@ msgstr ""
|
||||
msgid "error = 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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr "le eccezioni devono derivare da BaseException"
|
||||
|
16
locale/ja.po
16
locale/ja.po
@ -403,14 +403,12 @@ msgstr "アドレスは、%dバイト長でなければなりません"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1070,6 +1068,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1605,6 +1604,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2891,6 +2891,12 @@ msgstr ""
|
||||
msgid "error = 0x%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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr "例外はBaseExceptionから派生していなければなりません"
|
||||
|
16
locale/ko.po
16
locale/ko.po
@ -399,14 +399,12 @@ msgstr ""
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1064,6 +1062,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1595,6 +1594,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2877,6 +2877,12 @@ msgstr ""
|
||||
msgid "error = 0x%08lX"
|
||||
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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr ""
|
||||
|
16
locale/nl.po
16
locale/nl.po
@ -401,14 +401,12 @@ msgstr "Adres moet %d bytes lang zijn"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1070,6 +1068,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1609,6 +1608,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2906,6 +2906,12 @@ msgstr "epoch_time niet ondersteund op dit bord"
|
||||
msgid "error = 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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr "uitzonderingen moeten afleiden van BaseException"
|
||||
|
16
locale/pl.po
16
locale/pl.po
@ -403,14 +403,12 @@ msgstr "Adres musi mieć %d bajtów"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1070,6 +1068,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1603,6 +1602,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2885,6 +2885,12 @@ msgstr ""
|
||||
msgid "error = 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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr "wyjątki muszą dziedziczyć po BaseException"
|
||||
|
@ -411,14 +411,12 @@ msgstr "O endereço deve ter %d bytes de comprimento"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1092,6 +1090,7 @@ msgid "I2C init error"
|
||||
msgstr "Erro de inicialização do I2C"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
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."
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
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"
|
||||
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
|
||||
msgid "exceptions must derive from 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)"
|
||||
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"
|
||||
#~ msgstr "Houve uma falha ao iniciar o wifi"
|
||||
|
||||
|
16
locale/ru.po
16
locale/ru.po
@ -406,14 +406,12 @@ msgstr "Адрес должен быть длиной %d байт"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1090,6 +1088,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr "Периферийное устройство I2C уже используется"
|
||||
|
||||
@ -1634,6 +1633,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2922,6 +2922,12 @@ msgstr ""
|
||||
msgid "error = 0x%08lX"
|
||||
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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr ""
|
||||
|
19
locale/sv.po
19
locale/sv.po
@ -406,14 +406,12 @@ msgstr "Adressen måste vara %d byte lång"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1077,6 +1075,7 @@ msgid "I2C init error"
|
||||
msgstr "I2C-initieringsfel"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
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."
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr "Endast en adress är tillåten"
|
||||
|
||||
@ -2931,6 +2931,12 @@ msgstr "epoch_time stöds inte av detta kort"
|
||||
msgid "error = 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
|
||||
msgid "exceptions must derive from 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)"
|
||||
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"
|
||||
#~ msgstr "Kunde inte initiera WiFi"
|
||||
|
||||
|
42
locale/tr.po
42
locale/tr.po
@ -7,15 +7,15 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"PO-Revision-Date: 2022-08-14 12:14+0000\n"
|
||||
"Last-Translator: Can Kocyigit <cank3698@googlemail.com>\n"
|
||||
"PO-Revision-Date: 2022-08-29 18:20+0000\n"
|
||||
"Last-Translator: Boran Roni <boranroniurtekin@gmail.com>\n"
|
||||
"Language-Team: none\n"
|
||||
"Language: tr\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.14-dev\n"
|
||||
"X-Generator: Weblate 4.14.1-dev\n"
|
||||
|
||||
#: main.c
|
||||
msgid ""
|
||||
@ -118,11 +118,11 @@ msgstr "%q indeksleri integer olmalı, %s değil"
|
||||
|
||||
#: shared-module/bitbangio/SPI.c
|
||||
msgid "%q init failed"
|
||||
msgstr ""
|
||||
msgstr "%q init başarısız oldu"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q length must be %d"
|
||||
msgstr ""
|
||||
msgstr "%q boyutu %d olmalıdır"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q length must be %d-%d"
|
||||
@ -130,11 +130,11 @@ msgstr "%q boyutları %d-%d olmalıdır"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q length must be <= %d"
|
||||
msgstr ""
|
||||
msgstr "%q boyutu <= %d olmalıdır"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q length must be >= %d"
|
||||
msgstr ""
|
||||
msgstr "%q boyutu >= %d olmalıdır"
|
||||
|
||||
#: shared-bindings/busio/I2C.c
|
||||
msgid "%q length must be >= 1"
|
||||
@ -142,7 +142,7 @@ msgstr "%q boyutu >=1 olmalıdır"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q must be %d"
|
||||
msgstr ""
|
||||
msgstr "%q, %d olmalıdır"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q must be %d-%d"
|
||||
@ -150,7 +150,7 @@ msgstr "%q, %d-%d olmalıdır"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
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
|
||||
msgid "%q must be <= %d"
|
||||
@ -174,7 +174,7 @@ msgstr "%q bir string olmalıdır"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q must be an int"
|
||||
msgstr ""
|
||||
msgstr "%q bir tam sayı olmalıdır"
|
||||
|
||||
#: py/argcheck.c
|
||||
msgid "%q must be of type %q"
|
||||
@ -219,7 +219,7 @@ msgstr "%q, %q ve %q aynı uzunlukta olmalıdır"
|
||||
|
||||
#: py/objint.c
|
||||
msgid "%q=%q"
|
||||
msgstr ""
|
||||
msgstr "%q=%q"
|
||||
|
||||
#: ports/espressif/common-hal/espidf/__init__.c ports/espressif/esp_error.c
|
||||
#, c-format
|
||||
@ -316,7 +316,6 @@ msgid "'%s' object isn't subscriptable"
|
||||
msgstr "'%s' nesnesi subscriptable özelliğe sahip değil"
|
||||
|
||||
#: py/objstr.c
|
||||
#, fuzzy
|
||||
msgid "'=' alignment not allowed in string format specifier"
|
||||
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"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1078,6 +1075,7 @@ msgid "I2C init error"
|
||||
msgstr ""
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
msgstr ""
|
||||
|
||||
@ -1609,6 +1607,7 @@ msgid "Only one TouchAlarm can be set in deep sleep."
|
||||
msgstr ""
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
msgstr ""
|
||||
|
||||
@ -2893,6 +2892,12 @@ msgstr ""
|
||||
msgid "error = 0x%08lX"
|
||||
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
|
||||
msgid "exceptions must derive from BaseException"
|
||||
msgstr ""
|
||||
@ -4362,6 +4367,9 @@ msgstr ""
|
||||
msgid "zi must be of shape (n_section, 2)"
|
||||
msgstr ""
|
||||
|
||||
#~ msgid "All I2C targets are in use"
|
||||
#~ msgstr "Tüm I2C hedefleri kullanımda"
|
||||
|
||||
#~ msgid "%q must be a tuple of length 2"
|
||||
#~ msgstr "%q, boyutu 2 olan bir tuple olmalıdır"
|
||||
|
||||
|
@ -409,14 +409,12 @@ msgstr "dìzhǐ chángdù bìxū shì %d zìjié"
|
||||
msgid "All CAN peripherals are in use"
|
||||
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"
|
||||
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/frequencyio/FrequencyIn.c
|
||||
#: ports/espressif/common-hal/rotaryio/IncrementalEncoder.c
|
||||
@ -1082,6 +1080,7 @@ msgid "I2C init error"
|
||||
msgstr "I2C qǐdòng cuòwù"
|
||||
|
||||
#: ports/raspberrypi/common-hal/busio/I2C.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "I2C peripheral in use"
|
||||
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."
|
||||
|
||||
#: ports/espressif/common-hal/i2ctarget/I2CTarget.c
|
||||
#: ports/raspberrypi/common-hal/i2ctarget/I2CTarget.c
|
||||
msgid "Only one address is allowed"
|
||||
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"
|
||||
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
|
||||
msgid "exceptions must derive from 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)"
|
||||
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"
|
||||
#~ msgstr "Wúfǎ chūshǐhuà wifi"
|
||||
|
||||
|
@ -15,7 +15,7 @@ CIRCUITPY_MATH = 1
|
||||
CIRCUITPY_AUDIOIO = 1
|
||||
CIRCUITPY_ANALOGIO = 1
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
CIRCUITPY_KEYPPAD = 1
|
||||
CIRCUITPY_KEYPAD = 1
|
||||
|
||||
CIRCUITPY_PULSEIO = 0
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
|
@ -63,7 +63,7 @@
|
||||
//| """
|
||||
//| 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::
|
||||
|
@ -19,3 +19,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = qio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -13,3 +13,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -20,3 +20,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Register
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -17,3 +17,4 @@ CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 80m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -21,3 +21,4 @@ CIRCUITPY_ESP32_CAMERA = 0
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/mixgo_cp_lib/mixgoce_lib
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -21,3 +21,4 @@ CIRCUITPY_ESP32_CAMERA = 0
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Requests
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/mixgo_cp_lib/mixgoce_lib
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -18,3 +18,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
|
||||
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -18,3 +18,4 @@ CIRCUITPY_ESP_FLASH_SIZE = 8MB
|
||||
|
||||
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -15,3 +15,4 @@ CFLAGS += -DCFG_TUD_TASK_QUEUE_SZ=32
|
||||
CIRCUITPY_ESP_FLASH_MODE = dio
|
||||
CIRCUITPY_ESP_FLASH_FREQ = 40m
|
||||
CIRCUITPY_ESP_FLASH_SIZE = 4MB
|
||||
CIRCUITPY_ESP32_CAMERA = 0
|
||||
|
@ -34,6 +34,10 @@
|
||||
|
||||
#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) {
|
||||
if (pin) {
|
||||
claim_pin(pin);
|
||||
@ -57,6 +61,11 @@ void common_hal_esp32_camera_camera_construct(
|
||||
mp_int_t framebuffer_count,
|
||||
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++) {
|
||||
claim_pin_number(data_pins[i]);
|
||||
}
|
||||
|
@ -74,6 +74,11 @@ static void pulseout_event_handler(nrf_timer_event_t event_type, void *p_context
|
||||
nrfx_timer_pause(timer);
|
||||
|
||||
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.
|
||||
if (pulse_array_index >= pulse_array_length) {
|
||||
|
@ -1 +1 @@
|
||||
Subproject commit 426e46126b5a1efaea4544cdb71ab81b61983034
|
||||
Subproject commit 2e6142b15b8a75c1227dd3edbe839193b2bf9041
|
@ -41,7 +41,7 @@
|
||||
//| class SPIDevice:
|
||||
//| """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.
|
||||
|
@ -222,15 +222,16 @@ STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(busio_uart___exit___obj, 4, 4, busio_
|
||||
|
||||
//| def readline(self) -> bytes:
|
||||
//| """Read a line, ending in a newline character, or
|
||||
//| return None if a timeout occurs sooner, or
|
||||
//| return everything readable if no newline is found and timeout=0
|
||||
//| return ``None`` if a timeout occurs sooner, or
|
||||
//| return everything readable if no newline is found and
|
||||
//| ``timeout=0``
|
||||
//|
|
||||
//| :return: the line read
|
||||
//| :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.
|
||||
//|
|
||||
//| *New in CircuitPython 4.0:* ``buf`` must be bytes, not a string.
|
||||
|
@ -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]:
|
||||
//| """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
|
||||
//| for contemporary dates will not fit in a small integer.
|
||||
//| So the time fields return 946684800,
|
||||
|
@ -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);
|
||||
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;
|
||||
|
||||
common_hal_pulseio_pulsein_construct(self, pin, args[ARG_maxlen].u_int,
|
||||
|
@ -38,11 +38,20 @@
|
||||
|
||||
//| class SocketPool:
|
||||
//| """A pool of socket resources available for the given radio. Only one
|
||||
//| 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
|
||||
//| a pool of sockets provided by the underlying OS."""
|
||||
//| SocketPool should be used in place of CPython's socket which provides
|
||||
//| 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) {
|
||||
mp_arg_check_num(n_args, n_kw, 1, 1, false);
|
||||
|
@ -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);
|
||||
|
||||
//| 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.
|
||||
//| 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);
|
||||
|
||||
//| 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
|
||||
//| """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[] = {
|
||||
{ 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_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), MP_ROM_PTR(&usb_hid_device_usage_obj) },
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
|
||||
<h1><a href="/"><img src="/favicon.ico"/></a> 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>
|
||||
|
||||
|
@ -511,10 +511,10 @@ static void _reply_access_control(socketpool_socket_obj_t *socket, _request *req
|
||||
"HTTP/1.1 204 No Content\r\n",
|
||||
"Content-Length: 0\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);
|
||||
if (!_usb_active()) {
|
||||
_send_str(socket, ", PUT, DELETE");
|
||||
_send_str(socket, ", PUT, DELETE, MOVE");
|
||||
#if CIRCUITPY_USB_MSC
|
||||
usb_msc_unlock();
|
||||
#endif
|
||||
|
@ -56,9 +56,12 @@ DEFAULT_CLUSTERLIST = {
|
||||
"espressif_esp32s3_devkitc_1_n8r8",
|
||||
],
|
||||
"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():
|
||||
@ -71,29 +74,38 @@ def configboard_files():
|
||||
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):
|
||||
"""Compiles a list of USB VID & PID values for all boards, and checks
|
||||
for duplicates. Exits with ``sys.exit()`` (non-zero exit code)
|
||||
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_ids = defaultdict(set)
|
||||
for board_config in files:
|
||||
src_text = board_config.read_text()
|
||||
|
||||
usb_vid = vid_pattern.search(src_text)
|
||||
usb_pid = pid_pattern.search(src_text)
|
||||
usb_vid = VID_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)
|
||||
board_name = board_config.parts[-2]
|
||||
|
||||
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}"
|
||||
elif non_usb:
|
||||
continue
|
||||
if creator is None or creation is None:
|
||||
print(f"{board_name=} {creator=} {creation=}", file=sys.stderr)
|
||||
continue
|
||||
id_group = f"0x{int(creator.group(1), 16):08X}:0x{int(creation.group(1), 16):08X}"
|
||||
else:
|
||||
raise SystemExit(f"Could not find expected settings in {board_config}")
|
||||
|
||||
@ -117,18 +129,19 @@ def check_vid_pid(files, clusterlist):
|
||||
duplicate_message = (
|
||||
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"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"
|
||||
)
|
||||
sys.exit(duplicate_message)
|
||||
|
||||
else:
|
||||
print("No USB PID duplicates found.")
|
||||
print("No unexpected ID duplicates found.")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
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()
|
||||
check_vid_pid(board_files, DEFAULT_CLUSTERLIST)
|
||||
|
Loading…
x
Reference in New Issue
Block a user