Merge remote-tracking branch 'upstream/master' into stm32-meowbit
This commit is contained in:
commit
b0a5e81c46
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@ -140,6 +140,7 @@ jobs:
|
|||||||
- "robohatmm1_m4"
|
- "robohatmm1_m4"
|
||||||
- "sam32"
|
- "sam32"
|
||||||
- "serpente"
|
- "serpente"
|
||||||
|
- "shirtty"
|
||||||
- "snekboard"
|
- "snekboard"
|
||||||
- "sparkfun_lumidrive"
|
- "sparkfun_lumidrive"
|
||||||
- "sparkfun_nrf52840_mini"
|
- "sparkfun_nrf52840_mini"
|
||||||
@ -168,7 +169,8 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
sudo apt-get install -y gettext
|
sudo apt-get install -y gettext
|
||||||
pip install requests sh click setuptools awscli
|
pip install requests sh click setuptools awscli
|
||||||
wget https://s3.amazonaws.com/adafruit-circuit-python/gcc-arm-embedded_7-2018q2-1~xenial1_amd64.deb && sudo dpkg -i gcc-arm-embedded*_amd64.deb
|
wget https://developer.arm.com/-/media/Files/downloads/gnu-rm/9-2019q4/RC2.1/gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
|
||||||
|
sudo tar -C /usr --strip-components=1 -xaf gcc-arm-none-eabi-9-2019-q4-major-x86_64-linux.tar.bz2
|
||||||
- name: Versions
|
- name: Versions
|
||||||
run: |
|
run: |
|
||||||
gcc --version
|
gcc --version
|
||||||
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -76,7 +76,8 @@
|
|||||||
[submodule "lib/tinyusb"]
|
[submodule "lib/tinyusb"]
|
||||||
path = lib/tinyusb
|
path = lib/tinyusb
|
||||||
url = https://github.com/hathach/tinyusb.git
|
url = https://github.com/hathach/tinyusb.git
|
||||||
branch = develop
|
branch = master
|
||||||
|
fetchRecurseSubmodules = false
|
||||||
[submodule "tools/huffman"]
|
[submodule "tools/huffman"]
|
||||||
path = tools/huffman
|
path = tools/huffman
|
||||||
url = https://github.com/tannewt/huffman.git
|
url = https://github.com/tannewt/huffman.git
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include "tick.h"
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
//#include "Ethernet/socket.h"
|
//#include "Ethernet/socket.h"
|
||||||
//#include "Internet/DNS/dns.h"
|
//#include "Internet/DNS/dns.h"
|
||||||
@ -125,7 +125,7 @@ uint16_t DNS_MSGID; // DNS message ID
|
|||||||
|
|
||||||
|
|
||||||
uint32_t HAL_GetTick(void) {
|
uint32_t HAL_GetTick(void) {
|
||||||
return ticks_ms;
|
return supervisor_ticks_ms32();
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t hal_sys_tick;
|
uint32_t hal_sys_tick;
|
||||||
|
195
locale/ID.po
195
locale/ID.po
@ -8,7 +8,7 @@ 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"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -488,11 +488,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Tidak dapat menginisialisasi UART"
|
msgstr "Tidak dapat menginisialisasi UART"
|
||||||
@ -587,11 +582,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -601,15 +591,6 @@ msgstr ""
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr "Gagal untuk mendapatkan mutex, status: 0x%08lX"
|
msgstr "Gagal untuk mendapatkan mutex, status: 0x%08lX"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr "Gagal untuk mengalokasikan buffer RX"
|
msgstr "Gagal untuk mengalokasikan buffer RX"
|
||||||
@ -620,10 +601,6 @@ msgstr "Gagal untuk mengalokasikan buffer RX"
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr "Gagal untuk megalokasikan buffer RX dari %d byte"
|
msgstr "Gagal untuk megalokasikan buffer RX dari %d byte"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -632,96 +609,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr "Gagal untuk menemukan layanan, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr "Gagal untuk mendapatkan alamat lokal, error: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr "Gagal untuk mendapatkan status softdevice, error: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr "Gagal untuk menulis nilai gatts, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr "Gagal untuk menambahkan Vendor Spesific UUID, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr "Gagal untuk melepaskan mutex, status: 0x%08lX"
|
msgstr "Gagal untuk melepaskan mutex, status: 0x%08lX"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr "Gagal untuk melakukan scanning, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr "Gagal untuk menulis nilai atribut, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr "Gagal untuk menulis nilai gatts, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -784,6 +676,14 @@ msgstr ""
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1138,7 +1038,7 @@ msgid "Running in safe mode! Not running saved code.\n"
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Berjalan di mode aman(safe mode)! tidak menjalankan kode yang tersimpan.\n"
|
"Berjalan di mode aman(safe mode)! tidak menjalankan kode yang tersimpan.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr "SDA atau SCL membutuhkan pull up"
|
msgstr "SDA atau SCL membutuhkan pull up"
|
||||||
|
|
||||||
@ -1323,11 +1223,32 @@ msgstr ""
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Baudrate tidak didukung"
|
msgstr "Baudrate tidak didukung"
|
||||||
@ -2533,12 +2454,8 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -2765,7 +2682,7 @@ msgstr ""
|
|||||||
#~ msgid "Failed to acquire mutex"
|
#~ msgid "Failed to acquire mutex"
|
||||||
#~ msgstr "Gagal untuk mendapatkan mutex, status: 0x%08lX"
|
#~ msgstr "Gagal untuk mendapatkan mutex, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk menambahkan karakteristik, status: 0x%08lX"
|
#~ msgstr "Gagal untuk menambahkan karakteristik, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2773,7 +2690,7 @@ msgstr ""
|
|||||||
#~ msgid "Failed to add service"
|
#~ msgid "Failed to add service"
|
||||||
#~ msgstr "Gagal untuk menambahkan layanan, status: 0x%08lX"
|
#~ msgstr "Gagal untuk menambahkan layanan, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add service, err 0x%04x"
|
#~ msgid "Failed to add service, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk menambahkan layanan, status: 0x%08lX"
|
#~ msgstr "Gagal untuk menambahkan layanan, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2789,7 +2706,7 @@ msgstr ""
|
|||||||
#~ msgid "Failed to continue scanning"
|
#~ msgid "Failed to continue scanning"
|
||||||
#~ msgstr "Gagal untuk melanjutkan scanning, status: 0x%08lX"
|
#~ msgstr "Gagal untuk melanjutkan scanning, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk melanjutkan scanning, status: 0x%08lX"
|
#~ msgstr "Gagal untuk melanjutkan scanning, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2797,14 +2714,38 @@ msgstr ""
|
|||||||
#~ msgid "Failed to create mutex"
|
#~ msgid "Failed to create mutex"
|
||||||
#~ msgstr "Gagal untuk membuat mutex, status: 0x%08lX"
|
#~ msgstr "Gagal untuk membuat mutex, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to discover services"
|
||||||
|
#~ msgstr "Gagal untuk menemukan layanan, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to get local address"
|
||||||
|
#~ msgstr "Gagal untuk mendapatkan alamat lokal, error: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to get softdevice state"
|
||||||
|
#~ msgstr "Gagal untuk mendapatkan status softdevice, error: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Gagal untuk melaporkan nilai atribut, status: 0x%08lX"
|
#~ msgstr "Gagal untuk melaporkan nilai atribut, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
|
#~ msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX"
|
#~ msgstr "Gagal untuk membaca nilai atribut, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Gagal untuk menulis nilai gatts, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
|
#~ msgstr "Gagal untuk menambahkan Vendor Spesific UUID, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to release mutex"
|
#~ msgid "Failed to release mutex"
|
||||||
#~ msgstr "Gagal untuk melepaskan mutex, status: 0x%08lX"
|
#~ msgstr "Gagal untuk melepaskan mutex, status: 0x%08lX"
|
||||||
@ -2813,7 +2754,7 @@ msgstr ""
|
|||||||
#~ msgid "Failed to start advertising"
|
#~ msgid "Failed to start advertising"
|
||||||
#~ msgstr "Gagal untuk memulai advertisement, status: 0x%08lX"
|
#~ msgstr "Gagal untuk memulai advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk memulai advertisement, status: 0x%08lX"
|
#~ msgstr "Gagal untuk memulai advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2821,14 +2762,26 @@ msgstr ""
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Gagal untuk melakukan scanning, status: 0x%08lX"
|
#~ msgstr "Gagal untuk melakukan scanning, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
|
#~ msgstr "Gagal untuk melakukan scanning, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising"
|
#~ msgid "Failed to stop advertising"
|
||||||
#~ msgstr "Gagal untuk memberhentikan advertisement, status: 0x%08lX"
|
#~ msgstr "Gagal untuk memberhentikan advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Gagal untuk memberhentikan advertisement, status: 0x%08lX"
|
#~ msgstr "Gagal untuk memberhentikan advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Gagal untuk menulis nilai atribut, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Gagal untuk menulis nilai gatts, status: 0x%08lX"
|
||||||
|
|
||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "GPIO16 tidak mendukung pull up"
|
#~ msgstr "GPIO16 tidak mendukung pull up"
|
||||||
|
|
||||||
@ -2878,7 +2831,7 @@ msgstr ""
|
|||||||
#~ msgid "STA required"
|
#~ msgid "STA required"
|
||||||
#~ msgstr "STA dibutuhkan"
|
#~ msgstr "STA dibutuhkan"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||||
#~ msgstr "Dukungan soft device, id: 0x%08lX, pc: 0x%08l"
|
#~ msgstr "Dukungan soft device, id: 0x%08lX, pc: 0x%08l"
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ 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"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
@ -478,11 +478,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -576,11 +571,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -590,15 +580,6 @@ msgstr ""
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -609,10 +590,6 @@ msgstr ""
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -621,93 +598,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -770,6 +665,14 @@ msgstr ""
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1119,7 +1022,7 @@ msgstr ""
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1301,11 +1204,32 @@ msgstr ""
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2499,12 +2423,8 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
|
200
locale/de_DE.po
200
locale/de_DE.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||||
"Last-Translator: Pascal Deneaux\n"
|
"Last-Translator: Pascal Deneaux\n"
|
||||||
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
|
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
|
||||||
@ -482,11 +482,6 @@ msgstr "Beschädigte .mpy Datei"
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr "Beschädigter raw code"
|
msgstr "Beschädigter raw code"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr "Konnte ble_uuid nicht decodieren. Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Konnte UART nicht initialisieren"
|
msgstr "Konnte UART nicht initialisieren"
|
||||||
@ -580,11 +575,6 @@ msgstr "Erwartet eine Adresse"
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr "Habe ein Tupel der Länge %d erwartet aber %d erhalten"
|
msgstr "Habe ein Tupel der Länge %d erwartet aber %d erhalten"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr "Kommando nicht gesendet."
|
msgstr "Kommando nicht gesendet."
|
||||||
@ -594,15 +584,6 @@ msgstr "Kommando nicht gesendet."
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr "Mutex konnte nicht akquiriert werden. Status: 0x%04x"
|
msgstr "Mutex konnte nicht akquiriert werden. Status: 0x%04x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr "Deskriptor konnte nicht hinzugefügt werden. Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr "Konnte keinen RX Buffer allozieren"
|
msgstr "Konnte keinen RX Buffer allozieren"
|
||||||
@ -613,10 +594,6 @@ msgstr "Konnte keinen RX Buffer allozieren"
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr "Konnte keine RX Buffer mit %d allozieren"
|
msgstr "Konnte keine RX Buffer mit %d allozieren"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -625,93 +602,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr "Verbindung nicht erfolgreich: timeout"
|
msgstr "Verbindung nicht erfolgreich: timeout"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr "Es konnten keine Dienste gefunden werden"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr "Lokale Adresse konnte nicht abgerufen werden"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr "Fehler beim Abrufen des Softdevice-Status"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr "Koppeln fehlgeschlagen"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr "Kann CCCD value nicht lesen. Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr "Kann Attributwert nicht lesen, Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr "gatts value konnte nicht gelesen werden. Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr "Kann keine herstellerspezifische UUID hinzufügen. Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr "Mutex konnte nicht freigegeben werden. Status: 0x%04x"
|
msgstr "Mutex konnte nicht freigegeben werden. Status: 0x%04x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr "Verbindung konnte nicht hergestellt werden. Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr "Der Scanvorgang kann nicht gestartet werden. Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr "Konnte CCCD nicht schreiben, Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr "Kann den Attributwert nicht schreiben. Status: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr "gatts value konnte nicht geschrieben werden. Status: 0x%04x"
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr "Datei existiert"
|
msgstr "Datei existiert"
|
||||||
@ -736,7 +631,9 @@ msgstr ""
|
|||||||
|
|
||||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||||
msgid "Frequency captured is above capability. Capture Paused."
|
msgid "Frequency captured is above capability. Capture Paused."
|
||||||
msgstr "Die aufgezeichnete Frequenz liegt über der Leistungsgrenze. Aufnahme angehalten."
|
msgstr ""
|
||||||
|
"Die aufgezeichnete Frequenz liegt über der Leistungsgrenze. Aufnahme "
|
||||||
|
"angehalten."
|
||||||
|
|
||||||
#: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c
|
#: shared-bindings/bitbangio/I2C.c shared-bindings/bitbangio/SPI.c
|
||||||
#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c
|
#: shared-bindings/busio/I2C.c shared-bindings/busio/SPI.c
|
||||||
@ -776,6 +673,14 @@ msgstr "Inkorrekte Puffergröße"
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr "Eingabe-/Ausgabefehler"
|
msgstr "Eingabe-/Ausgabefehler"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1140,7 +1045,7 @@ msgstr "Sicherheitsmodus aktiv! Automatisches Neuladen ist deaktiviert.\n"
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr "Sicherheitsmodus aktiv! Gespeicherter Code wird nicht ausgeführt\n"
|
msgstr "Sicherheitsmodus aktiv! Gespeicherter Code wird nicht ausgeführt\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr "SDA oder SCL brauchen pull up"
|
msgstr "SDA oder SCL brauchen pull up"
|
||||||
|
|
||||||
@ -1336,6 +1241,21 @@ msgstr "Schreiben in nvm nicht möglich."
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr "Unerwarteter nrfx uuid-Typ"
|
msgstr "Unerwarteter nrfx uuid-Typ"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
@ -1343,6 +1263,12 @@ msgstr ""
|
|||||||
"Nicht übereinstimmende Anzahl von Elementen auf der rechten Seite (erwartet "
|
"Nicht übereinstimmende Anzahl von Elementen auf der rechten Seite (erwartet "
|
||||||
"%d, %d erhalten)."
|
"%d, %d erhalten)."
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Baudrate wird nicht unterstützt"
|
msgstr "Baudrate wird nicht unterstützt"
|
||||||
@ -2558,12 +2484,8 @@ msgstr "threshold muss im Intervall 0-65536 liegen"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -2794,6 +2716,9 @@ msgstr ""
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "Characteristic wird bereits von einem anderen Dienst verwendet."
|
#~ msgstr "Characteristic wird bereits von einem anderen Dienst verwendet."
|
||||||
|
|
||||||
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
|
#~ msgstr "Konnte ble_uuid nicht decodieren. Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Data too large for the advertisement packet"
|
#~ msgid "Data too large for the advertisement packet"
|
||||||
#~ msgstr "Daten sind zu groß für das advertisement packet"
|
#~ msgstr "Daten sind zu groß für das advertisement packet"
|
||||||
|
|
||||||
@ -2816,14 +2741,15 @@ msgstr ""
|
|||||||
#~ msgid "Failed to acquire mutex"
|
#~ msgid "Failed to acquire mutex"
|
||||||
#~ msgstr "Akquirieren des Mutex gescheitert"
|
#~ msgstr "Akquirieren des Mutex gescheitert"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Hinzufügen des Characteristic ist gescheitert. Status: 0x%04x"
|
#~ msgstr "Hinzufügen des Characteristic ist gescheitert. Status: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to add descriptor, err 0x%04x"
|
||||||
|
#~ msgstr "Deskriptor konnte nicht hinzugefügt werden. Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to add service"
|
#~ msgid "Failed to add service"
|
||||||
#~ msgstr "Dienst konnte nicht hinzugefügt werden"
|
#~ msgstr "Dienst konnte nicht hinzugefügt werden"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to add service, err 0x%04x"
|
#~ msgid "Failed to add service, err 0x%04x"
|
||||||
#~ msgstr "Dienst konnte nicht hinzugefügt werden. Status: 0x%04x"
|
#~ msgstr "Dienst konnte nicht hinzugefügt werden. Status: 0x%04x"
|
||||||
|
|
||||||
@ -2836,47 +2762,81 @@ msgstr ""
|
|||||||
#~ msgid "Failed to continue scanning"
|
#~ msgid "Failed to continue scanning"
|
||||||
#~ msgstr "Der Scanvorgang kann nicht fortgesetzt werden"
|
#~ msgstr "Der Scanvorgang kann nicht fortgesetzt werden"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "Der Scanvorgang kann nicht fortgesetzt werden. Status: 0x%04x"
|
#~ msgstr "Der Scanvorgang kann nicht fortgesetzt werden. Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to create mutex"
|
#~ msgid "Failed to create mutex"
|
||||||
#~ msgstr "Erstellen des Mutex ist fehlgeschlagen"
|
#~ msgstr "Erstellen des Mutex ist fehlgeschlagen"
|
||||||
|
|
||||||
|
#~ msgid "Failed to discover services"
|
||||||
|
#~ msgstr "Es konnten keine Dienste gefunden werden"
|
||||||
|
|
||||||
|
#~ msgid "Failed to get local address"
|
||||||
|
#~ msgstr "Lokale Adresse konnte nicht abgerufen werden"
|
||||||
|
|
||||||
|
#~ msgid "Failed to get softdevice state"
|
||||||
|
#~ msgstr "Fehler beim Abrufen des Softdevice-Status"
|
||||||
|
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Kann den Attributwert nicht mitteilen. Status: 0x%04x"
|
#~ msgstr "Kann den Attributwert nicht mitteilen. Status: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to pair"
|
||||||
|
#~ msgstr "Koppeln fehlgeschlagen"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
|
#~ msgstr "Kann CCCD value nicht lesen. Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Kann den Attributwert nicht lesen. Status: 0x%04x"
|
#~ msgstr "Kann den Attributwert nicht lesen. Status: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Kann Attributwert nicht lesen, Status: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "gatts value konnte nicht gelesen werden. Status: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
|
#~ msgstr "Kann keine herstellerspezifische UUID hinzufügen. Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to release mutex"
|
#~ msgid "Failed to release mutex"
|
||||||
#~ msgstr "Loslassen des Mutex gescheitert"
|
#~ msgstr "Loslassen des Mutex gescheitert"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to set device name, err 0x%04x"
|
#~ msgid "Failed to set device name, err 0x%04x"
|
||||||
#~ msgstr "Gerätename konnte nicht gesetzt werden, Status: 0x%04x"
|
#~ msgstr "Gerätename konnte nicht gesetzt werden, Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to start advertising"
|
#~ msgid "Failed to start advertising"
|
||||||
#~ msgstr "Kann advertisement nicht starten"
|
#~ msgstr "Kann advertisement nicht starten"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Kann advertisement nicht starten. Status: 0x%04x"
|
#~ msgstr "Kann advertisement nicht starten. Status: 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
#~ msgid "Failed to start connecting, error 0x%04x"
|
||||||
|
#~ msgstr "Verbindung konnte nicht hergestellt werden. Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to start pairing, error 0x%04x"
|
#~ msgid "Failed to start pairing, error 0x%04x"
|
||||||
#~ msgstr "Starten des Koppelns fehlgeschlagen, Status: 0x%04x"
|
#~ msgstr "Starten des Koppelns fehlgeschlagen, Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Der Scanvorgang kann nicht gestartet werden"
|
#~ msgstr "Der Scanvorgang kann nicht gestartet werden"
|
||||||
|
|
||||||
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
|
#~ msgstr "Der Scanvorgang kann nicht gestartet werden. Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to stop advertising"
|
#~ msgid "Failed to stop advertising"
|
||||||
#~ msgstr "Kann advertisement nicht stoppen"
|
#~ msgstr "Kann advertisement nicht stoppen"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Kann advertisement nicht stoppen. Status: 0x%04x"
|
#~ msgstr "Kann advertisement nicht stoppen. Status: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write CCCD, err 0x%04x"
|
||||||
|
#~ msgstr "Konnte CCCD nicht schreiben, Status: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Kann den Attributwert nicht schreiben. Status: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "gatts value konnte nicht geschrieben werden. Status: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Function requires lock."
|
#~ msgid "Function requires lock."
|
||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde"
|
#~ "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde"
|
||||||
|
144
locale/en_US.po
144
locale/en_US.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -478,11 +478,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -576,11 +571,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -590,15 +580,6 @@ msgstr ""
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -609,10 +590,6 @@ msgstr ""
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -621,93 +598,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -770,6 +665,14 @@ msgstr ""
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1119,7 +1022,7 @@ msgstr ""
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1301,11 +1204,32 @@ msgstr ""
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2499,12 +2423,8 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: @sommersoft, @MrCertainly\n"
|
"Language-Team: @sommersoft, @MrCertainly\n"
|
||||||
@ -482,11 +482,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -580,11 +575,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -594,15 +584,6 @@ msgstr ""
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -613,10 +594,6 @@ msgstr ""
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -625,93 +602,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -774,6 +669,14 @@ msgstr ""
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1123,7 +1026,7 @@ msgstr "Runnin' in safe mode! Auto-reload be off.\n"
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr "Runnin' in safe mode! Nay runnin' saved code.\n"
|
msgstr "Runnin' in safe mode! Nay runnin' saved code.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
@ -1305,11 +1208,32 @@ msgstr ""
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -2503,12 +2427,8 @@ msgstr ""
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
|
198
locale/es.po
198
locale/es.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-08-24 22:56-0500\n"
|
"PO-Revision-Date: 2018-08-24 22:56-0500\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -486,11 +486,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr "No se puede descodificar ble_uuid, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "No se puede inicializar la UART"
|
msgstr "No se puede inicializar la UART"
|
||||||
@ -584,11 +579,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr "Se esperaba un tuple de %d, se obtuvo %d"
|
msgstr "Se esperaba un tuple de %d, se obtuvo %d"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr "Fallo enviando comando"
|
msgstr "Fallo enviando comando"
|
||||||
@ -598,15 +588,6 @@ msgstr "Fallo enviando comando"
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr "No se puede adquirir el mutex, status: 0x%08lX"
|
msgstr "No se puede adquirir el mutex, status: 0x%08lX"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr "Ha fallado la asignación del buffer RX"
|
msgstr "Ha fallado la asignación del buffer RX"
|
||||||
@ -617,10 +598,6 @@ msgstr "Ha fallado la asignación del buffer RX"
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr "Falló la asignación del buffer RX de %d bytes"
|
msgstr "Falló la asignación del buffer RX de %d bytes"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -629,94 +606,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr "No se puede descubrir servicios"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr "No se puede obtener la dirección local"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr "No se puede obtener el estado del softdevice"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr "Error al notificar o indicar el valor del atributo, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr "No se puede leer el valor del atributo. err 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr "Error al leer valor del atributo, err 0x%04"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr "No se puede escribir el valor del atributo. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr "Fallo al registrar el Vendor-Specific UUID, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr "No se puede liberar el mutex, err 0x%04x"
|
msgstr "No se puede liberar el mutex, err 0x%04x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr "No se puede iniciar el escaneo. err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr "El archivo ya existe"
|
msgstr "El archivo ya existe"
|
||||||
@ -781,6 +675,14 @@ msgstr "Tamaño incorrecto del buffer"
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr "error Input/output"
|
msgstr "error Input/output"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1145,7 +1047,7 @@ msgstr "Ejecutando en modo seguro! La auto-recarga esta deshabilitada.\n"
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr "Ejecutando en modo seguro! No se esta ejecutando el código guardado.\n"
|
msgstr "Ejecutando en modo seguro! No se esta ejecutando el código guardado.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr "SDA o SCL necesitan una pull up"
|
msgstr "SDA o SCL necesitan una pull up"
|
||||||
|
|
||||||
@ -1339,11 +1241,32 @@ msgstr "Imposible escribir en nvm"
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr "Tipo de uuid nrfx inesperado"
|
msgstr "Tipo de uuid nrfx inesperado"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr "Número incomparable de elementos en RHS (%d esperado,%d obtenido)"
|
msgstr "Número incomparable de elementos en RHS (%d esperado,%d obtenido)"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Baudrate no soportado"
|
msgstr "Baudrate no soportado"
|
||||||
@ -2564,13 +2487,9 @@ msgstr "limite debe ser en el rango 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() toma un sequencio 9"
|
msgstr "time.struct_time() toma un sequencio 9"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() acepta exactamente 1 argumento"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "timepo muerto >100 (unidades en segundos)"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
msgid "timeout must be >= 0.0"
|
msgid "timeout must be >= 0.0"
|
||||||
@ -2795,6 +2714,9 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "Características ya esta en uso por otro Serivice"
|
#~ msgstr "Características ya esta en uso por otro Serivice"
|
||||||
|
|
||||||
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
|
#~ msgstr "No se puede descodificar ble_uuid, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Data too large for the advertisement packet"
|
#~ msgid "Data too large for the advertisement packet"
|
||||||
#~ msgstr "Los datos no caben en el paquete de anuncio."
|
#~ msgstr "Los datos no caben en el paquete de anuncio."
|
||||||
@ -2815,7 +2737,7 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to acquire mutex"
|
#~ msgid "Failed to acquire mutex"
|
||||||
#~ msgstr "No se puede adquirir el mutex, status: 0x%08lX"
|
#~ msgstr "No se puede adquirir el mutex, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Fallo al añadir caracteristica, err: 0x%08lX"
|
#~ msgstr "Fallo al añadir caracteristica, err: 0x%08lX"
|
||||||
|
|
||||||
@ -2823,7 +2745,6 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to add service"
|
#~ msgid "Failed to add service"
|
||||||
#~ msgstr "No se puede detener el anuncio. status: 0x%02x"
|
#~ msgstr "No se puede detener el anuncio. status: 0x%02x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to add service, err 0x%04x"
|
#~ msgid "Failed to add service, err 0x%04x"
|
||||||
#~ msgstr "Fallo al agregar servicio. err: 0x%02x"
|
#~ msgstr "Fallo al agregar servicio. err: 0x%02x"
|
||||||
|
|
||||||
@ -2838,7 +2759,6 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to continue scanning"
|
#~ msgid "Failed to continue scanning"
|
||||||
#~ msgstr "No se puede iniciar el escaneo. status: 0x%02x"
|
#~ msgstr "No se puede iniciar el escaneo. status: 0x%02x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "No se puede iniciar el escaneo. err: 0x%02x"
|
#~ msgstr "No se puede iniciar el escaneo. err: 0x%02x"
|
||||||
|
|
||||||
@ -2846,14 +2766,40 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to create mutex"
|
#~ msgid "Failed to create mutex"
|
||||||
#~ msgstr "No se puede leer el valor del atributo. status 0x%02x"
|
#~ msgstr "No se puede leer el valor del atributo. status 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to discover services"
|
||||||
|
#~ msgstr "No se puede descubrir servicios"
|
||||||
|
|
||||||
|
#~ msgid "Failed to get local address"
|
||||||
|
#~ msgstr "No se puede obtener la dirección local"
|
||||||
|
|
||||||
|
#~ msgid "Failed to get softdevice state"
|
||||||
|
#~ msgstr "No se puede obtener el estado del softdevice"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "No se puede notificar el valor del anuncio. status: 0x%02x"
|
#~ msgstr "No se puede notificar el valor del anuncio. status: 0x%02x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Error al notificar o indicar el valor del atributo, err 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
|
#~ msgstr "No se puede leer el valor del atributo. err 0x%02x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "No se puede leer el valor del atributo. status 0x%02x"
|
#~ msgstr "No se puede leer el valor del atributo. status 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Error al leer valor del atributo, err 0x%04"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "No se puede escribir el valor del atributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
|
#~ msgstr "Fallo al registrar el Vendor-Specific UUID, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to release mutex"
|
#~ msgid "Failed to release mutex"
|
||||||
#~ msgstr "No se puede liberar el mutex, status: 0x%08lX"
|
#~ msgstr "No se puede liberar el mutex, status: 0x%08lX"
|
||||||
@ -2862,7 +2808,6 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to start advertising"
|
#~ msgid "Failed to start advertising"
|
||||||
#~ msgstr "No se puede inicar el anuncio. status: 0x%02x"
|
#~ msgstr "No se puede inicar el anuncio. status: 0x%02x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "No se puede inicar el anuncio. err: 0x%04x"
|
#~ msgstr "No se puede inicar el anuncio. err: 0x%04x"
|
||||||
|
|
||||||
@ -2870,14 +2815,22 @@ msgstr "paso cero"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "No se puede iniciar el escaneo. status: 0x%02x"
|
#~ msgstr "No se puede iniciar el escaneo. status: 0x%02x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
|
#~ msgstr "No se puede iniciar el escaneo. err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising"
|
#~ msgid "Failed to stop advertising"
|
||||||
#~ msgstr "No se puede detener el anuncio. status: 0x%02x"
|
#~ msgstr "No se puede detener el anuncio. status: 0x%02x"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "No se puede detener el anuncio. err: 0x%04x"
|
#~ msgstr "No se puede detener el anuncio. err: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "No se puede escribir el valor del atributo. err: 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Function requires lock."
|
#~ msgid "Function requires lock."
|
||||||
#~ msgstr "La función requiere lock"
|
#~ msgstr "La función requiere lock"
|
||||||
|
|
||||||
@ -2952,7 +2905,6 @@ msgstr "paso cero"
|
|||||||
#~ msgid "STA required"
|
#~ msgid "STA required"
|
||||||
#~ msgstr "STA requerido"
|
#~ msgstr "STA requerido"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||||
#~ msgstr "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
#~ msgstr "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||||
|
|
||||||
@ -3075,6 +3027,12 @@ msgstr "paso cero"
|
|||||||
#~ msgid "tile index out of bounds"
|
#~ msgid "tile index out of bounds"
|
||||||
#~ msgstr "el indice del tile fuera de limite"
|
#~ msgstr "el indice del tile fuera de limite"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() acepta exactamente 1 argumento"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "timepo muerto >100 (unidades en segundos)"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "muchos argumentos"
|
#~ msgstr "muchos argumentos"
|
||||||
|
|
||||||
|
202
locale/fil.po
202
locale/fil.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
||||||
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
||||||
"Language-Team: fil\n"
|
"Language-Team: fil\n"
|
||||||
@ -487,11 +487,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Hindi ma-initialize ang UART"
|
msgstr "Hindi ma-initialize ang UART"
|
||||||
@ -590,11 +585,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -604,15 +594,6 @@ msgstr ""
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr "Nabigo sa pag kuha ng mutex, status: 0x%08lX"
|
msgstr "Nabigo sa pag kuha ng mutex, status: 0x%08lX"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr "Nabigong ilaan ang RX buffer"
|
msgstr "Nabigong ilaan ang RX buffer"
|
||||||
@ -623,10 +604,6 @@ msgstr "Nabigong ilaan ang RX buffer"
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr "Nabigong ilaan ang RX buffer ng %d bytes"
|
msgstr "Nabigong ilaan ang RX buffer ng %d bytes"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -635,96 +612,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr "Nabigo sa pagdiscover ng services, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr "Nabigo sa pagkuha ng local na address, , error: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr "Nabigo sa pagkuha ng softdevice state, error: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr "Hindi maisulat ang gatts value, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr "Hindi matagumpay ang paglagay ng Vender Specific UUID, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr "Nabigo sa pagrelease ng mutex, status: 0x%08lX"
|
msgstr "Nabigo sa pagrelease ng mutex, status: 0x%08lX"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr "Hindi masimulaan mag i-scan, status: 0x%0xlX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr "Hindi maisulat ang attribute value, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr "Hindi maisulat ang gatts value, status: 0x%08lX"
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr "Mayroong file"
|
msgstr "Mayroong file"
|
||||||
@ -789,6 +681,14 @@ msgstr ""
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr "May mali sa Input/Output"
|
msgstr "May mali sa Input/Output"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1151,7 +1051,7 @@ msgstr "Tumatakbo sa safe mode! Awtomatikong pag re-reload ay OFF.\n"
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr "Tumatakbo sa safe mode! Hindi tumatakbo ang nai-save na code.\n"
|
msgstr "Tumatakbo sa safe mode! Hindi tumatakbo ang nai-save na code.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr "Kailangan ng pull up resistors ang SDA o SCL"
|
msgstr "Kailangan ng pull up resistors ang SDA o SCL"
|
||||||
|
|
||||||
@ -1344,11 +1244,32 @@ msgstr "Hindi ma i-sulat sa NVM."
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr "hindi inaasahang indent"
|
msgstr "hindi inaasahang indent"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Hindi supportadong baudrate"
|
msgstr "Hindi supportadong baudrate"
|
||||||
@ -2574,13 +2495,9 @@ msgstr "ang threshold ay dapat sa range 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() kumukuha ng 9-sequence"
|
msgstr "time.struct_time() kumukuha ng 9-sequence"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() kumukuha ng 1 argument"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "timeout >100 (units ay seconds, hindi na msecs)"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -2820,7 +2737,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to acquire mutex"
|
#~ msgid "Failed to acquire mutex"
|
||||||
#~ msgstr "Nabigo sa pag kuha ng mutex, status: 0x%08lX"
|
#~ msgstr "Nabigo sa pag kuha ng mutex, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Nabigo sa paglagay ng characteristic, status: 0x%08lX"
|
#~ msgstr "Nabigo sa paglagay ng characteristic, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2828,7 +2745,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to add service"
|
#~ msgid "Failed to add service"
|
||||||
#~ msgstr "Hindi matagumpay ang paglagay ng service, status: 0x%08lX"
|
#~ msgstr "Hindi matagumpay ang paglagay ng service, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add service, err 0x%04x"
|
#~ msgid "Failed to add service, err 0x%04x"
|
||||||
#~ msgstr "Hindi matagumpay ang paglagay ng service, status: 0x%08lX"
|
#~ msgstr "Hindi matagumpay ang paglagay ng service, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2844,7 +2761,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to continue scanning"
|
#~ msgid "Failed to continue scanning"
|
||||||
#~ msgstr "Hindi maituloy ang pag scan, status: 0x%0xlX"
|
#~ msgstr "Hindi maituloy ang pag scan, status: 0x%0xlX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "Hindi maituloy ang pag scan, status: 0x%0xlX"
|
#~ msgstr "Hindi maituloy ang pag scan, status: 0x%0xlX"
|
||||||
|
|
||||||
@ -2852,14 +2769,39 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to create mutex"
|
#~ msgid "Failed to create mutex"
|
||||||
#~ msgstr "Hindi matagumpay ang pagbuo ng mutex, status: 0x%0xlX"
|
#~ msgstr "Hindi matagumpay ang pagbuo ng mutex, status: 0x%0xlX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to discover services"
|
||||||
|
#~ msgstr "Nabigo sa pagdiscover ng services, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to get local address"
|
||||||
|
#~ msgstr "Nabigo sa pagkuha ng local na address, , error: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to get softdevice state"
|
||||||
|
#~ msgstr "Nabigo sa pagkuha ng softdevice state, error: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Hindi mabalitaan ang attribute value, status: 0x%08lX"
|
#~ msgstr "Hindi mabalitaan ang attribute value, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
|
#~ msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX"
|
#~ msgstr "Hindi mabasa ang value ng attribute, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Hindi maisulat ang gatts value, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Hindi matagumpay ang paglagay ng Vender Specific UUID, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to release mutex"
|
#~ msgid "Failed to release mutex"
|
||||||
#~ msgstr "Nabigo sa pagrelease ng mutex, status: 0x%08lX"
|
#~ msgstr "Nabigo sa pagrelease ng mutex, status: 0x%08lX"
|
||||||
@ -2868,7 +2810,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to start advertising"
|
#~ msgid "Failed to start advertising"
|
||||||
#~ msgstr "Hindi masimulaan ang advertisement, status: 0x%08lX"
|
#~ msgstr "Hindi masimulaan ang advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Hindi masimulaan ang advertisement, status: 0x%08lX"
|
#~ msgstr "Hindi masimulaan ang advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
@ -2876,14 +2818,26 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Hindi masimulaan mag i-scan, status: 0x%0xlX"
|
#~ msgstr "Hindi masimulaan mag i-scan, status: 0x%0xlX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
|
#~ msgstr "Hindi masimulaan mag i-scan, status: 0x%0xlX"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising"
|
#~ msgid "Failed to stop advertising"
|
||||||
#~ msgstr "Hindi mahinto ang advertisement, status: 0x%08lX"
|
#~ msgstr "Hindi mahinto ang advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Hindi mahinto ang advertisement, status: 0x%08lX"
|
#~ msgstr "Hindi mahinto ang advertisement, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Hindi maisulat ang attribute value, status: 0x%08lX"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Hindi maisulat ang gatts value, status: 0x%08lX"
|
||||||
|
|
||||||
#~ msgid "Function requires lock."
|
#~ msgid "Function requires lock."
|
||||||
#~ msgstr "Kailangan ng lock ang function."
|
#~ msgstr "Kailangan ng lock ang function."
|
||||||
|
|
||||||
@ -3048,6 +3002,12 @@ msgstr "zero step"
|
|||||||
#~ msgid "scan failed"
|
#~ msgid "scan failed"
|
||||||
#~ msgstr "nabigo ang pag-scan"
|
#~ msgstr "nabigo ang pag-scan"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() kumukuha ng 1 argument"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "timeout >100 (units ay seconds, hindi na msecs)"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "masyadong maraming argumento"
|
#~ msgstr "masyadong maraming argumento"
|
||||||
|
|
||||||
|
213
locale/fr.po
213
locale/fr.po
@ -8,7 +8,7 @@ msgid ""
|
|||||||
msgstr ""
|
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: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2019-04-14 20:05+0100\n"
|
"PO-Revision-Date: 2019-04-14 20:05+0100\n"
|
||||||
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
|
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
|
||||||
"Language-Team: fr\n"
|
"Language-Team: fr\n"
|
||||||
@ -493,11 +493,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr "Impossible de décoder le 'ble_uuid', err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "L'UART n'a pu être initialisé"
|
msgstr "L'UART n'a pu être initialisé"
|
||||||
@ -594,11 +589,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr "Tuple de longueur %d attendu, obtenu %d"
|
msgstr "Tuple de longueur %d attendu, obtenu %d"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -608,15 +598,6 @@ msgstr ""
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr "Echec de l'obtention de mutex, err 0x%04x"
|
msgstr "Echec de l'obtention de mutex, err 0x%04x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr "Echec de l'allocation du tampon RX"
|
msgstr "Echec de l'allocation du tampon RX"
|
||||||
@ -627,10 +608,6 @@ msgstr "Echec de l'allocation du tampon RX"
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr "Echec de l'allocation de %d octets du tampon RX"
|
msgstr "Echec de l'allocation de %d octets du tampon RX"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -639,97 +616,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr "Echec de la découverte de services"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr "Echec de l'obtention de l'adresse locale"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr "Echec de l'obtention de l'état du périphérique"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
"Impossible de notifier ou d'indiquer la valeur de l'attribut, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr "Impossible de lire la valeur 'CCCD', err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr "Impossible de lire la valeur de l'attribut, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr "Impossible de lire la valeur de 'gatts', err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr "Echec de l'ajout de l'UUID du fournisseur, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr "Impossible de libérer mutex, err 0x%04x"
|
msgstr "Impossible de libérer mutex, err 0x%04x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr "Impossible de commencer à scanner, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr "Impossible d'écrire la valeur de l'attribut, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr "Impossible d'écrire la valeur de 'gatts', err 0x%04x"
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr "Le fichier existe"
|
msgstr "Le fichier existe"
|
||||||
@ -794,6 +685,14 @@ msgstr "Taille de tampon incorrecte"
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr "Erreur d'entrée/sortie"
|
msgstr "Erreur d'entrée/sortie"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1166,7 +1065,7 @@ msgstr "Mode sans-échec! Auto-chargement désactivé.\n"
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr "Mode sans-échec! Le code sauvegardé n'est pas éxecuté.\n"
|
msgstr "Mode sans-échec! Le code sauvegardé n'est pas éxecuté.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')"
|
msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')"
|
||||||
|
|
||||||
@ -1367,12 +1266,33 @@ msgstr "Impossible d'écrire sur la mémoire non-volatile."
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr "Type inattendu pour l'uuid nrfx"
|
msgstr "Type inattendu pour l'uuid nrfx"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Pas de correspondance du nombres d'éléments à droite (attendu %d, obtenu %d)"
|
"Pas de correspondance du nombres d'éléments à droite (attendu %d, obtenu %d)"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Débit non supporté"
|
msgstr "Débit non supporté"
|
||||||
@ -2615,13 +2535,9 @@ msgstr "le seuil doit être dans la gamme 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() prend une séquence de longueur 9"
|
msgstr "time.struct_time() prend une séquence de longueur 9"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() prend exactement 1 argument"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "timeout >100 (exprimé en secondes, pas en ms)"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
@ -2849,6 +2765,9 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "'Characteristic' déjà en utilisation par un autre service"
|
#~ msgstr "'Characteristic' déjà en utilisation par un autre service"
|
||||||
|
|
||||||
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
|
#~ msgstr "Impossible de décoder le 'ble_uuid', err 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Data too large for the advertisement packet"
|
#~ msgid "Data too large for the advertisement packet"
|
||||||
#~ msgstr "Données trop volumineuses pour le paquet de diffusion"
|
#~ msgstr "Données trop volumineuses pour le paquet de diffusion"
|
||||||
|
|
||||||
@ -2868,7 +2787,7 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to acquire mutex"
|
#~ msgid "Failed to acquire mutex"
|
||||||
#~ msgstr "Echec de l'obtention de mutex"
|
#~ msgstr "Echec de l'obtention de mutex"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Echec de l'ajout de caractéristique, err 0x%04x"
|
#~ msgstr "Echec de l'ajout de caractéristique, err 0x%04x"
|
||||||
|
|
||||||
@ -2876,7 +2795,7 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to add service"
|
#~ msgid "Failed to add service"
|
||||||
#~ msgstr "Echec de l'ajout de service"
|
#~ msgstr "Echec de l'ajout de service"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add service, err 0x%04x"
|
#~ msgid "Failed to add service, err 0x%04x"
|
||||||
#~ msgstr "Echec de l'ajout de service, err 0x%04x"
|
#~ msgstr "Echec de l'ajout de service, err 0x%04x"
|
||||||
|
|
||||||
@ -2892,7 +2811,7 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to continue scanning"
|
#~ msgid "Failed to continue scanning"
|
||||||
#~ msgstr "Impossible de poursuivre le scan"
|
#~ msgstr "Impossible de poursuivre le scan"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "Impossible de poursuivre le scan, err 0x%04x"
|
#~ msgstr "Impossible de poursuivre le scan, err 0x%04x"
|
||||||
|
|
||||||
@ -2900,14 +2819,45 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to create mutex"
|
#~ msgid "Failed to create mutex"
|
||||||
#~ msgstr "Echec de la création de mutex"
|
#~ msgstr "Echec de la création de mutex"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to discover services"
|
||||||
|
#~ msgstr "Echec de la découverte de services"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to get local address"
|
||||||
|
#~ msgstr "Echec de l'obtention de l'adresse locale"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to get softdevice state"
|
||||||
|
#~ msgstr "Echec de l'obtention de l'état du périphérique"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%08lX"
|
#~ msgstr "Impossible de notifier la valeur de l'attribut. status: 0x%08lX"
|
||||||
|
|
||||||
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Impossible de notifier ou d'indiquer la valeur de l'attribut, err 0x%04x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
|
#~ msgstr "Impossible de lire la valeur 'CCCD', err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Impossible de lire la valeur de l'attribut. status: 0x%08lX"
|
#~ msgstr "Impossible de lire la valeur de l'attribut. status: 0x%08lX"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Impossible de lire la valeur de l'attribut, err 0x%04x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Impossible de lire la valeur de 'gatts', err 0x%04x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
|
#~ msgstr "Echec de l'ajout de l'UUID du fournisseur, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to release mutex"
|
#~ msgid "Failed to release mutex"
|
||||||
#~ msgstr "Impossible de libérer mutex"
|
#~ msgstr "Impossible de libérer mutex"
|
||||||
@ -2916,7 +2866,7 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to start advertising"
|
#~ msgid "Failed to start advertising"
|
||||||
#~ msgstr "Echec du démarrage de la diffusion"
|
#~ msgstr "Echec du démarrage de la diffusion"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Impossible de commencer à diffuser, err 0x%04x"
|
#~ msgstr "Impossible de commencer à diffuser, err 0x%04x"
|
||||||
|
|
||||||
@ -2924,14 +2874,26 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Impossible de commencer à scanner"
|
#~ msgstr "Impossible de commencer à scanner"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
|
#~ msgstr "Impossible de commencer à scanner, err 0x%04x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising"
|
#~ msgid "Failed to stop advertising"
|
||||||
#~ msgstr "Echec de l'arrêt de diffusion"
|
#~ msgstr "Echec de l'arrêt de diffusion"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Echec de l'arrêt de diffusion, err 0x%04x"
|
#~ msgstr "Echec de l'arrêt de diffusion, err 0x%04x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Impossible d'écrire la valeur de l'attribut, err 0x%04x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Impossible d'écrire la valeur de 'gatts', err 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Function requires lock."
|
#~ msgid "Function requires lock."
|
||||||
#~ msgstr "La fonction nécessite un verrou."
|
#~ msgstr "La fonction nécessite un verrou."
|
||||||
|
|
||||||
@ -3003,7 +2965,6 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "STA required"
|
#~ msgid "STA required"
|
||||||
#~ msgstr "'STA' requis"
|
#~ msgstr "'STA' requis"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||||
#~ msgstr "Assertion en mode 'soft-device', id: 0x%08lX, pc: 0x%08lX"
|
#~ msgstr "Assertion en mode 'soft-device', id: 0x%08lX, pc: 0x%08lX"
|
||||||
|
|
||||||
@ -3123,6 +3084,12 @@ msgstr "'step' nul"
|
|||||||
#~ msgid "tile index out of bounds"
|
#~ msgid "tile index out of bounds"
|
||||||
#~ msgstr "indice de tuile hors limites"
|
#~ msgstr "indice de tuile hors limites"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() prend exactement 1 argument"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "timeout >100 (exprimé en secondes, pas en ms)"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "trop d'arguments"
|
#~ msgstr "trop d'arguments"
|
||||||
|
|
||||||
|
197
locale/it_IT.po
197
locale/it_IT.po
@ -8,7 +8,7 @@ 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"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
||||||
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -488,11 +488,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Impossibile inizializzare l'UART"
|
msgstr "Impossibile inizializzare l'UART"
|
||||||
@ -590,11 +585,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -604,15 +594,6 @@ msgstr ""
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr "Impossibile allocare buffer RX"
|
msgstr "Impossibile allocare buffer RX"
|
||||||
@ -623,10 +604,6 @@ msgstr "Impossibile allocare buffer RX"
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr "Fallita allocazione del buffer RX di %d byte"
|
msgstr "Fallita allocazione del buffer RX di %d byte"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -635,95 +612,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr "Notificamento o indicazione di attribute value fallito, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr "Tentative leggere attribute value fallito, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr "Non è possibile aggiungere l'UUID del vendor specifico da 128-bit"
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr "File esistente"
|
msgstr "File esistente"
|
||||||
@ -788,6 +681,14 @@ msgstr ""
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr "Errore input/output"
|
msgstr "Errore input/output"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1155,7 +1056,7 @@ msgstr "Modalità sicura in esecuzione! Auto-reload disattivato.\n"
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr "Modalità sicura in esecuzione! Codice salvato non in esecuzione.\n"
|
msgstr "Modalità sicura in esecuzione! Codice salvato non in esecuzione.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr "SDA o SCL necessitano un pull-up"
|
msgstr "SDA o SCL necessitano un pull-up"
|
||||||
|
|
||||||
@ -1343,11 +1244,32 @@ msgstr "Imposibile scrivere su nvm."
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr "indentazione inaspettata"
|
msgstr "indentazione inaspettata"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "baudrate non supportato"
|
msgstr "baudrate non supportato"
|
||||||
@ -2572,12 +2494,8 @@ msgstr "la soglia deve essere nell'intervallo 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() prende esattamente un argomento"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -2824,7 +2742,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to acquire mutex"
|
#~ msgid "Failed to acquire mutex"
|
||||||
#~ msgstr "Impossibile allocare buffer RX"
|
#~ msgstr "Impossibile allocare buffer RX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
@ -2832,7 +2750,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to add service"
|
#~ msgid "Failed to add service"
|
||||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add service, err 0x%04x"
|
#~ msgid "Failed to add service, err 0x%04x"
|
||||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
@ -2848,7 +2766,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to continue scanning"
|
#~ msgid "Failed to continue scanning"
|
||||||
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
||||||
|
|
||||||
@ -2856,14 +2774,40 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to create mutex"
|
#~ msgid "Failed to create mutex"
|
||||||
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to discover services"
|
||||||
|
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to get softdevice state"
|
||||||
|
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Impossibile notificare valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile notificare valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Notificamento o indicazione di attribute value fallito, err 0x%04x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
|
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Tentative leggere attribute value fallito, err 0x%04x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
|
#~ msgstr "Non è possibile aggiungere l'UUID del vendor specifico da 128-bit"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to release mutex"
|
#~ msgid "Failed to release mutex"
|
||||||
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||||
@ -2872,7 +2816,7 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to start advertising"
|
#~ msgid "Failed to start advertising"
|
||||||
#~ msgstr "Impossibile avviare advertisement. status: 0x%02x"
|
#~ msgstr "Impossibile avviare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Impossibile avviare advertisement. status: 0x%02x"
|
#~ msgstr "Impossibile avviare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
@ -2880,14 +2824,26 @@ msgstr "zero step"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
|
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising"
|
#~ msgid "Failed to stop advertising"
|
||||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Impossibile scrivere valore dell'attributo. status: 0x%02x"
|
||||||
|
|
||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "GPIO16 non supporta pull-up"
|
#~ msgstr "GPIO16 non supporta pull-up"
|
||||||
|
|
||||||
@ -3046,6 +3002,9 @@ msgstr "zero step"
|
|||||||
#~ msgid "scan failed"
|
#~ msgid "scan failed"
|
||||||
#~ msgstr "scansione fallita"
|
#~ msgstr "scansione fallita"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() prende esattamente un argomento"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "troppi argomenti"
|
#~ msgstr "troppi argomenti"
|
||||||
|
|
||||||
|
2645
locale/ko.po
Normal file
2645
locale/ko.po
Normal file
File diff suppressed because it is too large
Load Diff
195
locale/pl.po
195
locale/pl.po
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: \n"
|
"Project-Id-Version: \n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
||||||
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
||||||
"Language-Team: pl\n"
|
"Language-Team: pl\n"
|
||||||
@ -481,11 +481,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr "Nie można zdekodować ble_uuid, błąd 0x%04x"
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Ustawienie UART nie powiodło się"
|
msgstr "Ustawienie UART nie powiodło się"
|
||||||
@ -579,11 +574,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr "Oczekiwano krotkę długości %d, otrzymano %d"
|
msgstr "Oczekiwano krotkę długości %d, otrzymano %d"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -593,15 +583,6 @@ msgstr ""
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr "Nie udało się uzyskać blokady, błąd 0x$04x"
|
msgstr "Nie udało się uzyskać blokady, błąd 0x$04x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr "Nie udała się alokacja bufora RX"
|
msgstr "Nie udała się alokacja bufora RX"
|
||||||
@ -612,10 +593,6 @@ msgstr "Nie udała się alokacja bufora RX"
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr "Nie udała się alokacja %d bajtów na bufor RX"
|
msgstr "Nie udała się alokacja %d bajtów na bufor RX"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -624,93 +601,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr "Nie udało się odkryć serwisów"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr "Nie udało się uzyskać lokalnego adresu"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr "Nie udało się odczytać stanu softdevice"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr "Nie udało się powiadomić o wartości atrybutu, błąd 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr "Nie udało się odczytać CCCD, błąd 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr "Nie udało się odczytać wartości atrybutu, błąd 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr "Nie udało się odczytać gatts, błąd 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr "Nie udało się zarejestrować UUID dostawcy, błąd 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr "Nie udało się zwolnić blokady, błąd 0x%04x"
|
msgstr "Nie udało się zwolnić blokady, błąd 0x%04x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr "Nie udało się rozpocząć skanowania, błąd 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr "Nie udało się zapisać atrybutu, błąd 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr "Nie udało się zapisać gatts, błąd 0x%04x"
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr "Plik istnieje"
|
msgstr "Plik istnieje"
|
||||||
@ -775,6 +670,14 @@ msgstr "Niewłaściwa wielkość bufora"
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr "Błąd I/O"
|
msgstr "Błąd I/O"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1129,7 +1032,7 @@ msgstr "Uruchomiony tryb bezpieczeństwa! Samo-przeładowanie wyłączone.\n"
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr "Uruchomiony tryb bezpieczeństwa! Zapisany kod nie jest uruchamiany.\n"
|
msgstr "Uruchomiony tryb bezpieczeństwa! Zapisany kod nie jest uruchamiany.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr "SDA lub SCL wymagają podciągnięcia"
|
msgstr "SDA lub SCL wymagają podciągnięcia"
|
||||||
|
|
||||||
@ -1321,11 +1224,32 @@ msgstr "Błąd zapisu do NVM."
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr "Nieoczekiwany typ nrfx uuid."
|
msgstr "Nieoczekiwany typ nrfx uuid."
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr "Zła liczba obiektów po prawej stronie (oczekiwano %d, jest %d)."
|
msgstr "Zła liczba obiektów po prawej stronie (oczekiwano %d, jest %d)."
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Zła szybkość transmisji"
|
msgstr "Zła szybkość transmisji"
|
||||||
@ -2526,13 +2450,9 @@ msgstr "threshold musi być w zakresie 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() wymaga 9-elementowej sekwencji"
|
msgstr "time.struct_time() wymaga 9-elementowej sekwencji"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() wymaga jednego argumentu"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "timeout > 100 (jednostkami są sekundy)"
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
msgid "timeout must be >= 0.0"
|
msgid "timeout must be >= 0.0"
|
||||||
@ -2740,20 +2660,22 @@ msgstr "zerowy krok"
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "Charakterystyka w użyciu w innym serwisie"
|
#~ msgstr "Charakterystyka w użyciu w innym serwisie"
|
||||||
|
|
||||||
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
|
#~ msgstr "Nie można zdekodować ble_uuid, błąd 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Data too large for the advertisement packet"
|
#~ msgid "Data too large for the advertisement packet"
|
||||||
#~ msgstr "Zbyt dużo danych pakietu rozgłoszeniowego"
|
#~ msgstr "Zbyt dużo danych pakietu rozgłoszeniowego"
|
||||||
|
|
||||||
#~ msgid "Failed to acquire mutex"
|
#~ msgid "Failed to acquire mutex"
|
||||||
#~ msgstr "Nie udało się uzyskać blokady"
|
#~ msgstr "Nie udało się uzyskać blokady"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się dodać charakterystyki, błąd 0x$04x"
|
#~ msgstr "Nie udało się dodać charakterystyki, błąd 0x$04x"
|
||||||
|
|
||||||
#~ msgid "Failed to add service"
|
#~ msgid "Failed to add service"
|
||||||
#~ msgstr "Nie udało się dodać serwisu"
|
#~ msgstr "Nie udało się dodać serwisu"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to add service, err 0x%04x"
|
#~ msgid "Failed to add service, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się dodać serwisu, błąd 0x%04x"
|
#~ msgstr "Nie udało się dodać serwisu, błąd 0x%04x"
|
||||||
|
|
||||||
@ -2766,33 +2688,63 @@ msgstr "zerowy krok"
|
|||||||
#~ msgid "Failed to continue scanning"
|
#~ msgid "Failed to continue scanning"
|
||||||
#~ msgstr "Nie udała się kontynuacja skanowania"
|
#~ msgstr "Nie udała się kontynuacja skanowania"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "Nie udała się kontynuacja skanowania, błąd 0x%04x"
|
#~ msgstr "Nie udała się kontynuacja skanowania, błąd 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to create mutex"
|
#~ msgid "Failed to create mutex"
|
||||||
#~ msgstr "Nie udało się stworzyć blokady"
|
#~ msgstr "Nie udało się stworzyć blokady"
|
||||||
|
|
||||||
|
#~ msgid "Failed to discover services"
|
||||||
|
#~ msgstr "Nie udało się odkryć serwisów"
|
||||||
|
|
||||||
|
#~ msgid "Failed to get local address"
|
||||||
|
#~ msgstr "Nie udało się uzyskać lokalnego adresu"
|
||||||
|
|
||||||
|
#~ msgid "Failed to get softdevice state"
|
||||||
|
#~ msgstr "Nie udało się odczytać stanu softdevice"
|
||||||
|
|
||||||
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Nie udało się powiadomić o wartości atrybutu, błąd 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
|
#~ msgstr "Nie udało się odczytać CCCD, błąd 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Nie udało się odczytać wartości atrybutu, błąd 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Nie udało się odczytać gatts, błąd 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
|
#~ msgstr "Nie udało się zarejestrować UUID dostawcy, błąd 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to release mutex"
|
#~ msgid "Failed to release mutex"
|
||||||
#~ msgstr "Nie udało się zwolnić blokady"
|
#~ msgstr "Nie udało się zwolnić blokady"
|
||||||
|
|
||||||
#~ msgid "Failed to start advertising"
|
#~ msgid "Failed to start advertising"
|
||||||
#~ msgstr "Nie udało się rozpocząć rozgłaszania"
|
#~ msgstr "Nie udało się rozpocząć rozgłaszania"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się rozpocząć rozgłaszania, błąd 0x%04x"
|
#~ msgstr "Nie udało się rozpocząć rozgłaszania, błąd 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Nie udało się rozpocząć skanowania"
|
#~ msgstr "Nie udało się rozpocząć skanowania"
|
||||||
|
|
||||||
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
|
#~ msgstr "Nie udało się rozpocząć skanowania, błąd 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to stop advertising"
|
#~ msgid "Failed to stop advertising"
|
||||||
#~ msgstr "Nie udało się zatrzymać rozgłaszania"
|
#~ msgstr "Nie udało się zatrzymać rozgłaszania"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Nie udało się zatrzymać rozgłaszania, błąd 0x%04x"
|
#~ msgstr "Nie udało się zatrzymać rozgłaszania, błąd 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Nie udało się zapisać atrybutu, błąd 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Nie udało się zapisać gatts, błąd 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Zła nóżka zegara"
|
#~ msgstr "Zła nóżka zegara"
|
||||||
|
|
||||||
@ -2810,7 +2762,6 @@ msgstr "zerowy krok"
|
|||||||
#~ "bpp given"
|
#~ "bpp given"
|
||||||
#~ msgstr "Wspierane są tylko pliki BMP czarno-białe, 8bpp i 16bpp: %d bpp "
|
#~ msgstr "Wspierane są tylko pliki BMP czarno-białe, 8bpp i 16bpp: %d bpp "
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||||
#~ msgstr "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
#~ msgstr "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||||
|
|
||||||
@ -2841,3 +2792,9 @@ msgstr "zerowy krok"
|
|||||||
|
|
||||||
#~ msgid "tile index out of bounds"
|
#~ msgid "tile index out of bounds"
|
||||||
#~ msgstr "indeks kafelka poza zakresem"
|
#~ msgstr "indeks kafelka poza zakresem"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() wymaga jednego argumentu"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "timeout > 100 (jednostkami są sekundy)"
|
||||||
|
189
locale/pt_BR.po
189
locale/pt_BR.po
@ -8,7 +8,7 @@ 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"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
|
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
|
||||||
"Last-Translator: \n"
|
"Last-Translator: \n"
|
||||||
"Language-Team: \n"
|
"Language-Team: \n"
|
||||||
@ -484,11 +484,6 @@ msgstr ""
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Não foi possível inicializar o UART"
|
msgstr "Não foi possível inicializar o UART"
|
||||||
@ -585,11 +580,6 @@ msgstr ""
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr "Falha ao enviar comando."
|
msgstr "Falha ao enviar comando."
|
||||||
@ -599,15 +589,6 @@ msgstr "Falha ao enviar comando."
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr "Falha ao alocar buffer RX"
|
msgstr "Falha ao alocar buffer RX"
|
||||||
@ -618,10 +599,6 @@ msgstr "Falha ao alocar buffer RX"
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr "Falha ao alocar buffer RX de %d bytes"
|
msgstr "Falha ao alocar buffer RX de %d bytes"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -630,95 +607,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr "Não pode parar propaganda. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr "Não pode parar propaganda. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr "Não é possível adicionar o UUID de 128 bits específico do fornecedor."
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, fuzzy, c-format
|
#, fuzzy, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, fuzzy, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr "Arquivo já existe"
|
msgstr "Arquivo já existe"
|
||||||
@ -781,6 +674,14 @@ msgstr ""
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1138,7 +1039,7 @@ msgstr "Rodando em modo seguro! Atualização automática está desligada.\n"
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr "Rodando em modo seguro! Não está executando o código salvo.\n"
|
msgstr "Rodando em modo seguro! Não está executando o código salvo.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr "SDA ou SCL precisa de um pull up"
|
msgstr "SDA ou SCL precisa de um pull up"
|
||||||
|
|
||||||
@ -1320,11 +1221,32 @@ msgstr "Não é possível gravar no nvm."
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Taxa de transmissão não suportada"
|
msgstr "Taxa de transmissão não suportada"
|
||||||
@ -2525,12 +2447,8 @@ msgstr "Limite deve estar no alcance de 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
@ -2754,7 +2672,7 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to acquire mutex"
|
#~ msgid "Failed to acquire mutex"
|
||||||
#~ msgstr "Falha ao alocar buffer RX"
|
#~ msgstr "Falha ao alocar buffer RX"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||||
|
|
||||||
@ -2762,7 +2680,7 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to add service"
|
#~ msgid "Failed to add service"
|
||||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to add service, err 0x%04x"
|
#~ msgid "Failed to add service, err 0x%04x"
|
||||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||||
|
|
||||||
@ -2770,7 +2688,7 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to change softdevice state"
|
#~ msgid "Failed to change softdevice state"
|
||||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||||
|
|
||||||
@ -2778,14 +2696,35 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to create mutex"
|
#~ msgid "Failed to create mutex"
|
||||||
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to discover services"
|
||||||
|
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to get softdevice state"
|
||||||
|
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||||
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
|
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||||
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Não é possível adicionar o UUID de 128 bits específico do fornecedor."
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to release mutex"
|
#~ msgid "Failed to release mutex"
|
||||||
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
#~ msgstr "Não é possível ler o valor do atributo. status: 0x%02x"
|
||||||
@ -2794,7 +2733,7 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to start advertising"
|
#~ msgid "Failed to start advertising"
|
||||||
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||||
|
|
||||||
@ -2802,14 +2741,26 @@ msgstr "passo zero"
|
|||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
|
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising"
|
#~ msgid "Failed to stop advertising"
|
||||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||||
|
|
||||||
#, fuzzy, c-format
|
#, fuzzy
|
||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
|
#, fuzzy
|
||||||
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Não é possível gravar o valor do atributo. status: 0x%02x"
|
||||||
|
|
||||||
#~ msgid "GPIO16 does not support pull up."
|
#~ msgid "GPIO16 does not support pull up."
|
||||||
#~ msgstr "GPIO16 não suporta pull up."
|
#~ msgstr "GPIO16 não suporta pull up."
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: circuitpython-cn\n"
|
"Project-Id-Version: circuitpython-cn\n"
|
||||||
"Report-Msgid-Bugs-To: \n"
|
"Report-Msgid-Bugs-To: \n"
|
||||||
"POT-Creation-Date: 2019-10-21 19:50-0700\n"
|
"POT-Creation-Date: 2019-11-27 14:54-0500\n"
|
||||||
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
||||||
"Last-Translator: hexthat\n"
|
"Last-Translator: hexthat\n"
|
||||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||||
@ -482,11 +482,6 @@ msgstr "Fǔbài de .mpy wénjiàn"
|
|||||||
msgid "Corrupt raw code"
|
msgid "Corrupt raw code"
|
||||||
msgstr "Sǔnhuài de yuánshǐ dàimǎ"
|
msgstr "Sǔnhuài de yuánshǐ dàimǎ"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Could not decode ble_uuid, err 0x%04x"
|
|
||||||
msgstr "Wúfǎ jiěmǎ kě dú_uuid, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c
|
||||||
msgid "Could not initialize UART"
|
msgid "Could not initialize UART"
|
||||||
msgstr "Wúfǎ chūshǐhuà UART"
|
msgstr "Wúfǎ chūshǐhuà UART"
|
||||||
@ -580,11 +575,6 @@ msgstr "Qídài yīgè dìzhǐ"
|
|||||||
msgid "Expected tuple of length %d, got %d"
|
msgid "Expected tuple of length %d, got %d"
|
||||||
msgstr "Qīwàng de chángdù wèi %d de yuán zǔ, dédào %d"
|
msgstr "Qīwàng de chángdù wèi %d de yuán zǔ, dédào %d"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed initiate attribute read, err 0x%04x"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: shared-bindings/ps2io/Ps2.c
|
#: shared-bindings/ps2io/Ps2.c
|
||||||
msgid "Failed sending command."
|
msgid "Failed sending command."
|
||||||
msgstr "Fāsòng mìnglìng shībài."
|
msgstr "Fāsòng mìnglìng shībài."
|
||||||
@ -594,15 +584,6 @@ msgstr "Fāsòng mìnglìng shībài."
|
|||||||
msgid "Failed to acquire mutex, err 0x%04x"
|
msgid "Failed to acquire mutex, err 0x%04x"
|
||||||
msgstr "Wúfǎ huòdé mutex, err 0x%04x"
|
msgstr "Wúfǎ huòdé mutex, err 0x%04x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to add characteristic, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to add descriptor, err 0x%04x"
|
|
||||||
msgstr "Wúfǎ tiānjiā miáoshù fú, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
#: ports/atmel-samd/common-hal/busio/UART.c ports/nrf/common-hal/busio/UART.c
|
||||||
msgid "Failed to allocate RX buffer"
|
msgid "Failed to allocate RX buffer"
|
||||||
msgstr "Fēnpèi RX huǎnchōng shībài"
|
msgstr "Fēnpèi RX huǎnchōng shībài"
|
||||||
@ -613,10 +594,6 @@ msgstr "Fēnpèi RX huǎnchōng shībài"
|
|||||||
msgid "Failed to allocate RX buffer of %d bytes"
|
msgid "Failed to allocate RX buffer of %d bytes"
|
||||||
msgstr "Fēnpèi RX huǎnchōng qū%d zì jié shībài"
|
msgstr "Fēnpèi RX huǎnchōng qū%d zì jié shībài"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to change softdevice state, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
#: ports/nrf/common-hal/_bleio/Adapter.c
|
||||||
msgid "Failed to connect: internal error"
|
msgid "Failed to connect: internal error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@ -625,93 +602,11 @@ msgstr ""
|
|||||||
msgid "Failed to connect: timeout"
|
msgid "Failed to connect: timeout"
|
||||||
msgstr "Liánjiē shībài: Chāoshí"
|
msgstr "Liánjiē shībài: Chāoshí"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Service.c
|
|
||||||
msgid "Failed to create service, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to discover services"
|
|
||||||
msgstr "Fāxiàn fúwù shībài"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get local address"
|
|
||||||
msgstr "Huòqǔ běndì dìzhǐ shībài"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to get softdevice state"
|
|
||||||
msgstr "Wúfǎ huòdé ruǎnjiàn shèbèi zhuàngtài"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
|
||||||
msgstr "Wúfǎ tōngzhī huò xiǎnshì shǔxìng zhí, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to pair"
|
|
||||||
msgstr "Pèiduì shībài"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read CCCD value, err 0x%04x"
|
|
||||||
msgstr "Dòu qǔ CCCD zhí, err 0x%04x shībài"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read attribute value, err 0x%04x"
|
|
||||||
msgstr "Dòu qǔ shǔxìng zhí shībài, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to read gatts value, err 0x%04x"
|
|
||||||
msgstr "Wúfǎ dòu qǔ gatts zhí, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/UUID.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
|
||||||
msgstr "Wúfǎ zhùcè màizhǔ tèdìng de UUID, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/sd_mutex.c
|
#: ports/nrf/sd_mutex.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Failed to release mutex, err 0x%04x"
|
msgid "Failed to release mutex, err 0x%04x"
|
||||||
msgstr "Wúfǎ shìfàng mutex, err 0x%04x"
|
msgstr "Wúfǎ shìfàng mutex, err 0x%04x"
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to start advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start connecting, error 0x%04x"
|
|
||||||
msgstr "Wúfǎ kāishǐ liánjiē, cuòwù 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Connection.c
|
|
||||||
msgid "Failed to start pairing, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to start scanning, err 0x%04x"
|
|
||||||
msgstr "Qǐdòng sǎomiáo shībài, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Adapter.c
|
|
||||||
msgid "Failed to stop advertising, NRF_ERROR_%q"
|
|
||||||
msgstr ""
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/Characteristic.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write CCCD, err 0x%04x"
|
|
||||||
msgstr "Wúfǎ xiě rù CCCD, cuòwù 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write attribute value, err 0x%04x"
|
|
||||||
msgstr "Xiě rù shǔxìng zhí shībài, err 0x%04x"
|
|
||||||
|
|
||||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
|
||||||
#, c-format
|
|
||||||
msgid "Failed to write gatts value, err 0x%04x"
|
|
||||||
msgstr "Xiě rù gatts zhí,err 0x%04x shībài"
|
|
||||||
|
|
||||||
#: py/moduerrno.c
|
#: py/moduerrno.c
|
||||||
msgid "File exists"
|
msgid "File exists"
|
||||||
msgstr "Wénjiàn cúnzài"
|
msgstr "Wénjiàn cúnzài"
|
||||||
@ -776,6 +671,14 @@ msgstr "Huǎnchōng qū dàxiǎo bù zhèngquè"
|
|||||||
msgid "Input/output error"
|
msgid "Input/output error"
|
||||||
msgstr "Shūrù/shūchū cuòwù"
|
msgstr "Shūrù/shūchū cuòwù"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient authentication"
|
||||||
|
msgstr "Rènzhèng bùzú"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid "Insufficient encryption"
|
||||||
|
msgstr "Jiāmì bùzú"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||||
msgid "Invalid %q pin"
|
msgid "Invalid %q pin"
|
||||||
@ -1133,7 +1036,7 @@ msgstr "Zài ānquán móshì xià yùnxíng! Zìdòng chóngxīn jiāzài yǐ g
|
|||||||
msgid "Running in safe mode! Not running saved code.\n"
|
msgid "Running in safe mode! Not running saved code.\n"
|
||||||
msgstr "Zài ānquán móshì xià yùnxíng! Bù yùnxíng yǐ bǎocún de dàimǎ.\n"
|
msgstr "Zài ānquán móshì xià yùnxíng! Bù yùnxíng yǐ bǎocún de dàimǎ.\n"
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c ports/nrf/common-hal/busio/I2C.c
|
||||||
msgid "SDA or SCL needs a pull up"
|
msgid "SDA or SCL needs a pull up"
|
||||||
msgstr "SDA huò SCL xūyào lādòng"
|
msgstr "SDA huò SCL xūyào lādòng"
|
||||||
|
|
||||||
@ -1327,11 +1230,32 @@ msgstr "Wúfǎ xiě rù nvm."
|
|||||||
msgid "Unexpected nrfx uuid type"
|
msgid "Unexpected nrfx uuid type"
|
||||||
msgstr "Yìwài de nrfx uuid lèixíng"
|
msgstr "Yìwài de nrfx uuid lèixíng"
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown gatt error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown security error: 0x%04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
#, c-format
|
||||||
|
msgid "Unknown soft device error: %04x"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||||
msgstr "RHS (yùqí %d, huòdé %d) shàng wèi pǐpèi de xiàngmù."
|
msgstr "RHS (yùqí %d, huòdé %d) shàng wèi pǐpèi de xiàngmù."
|
||||||
|
|
||||||
|
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||||
|
msgid ""
|
||||||
|
"Unspecified issue. Can be that the pairing prompt on the other device was "
|
||||||
|
"declined or ignored."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
#: ports/atmel-samd/common-hal/busio/I2C.c
|
#: ports/atmel-samd/common-hal/busio/I2C.c
|
||||||
msgid "Unsupported baudrate"
|
msgid "Unsupported baudrate"
|
||||||
msgstr "Bù zhīchí de baudrate"
|
msgstr "Bù zhīchí de baudrate"
|
||||||
@ -2539,13 +2463,9 @@ msgstr "yùzhí bìxū zài fànwéi 0-65536"
|
|||||||
msgid "time.struct_time() takes a 9-sequence"
|
msgid "time.struct_time() takes a 9-sequence"
|
||||||
msgstr "time.struct_time() xūyào 9 xùliè"
|
msgstr "time.struct_time() xūyào 9 xùliè"
|
||||||
|
|
||||||
#: shared-bindings/time/__init__.c
|
|
||||||
msgid "time.struct_time() takes exactly 1 argument"
|
|
||||||
msgstr "time.struct_time() xūyào wánquán 1 cānshù"
|
|
||||||
|
|
||||||
#: shared-bindings/busio/UART.c
|
#: shared-bindings/busio/UART.c
|
||||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
msgid "timeout must be 0.0-100.0 seconds"
|
||||||
msgstr "chāoshí >100 (dānwèi shì miǎo, ér bùshì háomiǎo)"
|
msgstr "Chāo shí shíjiān bìxū wèi 0.0 Dào 100.0 Miǎo"
|
||||||
|
|
||||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||||
msgid "timeout must be >= 0.0"
|
msgid "timeout must be >= 0.0"
|
||||||
@ -2756,6 +2676,9 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Characteristic already in use by another Service."
|
#~ msgid "Characteristic already in use by another Service."
|
||||||
#~ msgstr "Qítā fúwù bùmén yǐ shǐyòng de gōngnéng."
|
#~ msgstr "Qítā fúwù bùmén yǐ shǐyòng de gōngnéng."
|
||||||
|
|
||||||
|
#~ msgid "Could not decode ble_uuid, err 0x%04x"
|
||||||
|
#~ msgstr "Wúfǎ jiěmǎ kě dú_uuid, err 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Data too large for the advertisement packet"
|
#~ msgid "Data too large for the advertisement packet"
|
||||||
#~ msgstr "Guǎnggào bāo de shùjù tài dà"
|
#~ msgstr "Guǎnggào bāo de shùjù tài dà"
|
||||||
|
|
||||||
@ -2765,21 +2688,21 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Failed to acquire mutex"
|
#~ msgid "Failed to acquire mutex"
|
||||||
#~ msgstr "Wúfǎ huòdé mutex"
|
#~ msgstr "Wúfǎ huòdé mutex"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||||
#~ msgstr "Tiānjiā tèxìng shībài, err 0x%04x"
|
#~ msgstr "Tiānjiā tèxìng shībài, err 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to add descriptor, err 0x%04x"
|
||||||
|
#~ msgstr "Wúfǎ tiānjiā miáoshù fú, err 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to add service"
|
#~ msgid "Failed to add service"
|
||||||
#~ msgstr "Tiānjiā fúwù shībài"
|
#~ msgstr "Tiānjiā fúwù shībài"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to add service, err 0x%04x"
|
#~ msgid "Failed to add service, err 0x%04x"
|
||||||
#~ msgstr "Tiānjiā fúwù shībài, err 0x%04x"
|
#~ msgstr "Tiānjiā fúwù shībài, err 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to change softdevice state"
|
#~ msgid "Failed to change softdevice state"
|
||||||
#~ msgstr "Gēnggǎi ruǎn shèbèi zhuàngtài shībài"
|
#~ msgstr "Gēnggǎi ruǎn shèbèi zhuàngtài shībài"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to configure advertising, err 0x%04x"
|
#~ msgid "Failed to configure advertising, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ pèizhì guǎnggào, cuòwù 0x%04x"
|
#~ msgstr "Wúfǎ pèizhì guǎnggào, cuòwù 0x%04x"
|
||||||
|
|
||||||
@ -2789,41 +2712,78 @@ msgstr "líng bù"
|
|||||||
#~ msgid "Failed to continue scanning"
|
#~ msgid "Failed to continue scanning"
|
||||||
#~ msgstr "Jìxù sǎomiáo shībài"
|
#~ msgstr "Jìxù sǎomiáo shībài"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||||
#~ msgstr "Jìxù sǎomiáo shībài, err 0x%04x"
|
#~ msgstr "Jìxù sǎomiáo shībài, err 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to create mutex"
|
#~ msgid "Failed to create mutex"
|
||||||
#~ msgstr "Wúfǎ chuàngjiàn hù chì suǒ"
|
#~ msgstr "Wúfǎ chuàngjiàn hù chì suǒ"
|
||||||
|
|
||||||
|
#~ msgid "Failed to discover services"
|
||||||
|
#~ msgstr "Fāxiàn fúwù shībài"
|
||||||
|
|
||||||
|
#~ msgid "Failed to get local address"
|
||||||
|
#~ msgstr "Huòqǔ běndì dìzhǐ shībài"
|
||||||
|
|
||||||
|
#~ msgid "Failed to get softdevice state"
|
||||||
|
#~ msgstr "Wúfǎ huòdé ruǎnjiàn shèbèi zhuàngtài"
|
||||||
|
|
||||||
|
#~ msgid "Failed to notify or indicate attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Wúfǎ tōngzhī huò xiǎnshì shǔxìng zhí, err 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to pair"
|
||||||
|
#~ msgstr "Pèiduì shībài"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read CCCD value, err 0x%04x"
|
||||||
|
#~ msgstr "Dòu qǔ CCCD zhí, err 0x%04x shībài"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Dòu qǔ shǔxìng zhí shībài, err 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to read gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Wúfǎ dòu qǔ gatts zhí, err 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to register Vendor-Specific UUID, err 0x%04x"
|
||||||
|
#~ msgstr "Wúfǎ zhùcè màizhǔ tèdìng de UUID, err 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to release mutex"
|
#~ msgid "Failed to release mutex"
|
||||||
#~ msgstr "Wúfǎ shìfàng mutex"
|
#~ msgstr "Wúfǎ shìfàng mutex"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to set device name, err 0x%04x"
|
#~ msgid "Failed to set device name, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ shèzhì shèbèi míngchēng, cuòwù 0x%04x"
|
#~ msgstr "Wúfǎ shèzhì shèbèi míngchēng, cuòwù 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to start advertising"
|
#~ msgid "Failed to start advertising"
|
||||||
#~ msgstr "Qǐdòng guǎnggào shībài"
|
#~ msgstr "Qǐdòng guǎnggào shībài"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||||
#~ msgstr "Qǐdòng guǎnggào shībài, err 0x%04x"
|
#~ msgstr "Qǐdòng guǎnggào shībài, err 0x%04x"
|
||||||
|
|
||||||
#, c-format
|
#~ msgid "Failed to start connecting, error 0x%04x"
|
||||||
|
#~ msgstr "Wúfǎ kāishǐ liánjiē, cuòwù 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to start pairing, error 0x%04x"
|
#~ msgid "Failed to start pairing, error 0x%04x"
|
||||||
#~ msgstr "Wúfǎ kāishǐ pèiduì, cuòwù 0x%04x"
|
#~ msgstr "Wúfǎ kāishǐ pèiduì, cuòwù 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to start scanning"
|
#~ msgid "Failed to start scanning"
|
||||||
#~ msgstr "Qǐdòng sǎomiáo shībài"
|
#~ msgstr "Qǐdòng sǎomiáo shībài"
|
||||||
|
|
||||||
|
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||||
|
#~ msgstr "Qǐdòng sǎomiáo shībài, err 0x%04x"
|
||||||
|
|
||||||
#~ msgid "Failed to stop advertising"
|
#~ msgid "Failed to stop advertising"
|
||||||
#~ msgstr "Wúfǎ tíngzhǐ guǎnggào"
|
#~ msgstr "Wúfǎ tíngzhǐ guǎnggào"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||||
#~ msgstr "Wúfǎ tíngzhǐ guǎnggào, err 0x%04x"
|
#~ msgstr "Wúfǎ tíngzhǐ guǎnggào, err 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write CCCD, err 0x%04x"
|
||||||
|
#~ msgstr "Wúfǎ xiě rù CCCD, cuòwù 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write attribute value, err 0x%04x"
|
||||||
|
#~ msgstr "Xiě rù shǔxìng zhí shībài, err 0x%04x"
|
||||||
|
|
||||||
|
#~ msgid "Failed to write gatts value, err 0x%04x"
|
||||||
|
#~ msgstr "Xiě rù gatts zhí,err 0x%04x shībài"
|
||||||
|
|
||||||
#~ msgid "Invalid bit clock pin"
|
#~ msgid "Invalid bit clock pin"
|
||||||
#~ msgstr "Wúxiào de wèi shízhōng yǐn jiǎo"
|
#~ msgstr "Wúxiào de wèi shízhōng yǐn jiǎo"
|
||||||
|
|
||||||
@ -2854,7 +2814,6 @@ msgstr "líng bù"
|
|||||||
#~ msgstr ""
|
#~ msgstr ""
|
||||||
#~ "Jǐn zhīchí dān sè, suǒyǐn 8bpp hé 16bpp huò gèng dà de BMP: %d bpp tígōng"
|
#~ "Jǐn zhīchí dān sè, suǒyǐn 8bpp hé 16bpp huò gèng dà de BMP: %d bpp tígōng"
|
||||||
|
|
||||||
#, c-format
|
|
||||||
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||||
#~ msgstr "Ruǎn shèbèi wéihù, id: 0X%08lX, pc: 0X%08lX"
|
#~ msgstr "Ruǎn shèbèi wéihù, id: 0X%08lX, pc: 0X%08lX"
|
||||||
|
|
||||||
@ -2891,6 +2850,12 @@ msgstr "líng bù"
|
|||||||
#~ msgid "tile index out of bounds"
|
#~ msgid "tile index out of bounds"
|
||||||
#~ msgstr "kuài suǒyǐn chāochū fànwéi"
|
#~ msgstr "kuài suǒyǐn chāochū fànwéi"
|
||||||
|
|
||||||
|
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||||
|
#~ msgstr "time.struct_time() xūyào wánquán 1 cānshù"
|
||||||
|
|
||||||
|
#~ msgid "timeout >100 (units are now seconds, not msecs)"
|
||||||
|
#~ msgstr "chāoshí >100 (dānwèi shì miǎo, ér bùshì háomiǎo)"
|
||||||
|
|
||||||
#~ msgid "too many arguments"
|
#~ msgid "too many arguments"
|
||||||
#~ msgstr "tài duō cānshù"
|
#~ msgstr "tài duō cānshù"
|
||||||
|
|
||||||
|
@ -122,7 +122,16 @@ else
|
|||||||
ifdef CFLAGS_INLINE_LIMIT
|
ifdef CFLAGS_INLINE_LIMIT
|
||||||
CFLAGS += -finline-limit=$(CFLAGS_INLINE_LIMIT)
|
CFLAGS += -finline-limit=$(CFLAGS_INLINE_LIMIT)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += -flto -flto-partition=none
|
CFLAGS += -flto -flto-partition=none
|
||||||
|
|
||||||
|
ifeq ($(CIRCUITPY_SMALL_BUILD),1)
|
||||||
|
CFLAGS += --param inline-unit-growth=15 --param max-inline-insns-auto=20
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifdef CFLAGS_BOARD
|
||||||
|
CFLAGS += $(CFLAGS_BOARD)
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -nostdlib $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
|
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -nostdlib $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
|
||||||
|
@ -28,6 +28,7 @@
|
|||||||
#include "audio_dma.h"
|
#include "audio_dma.h"
|
||||||
#include "tick.h"
|
#include "tick.h"
|
||||||
#include "supervisor/filesystem.h"
|
#include "supervisor/filesystem.h"
|
||||||
|
#include "supervisor/shared/tick.h"
|
||||||
#include "supervisor/usb.h"
|
#include "supervisor/usb.h"
|
||||||
|
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
@ -44,6 +45,23 @@ bool stack_ok_so_far = true;
|
|||||||
|
|
||||||
static bool running_background_tasks = false;
|
static bool running_background_tasks = false;
|
||||||
|
|
||||||
|
#ifdef MONITOR_BACKGROUND_TASKS
|
||||||
|
// PB03 is physical pin "SCL" on the Metro M4 express
|
||||||
|
// so you can't use this code AND an i2c peripheral
|
||||||
|
// at the same time unless you change this
|
||||||
|
STATIC void start_background_task(void) {
|
||||||
|
REG_PORT_DIRSET1 = (1<<3);
|
||||||
|
REG_PORT_OUTSET1 = (1<<3);
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC void finish_background_task(void) {
|
||||||
|
REG_PORT_OUTCLR1 = (1<<3);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
STATIC void start_background_task(void) {}
|
||||||
|
STATIC void finish_background_task(void) {}
|
||||||
|
#endif
|
||||||
|
|
||||||
void background_tasks_reset(void) {
|
void background_tasks_reset(void) {
|
||||||
running_background_tasks = false;
|
running_background_tasks = false;
|
||||||
}
|
}
|
||||||
@ -53,6 +71,9 @@ void run_background_tasks(void) {
|
|||||||
if (running_background_tasks) {
|
if (running_background_tasks) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
start_background_task();
|
||||||
|
|
||||||
assert_heap_ok();
|
assert_heap_ok();
|
||||||
running_background_tasks = true;
|
running_background_tasks = true;
|
||||||
|
|
||||||
@ -71,9 +92,10 @@ void run_background_tasks(void) {
|
|||||||
running_background_tasks = false;
|
running_background_tasks = false;
|
||||||
assert_heap_ok();
|
assert_heap_ok();
|
||||||
|
|
||||||
last_finished_tick = ticks_ms;
|
last_finished_tick = supervisor_ticks_ms64();
|
||||||
|
finish_background_task();
|
||||||
}
|
}
|
||||||
|
|
||||||
bool background_tasks_ok(void) {
|
bool background_tasks_ok(void) {
|
||||||
return ticks_ms - last_finished_tick < 1000;
|
return supervisor_ticks_ms64() - last_finished_tick < 1000;
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,5 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
EXTERNAL_FLASH_DEVICES = "W25Q128JV_PM"
|
EXTERNAL_FLASH_DEVICES = "W25Q128JV_PM"
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G.
|
# No I2S on SAMD51G.
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
||||||
EXTERNAL_FLASH_DEVICES = "GD25Q16C, W25Q16JV_IQ, W25Q16JV_IM"
|
EXTERNAL_FLASH_DEVICES = "GD25Q16C, W25Q16JV_IQ, W25Q16JV_IM"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -11,5 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 2
|
EXTERNAL_FLASH_DEVICE_COUNT = 2
|
||||||
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ, GD25Q64C"
|
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ, GD25Q64C"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -12,7 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G
|
# No I2S on SAMD51G
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
|
|
||||||
|
@ -14,3 +14,5 @@ LONGINT_IMPL = MPZ
|
|||||||
# Not needed.
|
# Not needed.
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
CIRCUITPY_DISPLAYIO = 0
|
CIRCUITPY_DISPLAYIO = 0
|
||||||
|
CIRCUITPY_NETWORK = 0
|
||||||
|
CIRCUITPY_PS2IO = 0
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
||||||
EXTERNAL_FLASH_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
EXTERNAL_FLASH_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
||||||
EXTERNAL_FLASH_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
EXTERNAL_FLASH_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_NETWORK = 1
|
|
||||||
MICROPY_PY_WIZNET5K = 5500
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
|
@ -12,7 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = "W25Q16JV_IM"
|
EXTERNAL_FLASH_DEVICES = "W25Q16JV_IM"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G
|
# No I2S on SAMD51G
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
|
|
||||||
|
@ -11,6 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
|||||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
|
@ -23,3 +23,5 @@ CIRCUITPY_USB_MIDI = 0
|
|||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/pew-pewpew-standalone-10.x
|
FROZEN_MPY_DIRS += $(TOP)/frozen/pew-pewpew-standalone-10.x
|
||||||
|
|
||||||
|
CFLAGS_BOARD = --param max-inline-insns-auto=15
|
||||||
|
@ -17,7 +17,9 @@ CIRCUITPY_BITBANGIO = 0
|
|||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CSLAVE = 0
|
||||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||||
|
CIRCUITPY_NETWORK = 0
|
||||||
CIRCUITPY_PIXELBUF = 0
|
CIRCUITPY_PIXELBUF = 0
|
||||||
|
CIRCUITPY_PS2IO = 0
|
||||||
CIRCUITPY_RTC = 0
|
CIRCUITPY_RTC = 0
|
||||||
CIRCUITPY_TOUCHIO = 0
|
CIRCUITPY_TOUCHIO = 0
|
||||||
CIRCUITPY_USB_HID = 0
|
CIRCUITPY_USB_HID = 0
|
||||||
|
@ -26,6 +26,8 @@ CIRCUITPY_SMALL_BUILD = 1
|
|||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
|
||||||
# Include these Python libraries in firmware.
|
# Include these Python libraries in firmware.
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar
|
# FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_DotStar
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_HID
|
||||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_IRRemote
|
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_IRRemote
|
||||||
|
|
||||||
|
CFLAGS_BOARD = --param max-inline-insns-auto=12
|
||||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
CIRCUITPY_GAMEPAD = 1
|
CIRCUITPY_GAMEPAD = 1
|
||||||
CIRCUITPY_GAMEPADSHIFT = 1
|
CIRCUITPY_GAMEPADSHIFT = 1
|
||||||
CIRCUITPY_STAGE = 1
|
CIRCUITPY_STAGE = 1
|
||||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
CIRCUITPY_GAMEPAD = 1
|
CIRCUITPY_GAMEPAD = 1
|
||||||
CIRCUITPY_GAMEPADSHIFT = 1
|
CIRCUITPY_GAMEPADSHIFT = 1
|
||||||
CIRCUITPY_STAGE = 1
|
CIRCUITPY_STAGE = 1
|
||||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
CIRCUITPY_GAMEPAD = 1
|
CIRCUITPY_GAMEPAD = 1
|
||||||
CIRCUITPY_GAMEPADSHIFT = 1
|
CIRCUITPY_GAMEPADSHIFT = 1
|
||||||
CIRCUITPY_STAGE = 1
|
CIRCUITPY_STAGE = 1
|
||||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 1
|
|
||||||
CIRCUITPY_DISPLAYIO = 1
|
|
||||||
CIRCUITPY_GAMEPAD = 1
|
CIRCUITPY_GAMEPAD = 1
|
||||||
CIRCUITPY_GAMEPADSHIFT = 1
|
CIRCUITPY_GAMEPADSHIFT = 1
|
||||||
CIRCUITPY_STAGE = 1
|
CIRCUITPY_STAGE = 1
|
||||||
|
@ -12,3 +12,8 @@ LONGINT_IMPL = NONE
|
|||||||
CIRCUITPY_SMALL_BUILD = 1
|
CIRCUITPY_SMALL_BUILD = 1
|
||||||
|
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
|
||||||
|
CFLAGS_BOARD = --param max-inline-insns-auto=15
|
||||||
|
ifeq ($(TRANSLATION), zh_Latn_pinyin)
|
||||||
|
CFLAGS_INLINE_LIMIT = 35
|
||||||
|
endif
|
@ -14,7 +14,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
|||||||
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ"
|
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G
|
# No I2S on SAMD51G
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
# Make room for more stuff
|
# Make room for more stuff
|
||||||
|
37
ports/atmel-samd/boards/shirtty/board.c
Normal file
37
ports/atmel-samd/boards/shirtty/board.c
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2017 Scott Shawcroft for Adafruit Industries
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "boards/board.h"
|
||||||
|
|
||||||
|
void board_init(void) {
|
||||||
|
}
|
||||||
|
|
||||||
|
bool board_requests_safe_mode(void) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void reset_board(void) {
|
||||||
|
}
|
67
ports/atmel-samd/boards/shirtty/mpconfigboard.h
Normal file
67
ports/atmel-samd/boards/shirtty/mpconfigboard.h
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
#define MICROPY_HW_BOARD_NAME "@sarfata shIRtty"
|
||||||
|
#define MICROPY_HW_MCU_NAME "samd21e18"
|
||||||
|
|
||||||
|
#define MICROPY_HW_LED_STATUS (&pin_PA16)
|
||||||
|
|
||||||
|
#define MICROPY_PORT_A (PORT_PA00 | PORT_PA01)
|
||||||
|
#define MICROPY_PORT_B (0)
|
||||||
|
#define MICROPY_PORT_C (0)
|
||||||
|
|
||||||
|
#define CIRCUITPY_INTERNAL_NVM_SIZE 256
|
||||||
|
|
||||||
|
#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - 0x010000 - CIRCUITPY_INTERNAL_NVM_SIZE)
|
||||||
|
|
||||||
|
// #define IGNORE_PIN_PA00 1
|
||||||
|
// #define IGNORE_PIN_PA01 1
|
||||||
|
// #define IGNORE_PIN_PA02 1
|
||||||
|
#define IGNORE_PIN_PA03 1
|
||||||
|
#define IGNORE_PIN_PA04 1
|
||||||
|
#define IGNORE_PIN_PA05 1
|
||||||
|
#define IGNORE_PIN_PA11 1
|
||||||
|
#define IGNORE_PIN_PA12 1
|
||||||
|
#define IGNORE_PIN_PA13 1
|
||||||
|
#define IGNORE_PIN_PA17 1
|
||||||
|
#define IGNORE_PIN_PA18 1
|
||||||
|
#define IGNORE_PIN_PA19 1
|
||||||
|
#define IGNORE_PIN_PA20 1
|
||||||
|
#define IGNORE_PIN_PA21 1
|
||||||
|
#define IGNORE_PIN_PA22 1
|
||||||
|
// USB is always used internally so skip the pin objects for it.
|
||||||
|
#define IGNORE_PIN_PA24 1
|
||||||
|
#define IGNORE_PIN_PA25 1
|
||||||
|
#define IGNORE_PIN_PA27 1
|
||||||
|
#define IGNORE_PIN_PA28 1
|
||||||
|
#define IGNORE_PIN_PA30 1
|
||||||
|
#define IGNORE_PIN_PA31 1
|
||||||
|
#define IGNORE_PIN_PB01 1
|
||||||
|
#define IGNORE_PIN_PB02 1
|
||||||
|
#define IGNORE_PIN_PB03 1
|
||||||
|
#define IGNORE_PIN_PB04 1
|
||||||
|
#define IGNORE_PIN_PB05 1
|
||||||
|
#define IGNORE_PIN_PB06 1
|
||||||
|
#define IGNORE_PIN_PB07 1
|
||||||
|
#define IGNORE_PIN_PB08 1
|
||||||
|
#define IGNORE_PIN_PB09 1
|
||||||
|
#define IGNORE_PIN_PB10 1
|
||||||
|
#define IGNORE_PIN_PB11 1
|
||||||
|
#define IGNORE_PIN_PB12 1
|
||||||
|
#define IGNORE_PIN_PB13 1
|
||||||
|
#define IGNORE_PIN_PB14 1
|
||||||
|
#define IGNORE_PIN_PB15 1
|
||||||
|
#define IGNORE_PIN_PB16 1
|
||||||
|
#define IGNORE_PIN_PB17 1
|
||||||
|
#define IGNORE_PIN_PB22 1
|
||||||
|
#define IGNORE_PIN_PB23 1
|
||||||
|
#define IGNORE_PIN_PB30 1
|
||||||
|
#define IGNORE_PIN_PB31 1
|
||||||
|
#define IGNORE_PIN_PB00 1
|
||||||
|
|
||||||
|
#define DEFAULT_I2C_BUS_SCL (&pin_PA09)
|
||||||
|
#define DEFAULT_I2C_BUS_SDA (&pin_PA08)
|
||||||
|
|
||||||
|
#define DEFAULT_SPI_BUS_SCK (&pin_PA07)
|
||||||
|
#define DEFAULT_SPI_BUS_MOSI (&pin_PA06)
|
||||||
|
#define DEFAULT_SPI_BUS_MISO (&pin_PA09)
|
||||||
|
|
||||||
|
#define DEFAULT_UART_BUS_RX (&pin_PA07)
|
||||||
|
#define DEFAULT_UART_BUS_TX (&pin_PA06)
|
16
ports/atmel-samd/boards/shirtty/mpconfigboard.mk
Normal file
16
ports/atmel-samd/boards/shirtty/mpconfigboard.mk
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
LD_FILE = boards/samd21x18-bootloader.ld
|
||||||
|
USB_VID = 0x239A
|
||||||
|
USB_PID = 0x806C
|
||||||
|
USB_PRODUCT = "shIRtty"
|
||||||
|
USB_MANUFACTURER = "@sarfata"
|
||||||
|
|
||||||
|
CHIP_VARIANT = SAMD21E18A
|
||||||
|
CHIP_FAMILY = samd21
|
||||||
|
|
||||||
|
INTERNAL_FLASH_FILESYSTEM = 1
|
||||||
|
LONGINT_IMPL = NONE
|
||||||
|
CIRCUITPY_SMALL_BUILD = 1
|
||||||
|
CIRCUITPY_I2CSLAVE = 1
|
||||||
|
CIRCUITPY_TOUCHIO = 0
|
||||||
|
|
||||||
|
SUPEROPT_GC = 0
|
36
ports/atmel-samd/boards/shirtty/pins.c
Normal file
36
ports/atmel-samd/boards/shirtty/pins.c
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#include "shared-bindings/board/__init__.h"
|
||||||
|
|
||||||
|
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA08) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA08) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IR_RX), MP_ROM_PTR(&pin_PA10) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA09) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA07) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_A4), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA06) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA14) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA15) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA16) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA23) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_IR_TX), MP_ROM_PTR(&pin_PA23) },
|
||||||
|
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||||
|
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||||
|
};
|
||||||
|
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -12,7 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 2
|
|||||||
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ, GD25Q64C"
|
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ, GD25Q64C"
|
||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
CIRCUITPY_PS2IO = 1
|
|
||||||
# No I2S on SAMD51G
|
# No I2S on SAMD51G
|
||||||
CIRCUITPY_AUDIOBUSIO = 0
|
CIRCUITPY_AUDIOBUSIO = 0
|
||||||
|
|
||||||
|
@ -12,3 +12,9 @@ LONGINT_IMPL = NONE
|
|||||||
CIRCUITPY_SMALL_BUILD = 1
|
CIRCUITPY_SMALL_BUILD = 1
|
||||||
|
|
||||||
SUPEROPT_GC = 0
|
SUPEROPT_GC = 0
|
||||||
|
|
||||||
|
CFLAGS_BOARD = --param max-inline-insns-auto=15
|
||||||
|
ifeq ($(TRANSLATION), zh_Latn_pinyin)
|
||||||
|
CFLAGS_INLINE_LIMIT = 35
|
||||||
|
endif
|
||||||
|
|
||||||
|
@ -6,6 +6,7 @@ USB_VID = 0x239A
|
|||||||
USB_PID = 0x8062
|
USB_PID = 0x8062
|
||||||
USB_PRODUCT = "Sol"
|
USB_PRODUCT = "Sol"
|
||||||
USB_MANUFACTURER = "Winterbloom"
|
USB_MANUFACTURER = "Winterbloom"
|
||||||
|
USB_INTERFACE_NAME = "Sol"
|
||||||
|
|
||||||
CHIP_VARIANT = SAMD51J20A
|
CHIP_VARIANT = SAMD51J20A
|
||||||
CHIP_FAMILY = samd51
|
CHIP_FAMILY = samd51
|
||||||
|
@ -34,8 +34,7 @@
|
|||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
#include "py/stream.h"
|
#include "py/stream.h"
|
||||||
#include "supervisor/shared/translate.h"
|
#include "supervisor/shared/translate.h"
|
||||||
|
#include "supervisor/shared/tick.h"
|
||||||
#include "tick.h"
|
|
||||||
|
|
||||||
#include "hpl_sercom_config.h"
|
#include "hpl_sercom_config.h"
|
||||||
#include "peripheral_clk_config.h"
|
#include "peripheral_clk_config.h"
|
||||||
@ -272,10 +271,10 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
|
|||||||
usart_async_get_io_descriptor(usart_desc_p, &io);
|
usart_async_get_io_descriptor(usart_desc_p, &io);
|
||||||
|
|
||||||
size_t total_read = 0;
|
size_t total_read = 0;
|
||||||
uint64_t start_ticks = ticks_ms;
|
uint64_t start_ticks = supervisor_ticks_ms64();
|
||||||
|
|
||||||
// Busy-wait until timeout or until we've read enough chars.
|
// Busy-wait until timeout or until we've read enough chars.
|
||||||
while (ticks_ms - start_ticks <= self->timeout_ms) {
|
while (supervisor_ticks_ms64() - start_ticks <= self->timeout_ms) {
|
||||||
// Read as many chars as we can right now, up to len.
|
// Read as many chars as we can right now, up to len.
|
||||||
size_t num_read = io_read(io, data, len);
|
size_t num_read = io_read(io, data, len);
|
||||||
|
|
||||||
@ -289,7 +288,7 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
|
|||||||
}
|
}
|
||||||
if (num_read > 0) {
|
if (num_read > 0) {
|
||||||
// Reset the timeout on every character read.
|
// Reset the timeout on every character read.
|
||||||
start_ticks = ticks_ms;
|
start_ticks = supervisor_ticks_ms64();
|
||||||
}
|
}
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
// Allow user to break out of a timeout with a KeyboardInterrupt.
|
// Allow user to break out of a timeout with a KeyboardInterrupt.
|
||||||
@ -323,29 +322,23 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self, const uint8_t *data,
|
|||||||
struct io_descriptor *io;
|
struct io_descriptor *io;
|
||||||
usart_async_get_io_descriptor(usart_desc_p, &io);
|
usart_async_get_io_descriptor(usart_desc_p, &io);
|
||||||
|
|
||||||
|
// Start writing characters. This is non-blocking and will
|
||||||
|
// return immediately after setting up the write.
|
||||||
if (io_write(io, data, len) < 0) {
|
if (io_write(io, data, len) < 0) {
|
||||||
*errcode = MP_EAGAIN;
|
*errcode = MP_EAGAIN;
|
||||||
return MP_STREAM_ERROR;
|
return MP_STREAM_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wait until write is complete or timeout.
|
// Busy-wait until all characters transmitted.
|
||||||
bool done = false;
|
struct usart_async_status async_status;
|
||||||
uint64_t start_ticks = ticks_ms;
|
while (true) {
|
||||||
// Busy-wait for timeout.
|
usart_async_get_status(usart_desc_p, &async_status);
|
||||||
while (ticks_ms - start_ticks < self->timeout_ms) {
|
if (async_status.txcnt >= len) {
|
||||||
if (usart_async_is_tx_empty(usart_desc_p)) {
|
|
||||||
done = true;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!done) {
|
|
||||||
*errcode = MP_EAGAIN;
|
|
||||||
return MP_STREAM_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
// All the characters got written.
|
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -368,6 +361,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
|||||||
self->baudrate = baudrate;
|
self->baudrate = baudrate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self) {
|
||||||
|
return (mp_float_t) (self->timeout_ms / 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeout) {
|
||||||
|
self->timeout_ms = timeout * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
||||||
// This assignment is only here because the usart_async routines take a *const argument.
|
// This assignment is only here because the usart_async routines take a *const argument.
|
||||||
struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||||
@ -383,12 +384,14 @@ void common_hal_busio_uart_clear_rx_buffer(busio_uart_obj_t *self) {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// True if there are no characters still to be written.
|
||||||
bool common_hal_busio_uart_ready_to_tx(busio_uart_obj_t *self) {
|
bool common_hal_busio_uart_ready_to_tx(busio_uart_obj_t *self) {
|
||||||
if (self->tx_pin == NO_PIN) {
|
if (self->tx_pin == NO_PIN) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
// This assignment is only here because the usart_async routines take a *const argument.
|
// This assignment is only here because the usart_async routines take a *const argument.
|
||||||
const struct _usart_async_device * const usart_device_p =
|
struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||||
(struct _usart_async_device * const) &self->usart_desc.device;
|
struct usart_async_status async_status;
|
||||||
return _usart_async_is_byte_sent(usart_device_p);
|
usart_async_get_status(usart_desc_p, &async_status);
|
||||||
|
return !(async_status.flags & USART_ASYNC_STATUS_BUSY);
|
||||||
}
|
}
|
||||||
|
@ -28,10 +28,10 @@
|
|||||||
|
|
||||||
#include "shared-bindings/time/__init__.h"
|
#include "shared-bindings/time/__init__.h"
|
||||||
|
|
||||||
#include "tick.h"
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
inline uint64_t common_hal_time_monotonic() {
|
inline uint64_t common_hal_time_monotonic() {
|
||||||
return ticks_ms;
|
return supervisor_ticks_ms64();
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_time_delay_ms(uint32_t delay) {
|
void common_hal_time_delay_ms(uint32_t delay) {
|
||||||
|
@ -16,10 +16,18 @@ endif
|
|||||||
|
|
||||||
# Put samd21-only choices here.
|
# Put samd21-only choices here.
|
||||||
ifeq ($(CHIP_FAMILY),samd21)
|
ifeq ($(CHIP_FAMILY),samd21)
|
||||||
# frequencyio not yet verified as working on SAMD21.
|
# frequencyio not yet verified as working on SAMD21, though make it possible to override.
|
||||||
|
ifndef CIRCUITPY_AUDIOMIXER
|
||||||
CIRCUITPY_AUDIOMIXER = 0
|
CIRCUITPY_AUDIOMIXER = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_FREQUENCYIO
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_TOUCHIO_USE_NATIVE
|
||||||
CIRCUITPY_TOUCHIO_USE_NATIVE = 1
|
CIRCUITPY_TOUCHIO_USE_NATIVE = 1
|
||||||
|
endif
|
||||||
|
|
||||||
# SAMD21 needs separate endpoint pairs for MSC BULK IN and BULK OUT, otherwise it's erratic.
|
# SAMD21 needs separate endpoint pairs for MSC BULK IN and BULK OUT, otherwise it's erratic.
|
||||||
USB_MSC_EP_NUM_OUT = 1
|
USB_MSC_EP_NUM_OUT = 1
|
||||||
@ -27,8 +35,24 @@ endif
|
|||||||
|
|
||||||
# Put samd51-only choices here.
|
# Put samd51-only choices here.
|
||||||
ifeq ($(CHIP_FAMILY),samd51)
|
ifeq ($(CHIP_FAMILY),samd51)
|
||||||
CIRCUITPY_SAMD = 1
|
# No native touchio on SAMD51.
|
||||||
CIRCUITPY_TOUCHIO_USE_NATIVE = 0
|
CIRCUITPY_TOUCHIO_USE_NATIVE = 0
|
||||||
|
|
||||||
|
# The ifndef's allow overriding in mpconfigboard.mk.
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_NETWORK
|
||||||
|
CIRCUITPY_NETWORK = 1
|
||||||
|
MICROPY_PY_WIZNET5K = 5500
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_PS2IO
|
||||||
|
CIRCUITPY_PS2IO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_SAMD
|
||||||
|
CIRCUITPY_SAMD = 1
|
||||||
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
INTERNAL_LIBM = 1
|
INTERNAL_LIBM = 1
|
||||||
|
@ -45,12 +45,12 @@
|
|||||||
#include "mpconfigboard.h"
|
#include "mpconfigboard.h"
|
||||||
#include "mphalport.h"
|
#include "mphalport.h"
|
||||||
#include "reset.h"
|
#include "reset.h"
|
||||||
#include "tick.h"
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
extern uint32_t common_hal_mcu_processor_get_frequency(void);
|
extern uint32_t common_hal_mcu_processor_get_frequency(void);
|
||||||
|
|
||||||
void mp_hal_delay_ms(mp_uint_t delay) {
|
void mp_hal_delay_ms(mp_uint_t delay) {
|
||||||
uint64_t start_tick = ticks_ms;
|
uint64_t start_tick = supervisor_ticks_ms64();
|
||||||
uint64_t duration = 0;
|
uint64_t duration = 0;
|
||||||
while (duration < delay) {
|
while (duration < delay) {
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
@ -59,7 +59,7 @@ void mp_hal_delay_ms(mp_uint_t delay) {
|
|||||||
MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
|
MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
duration = (ticks_ms - start_tick);
|
duration = (supervisor_ticks_ms64() - start_tick);
|
||||||
// TODO(tannewt): Go to sleep for a little while while we wait.
|
// TODO(tannewt): Go to sleep for a little while while we wait.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,11 +31,11 @@
|
|||||||
|
|
||||||
#include "lib/oofatfs/ff.h"
|
#include "lib/oofatfs/ff.h"
|
||||||
|
|
||||||
// Global millisecond tick count (driven by SysTick interrupt).
|
#include "supervisor/shared/tick.h"
|
||||||
extern volatile uint64_t ticks_ms;
|
|
||||||
|
|
||||||
|
// Global millisecond tick count (driven by SysTick interrupt).
|
||||||
static inline mp_uint_t mp_hal_ticks_ms(void) {
|
static inline mp_uint_t mp_hal_ticks_ms(void) {
|
||||||
return ticks_ms;
|
return supervisor_ticks_ms32();
|
||||||
}
|
}
|
||||||
// Number of bytes in receive buffer
|
// Number of bytes in receive buffer
|
||||||
volatile uint8_t usb_rx_count;
|
volatile uint8_t usb_rx_count;
|
||||||
|
@ -28,47 +28,21 @@
|
|||||||
|
|
||||||
#include "peripheral_clk_config.h"
|
#include "peripheral_clk_config.h"
|
||||||
|
|
||||||
#include "supervisor/shared/autoreload.h"
|
#include "supervisor/shared/tick.h"
|
||||||
#include "supervisor/filesystem.h"
|
|
||||||
#include "shared-bindings/microcontroller/__init__.h"
|
#include "shared-bindings/microcontroller/__init__.h"
|
||||||
#include "shared-bindings/microcontroller/Processor.h"
|
#include "shared-bindings/microcontroller/Processor.h"
|
||||||
|
|
||||||
#if CIRCUITPY_GAMEPAD
|
|
||||||
#include "shared-module/gamepad/__init__.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if CIRCUITPY_GAMEPADSHIFT
|
|
||||||
#include "shared-module/gamepadshift/__init__.h"
|
|
||||||
#endif
|
|
||||||
// Global millisecond tick count
|
|
||||||
volatile uint64_t ticks_ms = 0;
|
|
||||||
|
|
||||||
void SysTick_Handler(void) {
|
void SysTick_Handler(void) {
|
||||||
// SysTick interrupt handler called when the SysTick timer reaches zero
|
// SysTick interrupt handler called when the SysTick timer reaches zero
|
||||||
// (every millisecond).
|
// (every millisecond).
|
||||||
common_hal_mcu_disable_interrupts();
|
common_hal_mcu_disable_interrupts();
|
||||||
ticks_ms += 1;
|
|
||||||
|
|
||||||
// Read the control register to reset the COUNTFLAG.
|
// Read the control register to reset the COUNTFLAG.
|
||||||
(void) SysTick->CTRL;
|
(void) SysTick->CTRL;
|
||||||
common_hal_mcu_enable_interrupts();
|
common_hal_mcu_enable_interrupts();
|
||||||
|
|
||||||
#if CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS > 0
|
// Do things common to all ports when the tick occurs
|
||||||
filesystem_tick();
|
supervisor_tick();
|
||||||
#endif
|
|
||||||
#ifdef CIRCUITPY_AUTORELOAD_DELAY_MS
|
|
||||||
autoreload_tick();
|
|
||||||
#endif
|
|
||||||
#ifdef CIRCUITPY_GAMEPAD_TICKS
|
|
||||||
if (!(ticks_ms & CIRCUITPY_GAMEPAD_TICKS)) {
|
|
||||||
#if CIRCUITPY_GAMEPAD
|
|
||||||
gamepad_tick();
|
|
||||||
#endif
|
|
||||||
#if CIRCUITPY_GAMEPADSHIFT
|
|
||||||
gamepadshift_tick();
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tick_init() {
|
void tick_init() {
|
||||||
@ -115,7 +89,7 @@ void current_tick(uint64_t* ms, uint32_t* us_until_ms) {
|
|||||||
uint32_t tick_status = SysTick->CTRL;
|
uint32_t tick_status = SysTick->CTRL;
|
||||||
uint32_t current_us = SysTick->VAL;
|
uint32_t current_us = SysTick->VAL;
|
||||||
uint32_t tick_status2 = SysTick->CTRL;
|
uint32_t tick_status2 = SysTick->CTRL;
|
||||||
uint64_t current_ms = ticks_ms;
|
uint64_t current_ms = supervisor_ticks_ms64();
|
||||||
// The second clause ensures our value actually rolled over. Its possible it hit zero between
|
// The second clause ensures our value actually rolled over. Its possible it hit zero between
|
||||||
// the VAL read and CTRL read.
|
// the VAL read and CTRL read.
|
||||||
if ((tick_status & SysTick_CTRL_COUNTFLAG_Msk) != 0 ||
|
if ((tick_status & SysTick_CTRL_COUNTFLAG_Msk) != 0 ||
|
||||||
@ -129,5 +103,5 @@ void current_tick(uint64_t* ms, uint32_t* us_until_ms) {
|
|||||||
|
|
||||||
void wait_until(uint64_t ms, uint32_t us_until_ms) {
|
void wait_until(uint64_t ms, uint32_t us_until_ms) {
|
||||||
uint32_t ticks_per_us = common_hal_mcu_processor_get_frequency() / 1000 / 1000;
|
uint32_t ticks_per_us = common_hal_mcu_processor_get_frequency() / 1000 / 1000;
|
||||||
while (ticks_ms <= ms && SysTick->VAL / ticks_per_us >= us_until_ms) {}
|
while (supervisor_ticks_ms64() <= ms && SysTick->VAL / ticks_per_us >= us_until_ms) {}
|
||||||
}
|
}
|
||||||
|
@ -28,8 +28,6 @@
|
|||||||
|
|
||||||
#include "py/mpconfig.h"
|
#include "py/mpconfig.h"
|
||||||
|
|
||||||
extern volatile uint64_t ticks_ms;
|
|
||||||
|
|
||||||
extern struct timer_descriptor ms_timer;
|
extern struct timer_descriptor ms_timer;
|
||||||
|
|
||||||
void tick_init(void);
|
void tick_init(void);
|
||||||
|
@ -102,7 +102,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
|||||||
self->tx_pin = tx;
|
self->tx_pin = tx;
|
||||||
self->rx_pin = rx;
|
self->rx_pin = rx;
|
||||||
self->baudrate = baudrate;
|
self->baudrate = baudrate;
|
||||||
self->timeout = timeout;
|
self->timeout_us = timeout * 1000000;
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
|
void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
|
||||||
@ -135,7 +135,7 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
|
|||||||
FD_SET(busio_uart_dev[self->number].fd, &rfds);
|
FD_SET(busio_uart_dev[self->number].fd, &rfds);
|
||||||
|
|
||||||
tv.tv_sec = 0;
|
tv.tv_sec = 0;
|
||||||
tv.tv_usec = self->timeout * 1000;
|
tv.tv_usec = self->timeout_us;
|
||||||
|
|
||||||
retval = select(busio_uart_dev[self->number].fd + 1, &rfds, NULL, NULL, &tv);
|
retval = select(busio_uart_dev[self->number].fd + 1, &rfds, NULL, NULL, &tv);
|
||||||
|
|
||||||
@ -172,6 +172,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
|||||||
ioctl(busio_uart_dev[self->number].fd, TCFLSH, (long unsigned int)NULL);
|
ioctl(busio_uart_dev[self->number].fd, TCFLSH, (long unsigned int)NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self) {
|
||||||
|
return (mp_float_t) (self->timeout_us / 1000000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeout) {
|
||||||
|
self->timeout_us = timeout * 1000000;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
||||||
int count = 0;
|
int count = 0;
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ typedef struct {
|
|||||||
const mcu_pin_obj_t *tx_pin;
|
const mcu_pin_obj_t *tx_pin;
|
||||||
const mcu_pin_obj_t *rx_pin;
|
const mcu_pin_obj_t *rx_pin;
|
||||||
uint32_t baudrate;
|
uint32_t baudrate;
|
||||||
uint32_t timeout;
|
uint32_t timeout_us;
|
||||||
} busio_uart_obj_t;
|
} busio_uart_obj_t;
|
||||||
|
|
||||||
void busio_uart_reset(void);
|
void busio_uart_reset(void);
|
||||||
|
@ -26,10 +26,10 @@
|
|||||||
|
|
||||||
#include "py/mphal.h"
|
#include "py/mphal.h"
|
||||||
|
|
||||||
#include "tick.h"
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
uint64_t common_hal_time_monotonic(void) {
|
uint64_t common_hal_time_monotonic(void) {
|
||||||
return ticks_ms;
|
return supervisor_ticks_ms64();
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_time_delay_ms(uint32_t delay) {
|
void common_hal_time_delay_ms(uint32_t delay) {
|
||||||
|
@ -31,7 +31,7 @@
|
|||||||
|
|
||||||
#include "py/mpstate.h"
|
#include "py/mpstate.h"
|
||||||
|
|
||||||
#include "tick.h"
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
#define DELAY_CORRECTION (700)
|
#define DELAY_CORRECTION (700)
|
||||||
#define DELAY_INTERVAL (50)
|
#define DELAY_INTERVAL (50)
|
||||||
@ -57,7 +57,7 @@ mp_uint_t mp_hal_ticks_cpu(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void mp_hal_delay_ms(mp_uint_t delay) {
|
void mp_hal_delay_ms(mp_uint_t delay) {
|
||||||
uint64_t start_tick = ticks_ms;
|
uint64_t start_tick = supervisor_ticks_ms64();
|
||||||
uint64_t duration = 0;
|
uint64_t duration = 0;
|
||||||
while (duration < delay) {
|
while (duration < delay) {
|
||||||
#ifdef MICROPY_VM_HOOK_LOOP
|
#ifdef MICROPY_VM_HOOK_LOOP
|
||||||
@ -68,7 +68,7 @@ void mp_hal_delay_ms(mp_uint_t delay) {
|
|||||||
MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
|
MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
duration = (ticks_ms - start_tick);
|
duration = (supervisor_ticks_ms64() - start_tick);
|
||||||
// TODO(tannewt): Go to sleep for a little while while we wait.
|
// TODO(tannewt): Go to sleep for a little while while we wait.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -31,6 +31,4 @@
|
|||||||
|
|
||||||
#include "lib/utils/interrupt_char.h"
|
#include "lib/utils/interrupt_char.h"
|
||||||
|
|
||||||
extern volatile uint64_t ticks_ms;
|
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_CXD56_MPHALPORT_H
|
#endif // MICROPY_INCLUDED_CXD56_MPHALPORT_H
|
||||||
|
@ -27,19 +27,10 @@
|
|||||||
#include "tick.h"
|
#include "tick.h"
|
||||||
|
|
||||||
#include "supervisor/shared/autoreload.h"
|
#include "supervisor/shared/autoreload.h"
|
||||||
#include "supervisor/filesystem.h"
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
// Global millisecond tick count
|
|
||||||
volatile uint64_t ticks_ms = 0;
|
|
||||||
|
|
||||||
void board_timerhook(void)
|
void board_timerhook(void)
|
||||||
{
|
{
|
||||||
ticks_ms += 1;
|
// Do things common to all ports when the tick occurs
|
||||||
|
supervisor_tick();
|
||||||
#if CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS > 0
|
|
||||||
filesystem_tick();
|
|
||||||
#endif
|
|
||||||
#ifdef CIRCUITPY_AUTORELOAD_DELAY_MS
|
|
||||||
autoreload_tick();
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
@ -29,6 +29,4 @@
|
|||||||
|
|
||||||
#include "py/mpconfig.h"
|
#include "py/mpconfig.h"
|
||||||
|
|
||||||
extern volatile uint64_t ticks_ms;
|
|
||||||
|
|
||||||
#endif // MICROPY_INCLUDED_CXD56_TICK_H
|
#endif // MICROPY_INCLUDED_CXD56_TICK_H
|
||||||
|
@ -134,6 +134,9 @@ void SD_EVT_IRQHandler(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ble_evt_t* event = (ble_evt_t *)m_ble_evt_buf;
|
ble_evt_t* event = (ble_evt_t *)m_ble_evt_buf;
|
||||||
|
#if CIRCUITPY_VERBOSE_BLE
|
||||||
|
mp_printf(&mp_plat_print, "BLE event: 0x%04x\n", event->header.evt_id);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (supervisor_bluetooth_hook(event)) {
|
if (supervisor_bluetooth_hook(event)) {
|
||||||
continue;
|
continue;
|
||||||
@ -145,8 +148,11 @@ void SD_EVT_IRQHandler(void) {
|
|||||||
done = it->func(event, it->param) || done;
|
done = it->func(event, it->param) || done;
|
||||||
it = it->next;
|
it = it->next;
|
||||||
}
|
}
|
||||||
if (!done) {
|
#if CIRCUITPY_VERBOSE_BLE
|
||||||
//mp_printf(&mp_plat_print, "Unhandled ble event: 0x%04x\n", event->header.evt_id);
|
if (event->header.evt_id == BLE_GATTS_EVT_WRITE) {
|
||||||
|
ble_gatts_evt_write_t* write_evt = &event->evt.gatts_evt.params.write;
|
||||||
|
mp_printf(&mp_plat_print, "Write to: UUID(0x%04x) handle %x of length %d auth %x\n", write_evt->uuid.uuid, write_evt->handle, write_evt->len, write_evt->auth_required);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -40,6 +40,7 @@
|
|||||||
#include "py/objstr.h"
|
#include "py/objstr.h"
|
||||||
#include "py/runtime.h"
|
#include "py/runtime.h"
|
||||||
#include "supervisor/shared/safe_mode.h"
|
#include "supervisor/shared/safe_mode.h"
|
||||||
|
#include "supervisor/shared/tick.h"
|
||||||
#include "supervisor/usb.h"
|
#include "supervisor/usb.h"
|
||||||
#include "shared-bindings/_bleio/__init__.h"
|
#include "shared-bindings/_bleio/__init__.h"
|
||||||
#include "shared-bindings/_bleio/Adapter.h"
|
#include "shared-bindings/_bleio/Adapter.h"
|
||||||
@ -178,9 +179,19 @@ STATIC bool adapter_on_ble_evt(ble_evt_t *ble_evt, void *self_in) {
|
|||||||
|
|
||||||
connection->conn_handle = ble_evt->evt.gap_evt.conn_handle;
|
connection->conn_handle = ble_evt->evt.gap_evt.conn_handle;
|
||||||
connection->connection_obj = mp_const_none;
|
connection->connection_obj = mp_const_none;
|
||||||
|
connection->pair_status = PAIR_NOT_PAIRED;
|
||||||
|
|
||||||
ble_drv_add_event_handler_entry(&connection->handler_entry, connection_on_ble_evt, connection);
|
ble_drv_add_event_handler_entry(&connection->handler_entry, connection_on_ble_evt, connection);
|
||||||
self->connection_objs = NULL;
|
self->connection_objs = NULL;
|
||||||
|
|
||||||
|
// Save the current connection parameters.
|
||||||
|
memcpy(&connection->conn_params, &connected->conn_params, sizeof(ble_gap_conn_params_t));
|
||||||
|
|
||||||
|
#if CIRCUITPY_VERBOSE_BLE
|
||||||
|
ble_gap_conn_params_t *cp = &connected->conn_params;
|
||||||
|
mp_printf(&mp_plat_print, "conn params: min_ci %d max_ci %d s_l %d sup_timeout %d\n", cp->min_conn_interval, cp->max_conn_interval, cp->slave_latency, cp->conn_sup_timeout);
|
||||||
|
#endif
|
||||||
|
|
||||||
// See if connection interval set by Central is out of range.
|
// See if connection interval set by Central is out of range.
|
||||||
// If so, negotiate our preferred range.
|
// If so, negotiate our preferred range.
|
||||||
ble_gap_conn_params_t conn_params;
|
ble_gap_conn_params_t conn_params;
|
||||||
@ -227,13 +238,7 @@ STATIC bool adapter_on_ble_evt(ble_evt_t *ble_evt, void *self_in) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
STATIC void get_address(bleio_adapter_obj_t *self, ble_gap_addr_t *address) {
|
STATIC void get_address(bleio_adapter_obj_t *self, ble_gap_addr_t *address) {
|
||||||
uint32_t err_code;
|
check_nrf_error(sd_ble_gap_addr_get(address));
|
||||||
|
|
||||||
err_code = sd_ble_gap_addr_get(address);
|
|
||||||
|
|
||||||
if (err_code != NRF_SUCCESS) {
|
|
||||||
mp_raise_OSError_msg(translate("Failed to get local address"));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
char default_ble_name[] = { 'C', 'I', 'R', 'C', 'U', 'I', 'T', 'P', 'Y', 0, 0, 0, 0 , 0};
|
char default_ble_name[] = { 'C', 'I', 'R', 'C', 'U', 'I', 'T', 'P', 'Y', 0, 0, 0, 0 , 0};
|
||||||
@ -274,9 +279,7 @@ void common_hal_bleio_adapter_set_enabled(bleio_adapter_obj_t *self, bool enable
|
|||||||
// Re-init USB hardware
|
// Re-init USB hardware
|
||||||
init_usb_hardware();
|
init_usb_hardware();
|
||||||
|
|
||||||
if (err_code != NRF_SUCCESS) {
|
check_nrf_error(err_code);
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to change softdevice state, NRF_ERROR_%q"), MP_OBJ_QSTR_VALUE(base_error_messages[err_code - NRF_ERROR_BASE_NUM]));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Add a handler for incoming peripheral connections.
|
// Add a handler for incoming peripheral connections.
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
@ -298,10 +301,7 @@ void common_hal_bleio_adapter_set_enabled(bleio_adapter_obj_t *self, bool enable
|
|||||||
bool common_hal_bleio_adapter_get_enabled(bleio_adapter_obj_t *self) {
|
bool common_hal_bleio_adapter_get_enabled(bleio_adapter_obj_t *self) {
|
||||||
uint8_t is_enabled;
|
uint8_t is_enabled;
|
||||||
|
|
||||||
const uint32_t err_code = sd_softdevice_is_enabled(&is_enabled);
|
check_nrf_error(sd_softdevice_is_enabled(&is_enabled));
|
||||||
if (err_code != NRF_SUCCESS) {
|
|
||||||
mp_raise_OSError_msg(translate("Failed to get softdevice state"));
|
|
||||||
}
|
|
||||||
|
|
||||||
return is_enabled;
|
return is_enabled;
|
||||||
}
|
}
|
||||||
@ -353,7 +353,7 @@ STATIC bool scan_on_ble_evt(ble_evt_t *ble_evt, void *scan_results_in) {
|
|||||||
ble_gap_evt_adv_report_t *report = &ble_evt->evt.gap_evt.params.adv_report;
|
ble_gap_evt_adv_report_t *report = &ble_evt->evt.gap_evt.params.adv_report;
|
||||||
|
|
||||||
shared_module_bleio_scanresults_append(scan_results,
|
shared_module_bleio_scanresults_append(scan_results,
|
||||||
ticks_ms,
|
supervisor_ticks_ms64(),
|
||||||
report->type.connectable,
|
report->type.connectable,
|
||||||
report->type.scan_response,
|
report->type.scan_response,
|
||||||
report->rssi,
|
report->rssi,
|
||||||
@ -373,7 +373,7 @@ STATIC bool scan_on_ble_evt(ble_evt_t *ble_evt, void *scan_results_in) {
|
|||||||
mp_obj_t common_hal_bleio_adapter_start_scan(bleio_adapter_obj_t *self, uint8_t* prefixes, size_t prefix_length, bool extended, mp_int_t buffer_size, mp_float_t timeout, mp_float_t interval, mp_float_t window, mp_int_t minimum_rssi, bool active) {
|
mp_obj_t common_hal_bleio_adapter_start_scan(bleio_adapter_obj_t *self, uint8_t* prefixes, size_t prefix_length, bool extended, mp_int_t buffer_size, mp_float_t timeout, mp_float_t interval, mp_float_t window, mp_int_t minimum_rssi, bool active) {
|
||||||
if (self->scan_results != NULL) {
|
if (self->scan_results != NULL) {
|
||||||
if (!shared_module_bleio_scanresults_get_done(self->scan_results)) {
|
if (!shared_module_bleio_scanresults_get_done(self->scan_results)) {
|
||||||
mp_raise_RuntimeError(translate("Scan already in progess. Stop with stop_scan."));
|
mp_raise_bleio_BluetoothError(translate("Scan already in progess. Stop with stop_scan."));
|
||||||
}
|
}
|
||||||
self->scan_results = NULL;
|
self->scan_results = NULL;
|
||||||
}
|
}
|
||||||
@ -406,7 +406,7 @@ mp_obj_t common_hal_bleio_adapter_start_scan(bleio_adapter_obj_t *self, uint8_t*
|
|||||||
if (err_code != NRF_SUCCESS) {
|
if (err_code != NRF_SUCCESS) {
|
||||||
self->scan_results = NULL;
|
self->scan_results = NULL;
|
||||||
ble_drv_remove_event_handler(scan_on_ble_evt, self->scan_results);
|
ble_drv_remove_event_handler(scan_on_ble_evt, self->scan_results);
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to start scanning, err 0x%04x"), err_code);
|
check_nrf_error(err_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
return MP_OBJ_FROM_PTR(self->scan_results);
|
return MP_OBJ_FROM_PTR(self->scan_results);
|
||||||
@ -447,7 +447,7 @@ STATIC bool connect_on_ble_evt(ble_evt_t *ble_evt, void *info_in) {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_t common_hal_bleio_adapter_connect(bleio_adapter_obj_t *self, bleio_address_obj_t *address, mp_float_t timeout, bool pair) {
|
mp_obj_t common_hal_bleio_adapter_connect(bleio_adapter_obj_t *self, bleio_address_obj_t *address, mp_float_t timeout) {
|
||||||
|
|
||||||
ble_gap_addr_t addr;
|
ble_gap_addr_t addr;
|
||||||
|
|
||||||
@ -479,7 +479,7 @@ mp_obj_t common_hal_bleio_adapter_connect(bleio_adapter_obj_t *self, bleio_addre
|
|||||||
|
|
||||||
if (err_code != NRF_SUCCESS) {
|
if (err_code != NRF_SUCCESS) {
|
||||||
ble_drv_remove_event_handler(connect_on_ble_evt, &event_info);
|
ble_drv_remove_event_handler(connect_on_ble_evt, &event_info);
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to start connecting, error 0x%04x"), err_code);
|
check_nrf_error(err_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
while (!event_info.done) {
|
while (!event_info.done) {
|
||||||
@ -489,7 +489,7 @@ mp_obj_t common_hal_bleio_adapter_connect(bleio_adapter_obj_t *self, bleio_addre
|
|||||||
ble_drv_remove_event_handler(connect_on_ble_evt, &event_info);
|
ble_drv_remove_event_handler(connect_on_ble_evt, &event_info);
|
||||||
|
|
||||||
if (event_info.conn_handle == BLE_CONN_HANDLE_INVALID) {
|
if (event_info.conn_handle == BLE_CONN_HANDLE_INVALID) {
|
||||||
mp_raise_OSError_msg(translate("Failed to connect: timeout"));
|
mp_raise_bleio_BluetoothError(translate("Failed to connect: timeout"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make the connection object and return it.
|
// Make the connection object and return it.
|
||||||
@ -500,7 +500,7 @@ mp_obj_t common_hal_bleio_adapter_connect(bleio_adapter_obj_t *self, bleio_addre
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_raise_OSError_msg(translate("Failed to connect: internal error"));
|
mp_raise_bleio_BluetoothError(translate("Failed to connect: internal error"));
|
||||||
|
|
||||||
return mp_const_none;
|
return mp_const_none;
|
||||||
}
|
}
|
||||||
@ -508,8 +508,9 @@ mp_obj_t common_hal_bleio_adapter_connect(bleio_adapter_obj_t *self, bleio_addre
|
|||||||
// The nRF SD 6.1.0 can only do one concurrent advertisement so share the advertising handle.
|
// The nRF SD 6.1.0 can only do one concurrent advertisement so share the advertising handle.
|
||||||
uint8_t adv_handle = BLE_GAP_ADV_SET_HANDLE_NOT_SET;
|
uint8_t adv_handle = BLE_GAP_ADV_SET_HANDLE_NOT_SET;
|
||||||
|
|
||||||
STATIC void check_data_fit(size_t data_len) {
|
STATIC void check_data_fit(size_t data_len, bool connectable) {
|
||||||
if (data_len > BLE_GAP_ADV_SET_DATA_SIZE_MAX) {
|
if (data_len > BLE_GAP_ADV_SET_DATA_SIZE_EXTENDED_MAX_SUPPORTED ||
|
||||||
|
(connectable && data_len > BLE_GAP_ADV_SET_DATA_SIZE_EXTENDED_CONNECTABLE_MAX_SUPPORTED)) {
|
||||||
mp_raise_ValueError(translate("Data too large for advertisement packet"));
|
mp_raise_ValueError(translate("Data too large for advertisement packet"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -525,11 +526,31 @@ uint32_t _common_hal_bleio_adapter_start_advertising(bleio_adapter_obj_t *self,
|
|||||||
common_hal_bleio_adapter_stop_advertising(self);
|
common_hal_bleio_adapter_stop_advertising(self);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool extended = advertising_data_len > BLE_GAP_ADV_SET_DATA_SIZE_MAX ||
|
||||||
|
scan_response_data_len > BLE_GAP_ADV_SET_DATA_SIZE_MAX;
|
||||||
|
|
||||||
|
uint8_t adv_type;
|
||||||
|
if (extended) {
|
||||||
|
if (connectable) {
|
||||||
|
adv_type = BLE_GAP_ADV_TYPE_EXTENDED_CONNECTABLE_NONSCANNABLE_UNDIRECTED;
|
||||||
|
} else if (scan_response_data_len > 0) {
|
||||||
|
adv_type = BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_SCANNABLE_UNDIRECTED;
|
||||||
|
} else {
|
||||||
|
adv_type = BLE_GAP_ADV_TYPE_EXTENDED_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED;
|
||||||
|
}
|
||||||
|
} else if (connectable) {
|
||||||
|
adv_type = BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED;
|
||||||
|
} else if (scan_response_data_len > 0) {
|
||||||
|
adv_type = BLE_GAP_ADV_TYPE_NONCONNECTABLE_SCANNABLE_UNDIRECTED;
|
||||||
|
} else {
|
||||||
|
adv_type = BLE_GAP_ADV_TYPE_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t err_code;
|
uint32_t err_code;
|
||||||
ble_gap_adv_params_t adv_params = {
|
ble_gap_adv_params_t adv_params = {
|
||||||
.interval = SEC_TO_UNITS(interval, UNIT_0_625_MS),
|
.interval = SEC_TO_UNITS(interval, UNIT_0_625_MS),
|
||||||
.properties.type = connectable ? BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED
|
.properties.type = adv_type,
|
||||||
: BLE_GAP_ADV_TYPE_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED,
|
|
||||||
.duration = BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED,
|
.duration = BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED,
|
||||||
.filter_policy = BLE_GAP_ADV_FP_ANY,
|
.filter_policy = BLE_GAP_ADV_FP_ANY,
|
||||||
.primary_phy = BLE_GAP_PHY_1MBPS,
|
.primary_phy = BLE_GAP_PHY_1MBPS,
|
||||||
@ -558,31 +579,29 @@ uint32_t _common_hal_bleio_adapter_start_advertising(bleio_adapter_obj_t *self,
|
|||||||
|
|
||||||
void common_hal_bleio_adapter_start_advertising(bleio_adapter_obj_t *self, bool connectable, mp_float_t interval, mp_buffer_info_t *advertising_data_bufinfo, mp_buffer_info_t *scan_response_data_bufinfo) {
|
void common_hal_bleio_adapter_start_advertising(bleio_adapter_obj_t *self, bool connectable, mp_float_t interval, mp_buffer_info_t *advertising_data_bufinfo, mp_buffer_info_t *scan_response_data_bufinfo) {
|
||||||
if (self->current_advertising_data != NULL && self->current_advertising_data == self->advertising_data) {
|
if (self->current_advertising_data != NULL && self->current_advertising_data == self->advertising_data) {
|
||||||
mp_raise_OSError_msg(translate("Already advertising."));
|
mp_raise_bleio_BluetoothError(translate("Already advertising."));
|
||||||
}
|
}
|
||||||
// interval value has already been validated.
|
// interval value has already been validated.
|
||||||
|
|
||||||
uint32_t err_code;
|
check_data_fit(advertising_data_bufinfo->len, connectable);
|
||||||
|
check_data_fit(scan_response_data_bufinfo->len, connectable);
|
||||||
check_data_fit(advertising_data_bufinfo->len);
|
|
||||||
check_data_fit(scan_response_data_bufinfo->len);
|
|
||||||
// The advertising data buffers must not move, because the SoftDevice depends on them.
|
// The advertising data buffers must not move, because the SoftDevice depends on them.
|
||||||
// So make them long-lived and reuse them onwards.
|
// So make them long-lived and reuse them onwards.
|
||||||
if (self->advertising_data == NULL) {
|
if (self->advertising_data == NULL) {
|
||||||
self->advertising_data = (uint8_t *) gc_alloc(BLE_GAP_ADV_SET_DATA_SIZE_MAX * sizeof(uint8_t), false, true);
|
self->advertising_data = (uint8_t *) gc_alloc(BLE_GAP_ADV_SET_DATA_SIZE_EXTENDED_MAX_SUPPORTED * sizeof(uint8_t), false, true);
|
||||||
}
|
}
|
||||||
if (self->scan_response_data == NULL) {
|
if (self->scan_response_data == NULL) {
|
||||||
self->scan_response_data = (uint8_t *) gc_alloc(BLE_GAP_ADV_SET_DATA_SIZE_MAX * sizeof(uint8_t), false, true);
|
self->scan_response_data = (uint8_t *) gc_alloc(BLE_GAP_ADV_SET_DATA_SIZE_EXTENDED_MAX_SUPPORTED * sizeof(uint8_t), false, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
memcpy(self->advertising_data, advertising_data_bufinfo->buf, advertising_data_bufinfo->len);
|
memcpy(self->advertising_data, advertising_data_bufinfo->buf, advertising_data_bufinfo->len);
|
||||||
memcpy(self->scan_response_data, scan_response_data_bufinfo->buf, scan_response_data_bufinfo->len);
|
memcpy(self->scan_response_data, scan_response_data_bufinfo->buf, scan_response_data_bufinfo->len);
|
||||||
|
|
||||||
err_code = _common_hal_bleio_adapter_start_advertising(self, connectable, interval, self->advertising_data, advertising_data_bufinfo->len, self->scan_response_data, scan_response_data_bufinfo->len);
|
check_nrf_error(_common_hal_bleio_adapter_start_advertising(self, connectable, interval,
|
||||||
|
self->advertising_data,
|
||||||
if (err_code != NRF_SUCCESS) {
|
advertising_data_bufinfo->len,
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to start advertising, NRF_ERROR_%q"), MP_OBJ_QSTR_VALUE(base_error_messages[err_code - NRF_ERROR_BASE_NUM]));
|
self->scan_response_data,
|
||||||
}
|
scan_response_data_bufinfo->len));
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_bleio_adapter_stop_advertising(bleio_adapter_obj_t *self) {
|
void common_hal_bleio_adapter_stop_advertising(bleio_adapter_obj_t *self) {
|
||||||
@ -594,7 +613,7 @@ void common_hal_bleio_adapter_stop_advertising(bleio_adapter_obj_t *self) {
|
|||||||
self->current_advertising_data = NULL;
|
self->current_advertising_data = NULL;
|
||||||
|
|
||||||
if ((err_code != NRF_SUCCESS) && (err_code != NRF_ERROR_INVALID_STATE)) {
|
if ((err_code != NRF_SUCCESS) && (err_code != NRF_ERROR_INVALID_STATE)) {
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to stop advertising, NRF_ERROR_%q"), MP_OBJ_QSTR_VALUE(base_error_messages[err_code - NRF_ERROR_BASE_NUM]));
|
check_nrf_error(err_code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -46,8 +46,8 @@ STATIC uint16_t characteristic_get_cccd(uint16_t cccd_handle, uint16_t conn_hand
|
|||||||
if (err_code == BLE_ERROR_GATTS_SYS_ATTR_MISSING) {
|
if (err_code == BLE_ERROR_GATTS_SYS_ATTR_MISSING) {
|
||||||
// CCCD is not set, so say that neither Notify nor Indicate is enabled.
|
// CCCD is not set, so say that neither Notify nor Indicate is enabled.
|
||||||
cccd = 0;
|
cccd = 0;
|
||||||
} else if (err_code != NRF_SUCCESS) {
|
} else {
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to read CCCD value, err 0x%04x"), err_code);
|
check_nrf_error(err_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
return cccd;
|
return cccd;
|
||||||
@ -78,7 +78,7 @@ STATIC void characteristic_gatts_notify_indicate(uint16_t handle, uint16_t conn_
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Some real error has occurred.
|
// Some real error has occurred.
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to notify or indicate attribute value, err 0x%04x"), err_code);
|
check_nrf_error(err_code);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -213,11 +213,7 @@ void common_hal_bleio_characteristic_add_descriptor(bleio_characteristic_obj_t *
|
|||||||
.max_len = descriptor->max_length,
|
.max_len = descriptor->max_length,
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t err_code = sd_ble_gatts_descriptor_add(self->handle, &desc_attr, &descriptor->handle);
|
check_nrf_error(sd_ble_gatts_descriptor_add(self->handle, &desc_attr, &descriptor->handle));
|
||||||
|
|
||||||
if (err_code != NRF_SUCCESS) {
|
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to add descriptor, err 0x%04x"), err_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
descriptor->next = self->descriptor_list;
|
descriptor->next = self->descriptor_list;
|
||||||
self->descriptor_list = descriptor;
|
self->descriptor_list = descriptor;
|
||||||
@ -225,11 +221,11 @@ void common_hal_bleio_characteristic_add_descriptor(bleio_characteristic_obj_t *
|
|||||||
|
|
||||||
void common_hal_bleio_characteristic_set_cccd(bleio_characteristic_obj_t *self, bool notify, bool indicate) {
|
void common_hal_bleio_characteristic_set_cccd(bleio_characteristic_obj_t *self, bool notify, bool indicate) {
|
||||||
if (self->cccd_handle == BLE_GATT_HANDLE_INVALID) {
|
if (self->cccd_handle == BLE_GATT_HANDLE_INVALID) {
|
||||||
mp_raise_ValueError(translate("No CCCD for this Characteristic"));
|
mp_raise_bleio_BluetoothError(translate("No CCCD for this Characteristic"));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!common_hal_bleio_service_get_is_remote(self->service)) {
|
if (!common_hal_bleio_service_get_is_remote(self->service)) {
|
||||||
mp_raise_ValueError(translate("Can't set CCCD on local Characteristic"));
|
mp_raise_bleio_RoleError(translate("Can't set CCCD on local Characteristic"));
|
||||||
}
|
}
|
||||||
|
|
||||||
const uint16_t conn_handle = bleio_connection_get_conn_handle(self->service->connection);
|
const uint16_t conn_handle = bleio_connection_get_conn_handle(self->service->connection);
|
||||||
@ -261,7 +257,7 @@ void common_hal_bleio_characteristic_set_cccd(bleio_characteristic_obj_t *self,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Some real error occurred.
|
// Some real error occurred.
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to write CCCD, err 0x%04x"), err_code);
|
check_nrf_error(err_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
#include "shared-bindings/_bleio/__init__.h"
|
#include "shared-bindings/_bleio/__init__.h"
|
||||||
#include "shared-bindings/_bleio/Connection.h"
|
#include "shared-bindings/_bleio/Connection.h"
|
||||||
|
#include "supervisor/shared/tick.h"
|
||||||
#include "common-hal/_bleio/CharacteristicBuffer.h"
|
#include "common-hal/_bleio/CharacteristicBuffer.h"
|
||||||
|
|
||||||
STATIC void write_to_ringbuf(bleio_characteristic_buffer_obj_t *self, uint8_t *data, uint16_t len) {
|
STATIC void write_to_ringbuf(bleio_characteristic_buffer_obj_t *self, uint8_t *data, uint16_t len) {
|
||||||
@ -100,10 +101,10 @@ void common_hal_bleio_characteristic_buffer_construct(bleio_characteristic_buffe
|
|||||||
}
|
}
|
||||||
|
|
||||||
int common_hal_bleio_characteristic_buffer_read(bleio_characteristic_buffer_obj_t *self, uint8_t *data, size_t len, int *errcode) {
|
int common_hal_bleio_characteristic_buffer_read(bleio_characteristic_buffer_obj_t *self, uint8_t *data, size_t len, int *errcode) {
|
||||||
uint64_t start_ticks = ticks_ms;
|
uint64_t start_ticks = supervisor_ticks_ms64();
|
||||||
|
|
||||||
// Wait for all bytes received or timeout
|
// Wait for all bytes received or timeout
|
||||||
while ( (ringbuf_count(&self->ringbuf) < len) && (ticks_ms - start_ticks < self->timeout_ms) ) {
|
while ( (ringbuf_count(&self->ringbuf) < len) && (supervisor_ticks_ms64() - start_ticks < self->timeout_ms) ) {
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
// Allow user to break out of a timeout with a KeyboardInterrupt.
|
// Allow user to break out of a timeout with a KeyboardInterrupt.
|
||||||
if ( mp_hal_is_interrupted() ) {
|
if ( mp_hal_is_interrupted() ) {
|
||||||
|
@ -34,6 +34,7 @@
|
|||||||
#include "ble_drv.h"
|
#include "ble_drv.h"
|
||||||
#include "ble_hci.h"
|
#include "ble_hci.h"
|
||||||
#include "nrf_soc.h"
|
#include "nrf_soc.h"
|
||||||
|
#include "lib/utils/interrupt_char.h"
|
||||||
#include "py/gc.h"
|
#include "py/gc.h"
|
||||||
#include "py/objlist.h"
|
#include "py/objlist.h"
|
||||||
#include "py/objstr.h"
|
#include "py/objstr.h"
|
||||||
@ -51,7 +52,7 @@
|
|||||||
#define BLE_AD_TYPE_FLAGS_DATA_SIZE 1
|
#define BLE_AD_TYPE_FLAGS_DATA_SIZE 1
|
||||||
|
|
||||||
static const ble_gap_sec_params_t pairing_sec_params = {
|
static const ble_gap_sec_params_t pairing_sec_params = {
|
||||||
.bond = 1,
|
.bond = 0,
|
||||||
.mitm = 0,
|
.mitm = 0,
|
||||||
.lesc = 0,
|
.lesc = 0,
|
||||||
.keypress = 0,
|
.keypress = 0,
|
||||||
@ -69,8 +70,6 @@ static volatile bool m_discovery_successful;
|
|||||||
static bleio_service_obj_t *m_char_discovery_service;
|
static bleio_service_obj_t *m_char_discovery_service;
|
||||||
static bleio_characteristic_obj_t *m_desc_discovery_characteristic;
|
static bleio_characteristic_obj_t *m_desc_discovery_characteristic;
|
||||||
|
|
||||||
bool dump_events = false;
|
|
||||||
|
|
||||||
bool connection_on_ble_evt(ble_evt_t *ble_evt, void *self_in) {
|
bool connection_on_ble_evt(ble_evt_t *ble_evt, void *self_in) {
|
||||||
bleio_connection_internal_t *self = (bleio_connection_internal_t*)self_in;
|
bleio_connection_internal_t *self = (bleio_connection_internal_t*)self_in;
|
||||||
|
|
||||||
@ -83,16 +82,9 @@ bool connection_on_ble_evt(ble_evt_t *ble_evt, void *self_in) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// For debugging.
|
|
||||||
if (dump_events) {
|
|
||||||
mp_printf(&mp_plat_print, "Connection event: 0x%04x\n", ble_evt->header.evt_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (ble_evt->header.evt_id) {
|
switch (ble_evt->header.evt_id) {
|
||||||
case BLE_GAP_EVT_DISCONNECTED:
|
case BLE_GAP_EVT_DISCONNECTED:
|
||||||
break;
|
break;
|
||||||
case BLE_GAP_EVT_CONN_PARAM_UPDATE: // 0x12
|
|
||||||
break;
|
|
||||||
case BLE_GAP_EVT_PHY_UPDATE_REQUEST: {
|
case BLE_GAP_EVT_PHY_UPDATE_REQUEST: {
|
||||||
ble_gap_phys_t const phys = {
|
ble_gap_phys_t const phys = {
|
||||||
.rx_phys = BLE_GAP_PHY_AUTO,
|
.rx_phys = BLE_GAP_PHY_AUTO,
|
||||||
@ -123,15 +115,61 @@ bool connection_on_ble_evt(ble_evt_t *ble_evt, void *self_in) {
|
|||||||
sd_ble_gatts_sys_attr_set(self->conn_handle, NULL, 0, 0);
|
sd_ble_gatts_sys_attr_set(self->conn_handle, NULL, 0, 0);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if CIRCUITPY_VERBOSE_BLE
|
||||||
|
// Use read authorization to snoop on all reads when doing verbose debugging.
|
||||||
|
case BLE_GATTS_EVT_RW_AUTHORIZE_REQUEST: {
|
||||||
|
|
||||||
|
ble_gatts_evt_rw_authorize_request_t *request =
|
||||||
|
&ble_evt->evt.gatts_evt.params.authorize_request;
|
||||||
|
|
||||||
|
mp_printf(&mp_plat_print, "Read %x offset %d ", request->request.read.handle, request->request.read.offset);
|
||||||
|
uint8_t value_bytes[22];
|
||||||
|
ble_gatts_value_t value;
|
||||||
|
value.offset = request->request.read.offset;
|
||||||
|
value.len = 22;
|
||||||
|
value.p_value = value_bytes;
|
||||||
|
|
||||||
|
sd_ble_gatts_value_get(self->conn_handle, request->request.read.handle, &value);
|
||||||
|
size_t len = value.len;
|
||||||
|
if (len > 22) {
|
||||||
|
len = 22;
|
||||||
|
}
|
||||||
|
for (uint8_t i = 0; i < len; i++) {
|
||||||
|
mp_printf(&mp_plat_print, " %02x", value_bytes[i]);
|
||||||
|
}
|
||||||
|
mp_printf(&mp_plat_print, "\n");
|
||||||
|
ble_gatts_rw_authorize_reply_params_t reply;
|
||||||
|
reply.type = request->type;
|
||||||
|
reply.params.read.gatt_status = BLE_GATT_STATUS_SUCCESS;
|
||||||
|
reply.params.read.update = false;
|
||||||
|
reply.params.read.offset = request->request.read.offset;
|
||||||
|
sd_ble_gatts_rw_authorize_reply(self->conn_handle, &reply);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
case BLE_GATTS_EVT_HVN_TX_COMPLETE: // Capture this for now. 0x55
|
case BLE_GATTS_EVT_HVN_TX_COMPLETE: // Capture this for now. 0x55
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST: {
|
case BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST: {
|
||||||
|
self->conn_params_updating = true;
|
||||||
ble_gap_evt_conn_param_update_request_t *request =
|
ble_gap_evt_conn_param_update_request_t *request =
|
||||||
&ble_evt->evt.gap_evt.params.conn_param_update_request;
|
&ble_evt->evt.gap_evt.params.conn_param_update_request;
|
||||||
sd_ble_gap_conn_param_update(self->conn_handle, &request->conn_params);
|
sd_ble_gap_conn_param_update(self->conn_handle, &request->conn_params);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case BLE_GAP_EVT_CONN_PARAM_UPDATE: { // 0x12
|
||||||
|
ble_gap_evt_conn_param_update_t *result =
|
||||||
|
&ble_evt->evt.gap_evt.params.conn_param_update;
|
||||||
|
|
||||||
|
#if CIRCUITPY_VERBOSE_BLE
|
||||||
|
ble_gap_conn_params_t *cp = &ble_evt->evt.gap_evt.params.conn_param_update.conn_params;
|
||||||
|
mp_printf(&mp_plat_print, "conn params updated: min_ci %d max_ci %d s_l %d sup_timeout %d\n", cp->min_conn_interval, cp->max_conn_interval, cp->slave_latency, cp->conn_sup_timeout);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
memcpy(&self->conn_params, &result->conn_params, sizeof(ble_gap_conn_params_t));
|
||||||
|
self->conn_params_updating = false;
|
||||||
|
break;
|
||||||
|
}
|
||||||
case BLE_GAP_EVT_SEC_PARAMS_REQUEST: {
|
case BLE_GAP_EVT_SEC_PARAMS_REQUEST: {
|
||||||
ble_gap_sec_keyset_t keyset = {
|
ble_gap_sec_keyset_t keyset = {
|
||||||
.keys_own = {
|
.keys_own = {
|
||||||
@ -162,7 +200,8 @@ bool connection_on_ble_evt(ble_evt_t *ble_evt, void *self_in) {
|
|||||||
case BLE_GAP_EVT_AUTH_STATUS: { // 0x19
|
case BLE_GAP_EVT_AUTH_STATUS: { // 0x19
|
||||||
// Pairing process completed
|
// Pairing process completed
|
||||||
ble_gap_evt_auth_status_t* status = &ble_evt->evt.gap_evt.params.auth_status;
|
ble_gap_evt_auth_status_t* status = &ble_evt->evt.gap_evt.params.auth_status;
|
||||||
if (BLE_GAP_SEC_STATUS_SUCCESS == status->auth_status) {
|
self->sec_status = status->auth_status;
|
||||||
|
if (status->auth_status == BLE_GAP_SEC_STATUS_SUCCESS) {
|
||||||
// TODO _ediv = bonding_keys->own_enc.master_id.ediv;
|
// TODO _ediv = bonding_keys->own_enc.master_id.ediv;
|
||||||
self->pair_status = PAIR_PAIRED;
|
self->pair_status = PAIR_PAIRED;
|
||||||
} else {
|
} else {
|
||||||
@ -209,11 +248,6 @@ bool connection_on_ble_evt(ble_evt_t *ble_evt, void *self_in) {
|
|||||||
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// For debugging.
|
|
||||||
if (dump_events) {
|
|
||||||
mp_printf(&mp_plat_print, "Unhandled connection event: 0x%04x\n", ble_evt->header.evt_id);
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
@ -228,6 +262,13 @@ void bleio_connection_clear(bleio_connection_internal_t *self) {
|
|||||||
memset(&self->bonding_keys, 0, sizeof(self->bonding_keys));
|
memset(&self->bonding_keys, 0, sizeof(self->bonding_keys));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool common_hal_bleio_connection_get_paired(bleio_connection_obj_t *self) {
|
||||||
|
if (self->connection == NULL) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return self->connection->pair_status == PAIR_PAIRED;
|
||||||
|
}
|
||||||
|
|
||||||
bool common_hal_bleio_connection_get_connected(bleio_connection_obj_t *self) {
|
bool common_hal_bleio_connection_get_connected(bleio_connection_obj_t *self) {
|
||||||
if (self->connection == NULL) {
|
if (self->connection == NULL) {
|
||||||
return false;
|
return false;
|
||||||
@ -239,35 +280,47 @@ void common_hal_bleio_connection_disconnect(bleio_connection_internal_t *self) {
|
|||||||
sd_ble_gap_disconnect(self->conn_handle, BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
|
sd_ble_gap_disconnect(self->conn_handle, BLE_HCI_REMOTE_USER_TERMINATED_CONNECTION);
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_bleio_connection_pair(bleio_connection_internal_t *self) {
|
void common_hal_bleio_connection_pair(bleio_connection_internal_t *self, bool bond) {
|
||||||
self->pair_status = PAIR_WAITING;
|
self->pair_status = PAIR_WAITING;
|
||||||
|
|
||||||
uint32_t err_code = sd_ble_gap_authenticate(self->conn_handle, &pairing_sec_params);
|
check_nrf_error(sd_ble_gap_authenticate(self->conn_handle, &pairing_sec_params));
|
||||||
|
|
||||||
if (err_code != NRF_SUCCESS) {
|
while (self->pair_status == PAIR_WAITING && !mp_hal_is_interrupted()) {
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to start pairing, NRF_ERROR_%q"), MP_OBJ_QSTR_VALUE(base_error_messages[err_code - NRF_ERROR_BASE_NUM]));
|
|
||||||
}
|
|
||||||
|
|
||||||
while (self->pair_status == PAIR_WAITING) {
|
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
}
|
}
|
||||||
|
if (mp_hal_is_interrupted()) {
|
||||||
if (self->pair_status == PAIR_NOT_PAIRED) {
|
return;
|
||||||
mp_raise_OSError_msg(translate("Failed to pair"));
|
|
||||||
}
|
}
|
||||||
|
check_sec_status(self->sec_status);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_float_t common_hal_bleio_connection_get_connection_interval(bleio_connection_internal_t *self) {
|
||||||
|
while (self->conn_params_updating && !mp_hal_is_interrupted()) {
|
||||||
|
RUN_BACKGROUND_TASKS;
|
||||||
|
}
|
||||||
|
return 1.25f * self->conn_params.min_conn_interval;
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_bleio_connection_set_connection_interval(bleio_connection_internal_t *self, mp_float_t new_interval) {
|
||||||
|
self->conn_params_updating = true;
|
||||||
|
uint16_t interval = new_interval / 1.25f;
|
||||||
|
self->conn_params.min_conn_interval = interval;
|
||||||
|
self->conn_params.max_conn_interval = interval;
|
||||||
|
uint32_t status = NRF_ERROR_BUSY;
|
||||||
|
while (status == NRF_ERROR_BUSY) {
|
||||||
|
status = sd_ble_gap_conn_param_update(self->conn_handle, &self->conn_params);
|
||||||
|
RUN_BACKGROUND_TASKS;
|
||||||
|
}
|
||||||
|
check_nrf_error(status);
|
||||||
|
}
|
||||||
|
|
||||||
// service_uuid may be NULL, to discover all services.
|
// service_uuid may be NULL, to discover all services.
|
||||||
STATIC bool discover_next_services(bleio_connection_internal_t* connection, uint16_t start_handle, ble_uuid_t *service_uuid) {
|
STATIC bool discover_next_services(bleio_connection_internal_t* connection, uint16_t start_handle, ble_uuid_t *service_uuid) {
|
||||||
m_discovery_successful = false;
|
m_discovery_successful = false;
|
||||||
m_discovery_in_process = true;
|
m_discovery_in_process = true;
|
||||||
|
|
||||||
uint32_t err_code = sd_ble_gattc_primary_services_discover(connection->conn_handle, start_handle, service_uuid);
|
check_nrf_error(sd_ble_gattc_primary_services_discover(connection->conn_handle,
|
||||||
|
start_handle, service_uuid));
|
||||||
if (err_code != NRF_SUCCESS) {
|
|
||||||
mp_raise_OSError_msg(translate("Failed to discover services"));
|
|
||||||
}
|
|
||||||
|
|
||||||
// Wait for a discovery event.
|
// Wait for a discovery event.
|
||||||
while (m_discovery_in_process) {
|
while (m_discovery_in_process) {
|
||||||
@ -516,7 +569,7 @@ STATIC void discover_remote_services(bleio_connection_internal_t *self, mp_obj_t
|
|||||||
mp_obj_t uuid_obj;
|
mp_obj_t uuid_obj;
|
||||||
while ((uuid_obj = mp_iternext(iterable)) != MP_OBJ_STOP_ITERATION) {
|
while ((uuid_obj = mp_iternext(iterable)) != MP_OBJ_STOP_ITERATION) {
|
||||||
if (!MP_OBJ_IS_TYPE(uuid_obj, &bleio_uuid_type)) {
|
if (!MP_OBJ_IS_TYPE(uuid_obj, &bleio_uuid_type)) {
|
||||||
mp_raise_ValueError(translate("non-UUID found in service_uuids_whitelist"));
|
mp_raise_TypeError(translate("non-UUID found in service_uuids_whitelist"));
|
||||||
}
|
}
|
||||||
bleio_uuid_obj_t *uuid = MP_OBJ_TO_PTR(uuid_obj);
|
bleio_uuid_obj_t *uuid = MP_OBJ_TO_PTR(uuid_obj);
|
||||||
|
|
||||||
@ -582,10 +635,9 @@ STATIC void discover_remote_services(bleio_connection_internal_t *self, mp_obj_t
|
|||||||
// discovery call returns nothing.
|
// discovery call returns nothing.
|
||||||
// discover_next_descriptors() appends to the descriptor_list.
|
// discover_next_descriptors() appends to the descriptor_list.
|
||||||
while (next_desc_start_handle <= service->end_handle &&
|
while (next_desc_start_handle <= service->end_handle &&
|
||||||
next_desc_start_handle < next_desc_end_handle &&
|
next_desc_start_handle <= next_desc_end_handle &&
|
||||||
discover_next_descriptors(self, characteristic,
|
discover_next_descriptors(self, characteristic,
|
||||||
next_desc_start_handle, next_desc_end_handle)) {
|
next_desc_start_handle, next_desc_end_handle)) {
|
||||||
|
|
||||||
// Get the most recently discovered descriptor, and then ask for descriptors
|
// Get the most recently discovered descriptor, and then ask for descriptors
|
||||||
// whose handles start after that descriptor's handle.
|
// whose handles start after that descriptor's handle.
|
||||||
const bleio_descriptor_obj_t *descriptor = characteristic->descriptor_list;
|
const bleio_descriptor_obj_t *descriptor = characteristic->descriptor_list;
|
||||||
@ -599,8 +651,10 @@ STATIC void discover_remote_services(bleio_connection_internal_t *self, mp_obj_t
|
|||||||
ble_drv_remove_event_handler(discovery_on_ble_evt, self);
|
ble_drv_remove_event_handler(discovery_on_ble_evt, self);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mp_obj_tuple_t *common_hal_bleio_connection_discover_remote_services(bleio_connection_obj_t *self, mp_obj_t service_uuids_whitelist) {
|
mp_obj_tuple_t *common_hal_bleio_connection_discover_remote_services(bleio_connection_obj_t *self, mp_obj_t service_uuids_whitelist) {
|
||||||
discover_remote_services(self->connection, service_uuids_whitelist);
|
discover_remote_services(self->connection, service_uuids_whitelist);
|
||||||
|
bleio_connection_ensure_connected(self);
|
||||||
// Convert to a tuple and then clear the list so the callee will take ownership.
|
// Convert to a tuple and then clear the list so the callee will take ownership.
|
||||||
mp_obj_tuple_t *services_tuple = service_linked_list_to_tuple(self->connection->remote_service_list);
|
mp_obj_tuple_t *services_tuple = service_linked_list_to_tuple(self->connection->remote_service_list);
|
||||||
self->connection->remote_service_list = NULL;
|
self->connection->remote_service_list = NULL;
|
||||||
@ -608,7 +662,6 @@ mp_obj_tuple_t *common_hal_bleio_connection_discover_remote_services(bleio_conne
|
|||||||
return services_tuple;
|
return services_tuple;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
uint16_t bleio_connection_get_conn_handle(bleio_connection_obj_t *self) {
|
uint16_t bleio_connection_get_conn_handle(bleio_connection_obj_t *self) {
|
||||||
if (self == NULL || self->connection == NULL) {
|
if (self == NULL || self->connection == NULL) {
|
||||||
return BLE_CONN_HANDLE_INVALID;
|
return BLE_CONN_HANDLE_INVALID;
|
||||||
|
@ -60,8 +60,11 @@ typedef struct {
|
|||||||
bonding_keys_t bonding_keys;
|
bonding_keys_t bonding_keys;
|
||||||
uint16_t ediv;
|
uint16_t ediv;
|
||||||
pair_status_t pair_status;
|
pair_status_t pair_status;
|
||||||
|
uint8_t sec_status; // Internal security status.
|
||||||
mp_obj_t connection_obj;
|
mp_obj_t connection_obj;
|
||||||
ble_drv_evt_handler_entry_t handler_entry;
|
ble_drv_evt_handler_entry_t handler_entry;
|
||||||
|
ble_gap_conn_params_t conn_params;
|
||||||
|
volatile bool conn_params_updating;
|
||||||
} bleio_connection_internal_t;
|
} bleio_connection_internal_t;
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
@ -56,10 +56,8 @@ uint32_t _common_hal_bleio_service_construct(bleio_service_obj_t *self, bleio_uu
|
|||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_bleio_service_construct(bleio_service_obj_t *self, bleio_uuid_obj_t *uuid, bool is_secondary) {
|
void common_hal_bleio_service_construct(bleio_service_obj_t *self, bleio_uuid_obj_t *uuid, bool is_secondary) {
|
||||||
const uint32_t err_code = _common_hal_bleio_service_construct(self, uuid, is_secondary, mp_obj_new_list(0, NULL));
|
check_nrf_error(_common_hal_bleio_service_construct(self, uuid, is_secondary,
|
||||||
if (err_code != NRF_SUCCESS) {
|
mp_obj_new_list(0, NULL)));
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to create service, NRF_ERROR_%q"), MP_OBJ_QSTR_VALUE(base_error_messages[err_code - NRF_ERROR_BASE_NUM]));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void bleio_service_from_connection(bleio_service_obj_t *self, mp_obj_t connection) {
|
void bleio_service_from_connection(bleio_service_obj_t *self, mp_obj_t connection) {
|
||||||
@ -121,6 +119,10 @@ void common_hal_bleio_service_add_characteristic(bleio_service_obj_t *self,
|
|||||||
|
|
||||||
bleio_attribute_gatts_set_security_mode(&char_attr_md.read_perm, characteristic->read_perm);
|
bleio_attribute_gatts_set_security_mode(&char_attr_md.read_perm, characteristic->read_perm);
|
||||||
bleio_attribute_gatts_set_security_mode(&char_attr_md.write_perm, characteristic->write_perm);
|
bleio_attribute_gatts_set_security_mode(&char_attr_md.write_perm, characteristic->write_perm);
|
||||||
|
#if CIRCUITPY_VERBOSE_BLE
|
||||||
|
// Turn on read authorization so that we receive an event to print on every read.
|
||||||
|
char_attr_md.rd_auth = true;
|
||||||
|
#endif
|
||||||
|
|
||||||
ble_gatts_attr_t char_attr = {
|
ble_gatts_attr_t char_attr = {
|
||||||
.p_uuid = &char_uuid,
|
.p_uuid = &char_uuid,
|
||||||
@ -133,16 +135,15 @@ void common_hal_bleio_service_add_characteristic(bleio_service_obj_t *self,
|
|||||||
|
|
||||||
ble_gatts_char_handles_t char_handles;
|
ble_gatts_char_handles_t char_handles;
|
||||||
|
|
||||||
uint32_t err_code;
|
check_nrf_error(sd_ble_gatts_characteristic_add(self->handle, &char_md, &char_attr, &char_handles));
|
||||||
err_code = sd_ble_gatts_characteristic_add(self->handle, &char_md, &char_attr, &char_handles);
|
|
||||||
if (err_code != NRF_SUCCESS) {
|
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to add characteristic, NRF_ERROR_%q"), MP_OBJ_QSTR_VALUE(base_error_messages[err_code - NRF_ERROR_BASE_NUM]));
|
|
||||||
}
|
|
||||||
|
|
||||||
characteristic->user_desc_handle = char_handles.user_desc_handle;
|
characteristic->user_desc_handle = char_handles.user_desc_handle;
|
||||||
characteristic->cccd_handle = char_handles.cccd_handle;
|
characteristic->cccd_handle = char_handles.cccd_handle;
|
||||||
characteristic->sccd_handle = char_handles.sccd_handle;
|
characteristic->sccd_handle = char_handles.sccd_handle;
|
||||||
characteristic->handle = char_handles.value_handle;
|
characteristic->handle = char_handles.value_handle;
|
||||||
|
#if CIRCUITPY_VERBOSE_BLE
|
||||||
|
mp_printf(&mp_plat_print, "Char handle %x user %x cccd %x sccd %x\n", characteristic->handle, characteristic->user_desc_handle, characteristic->cccd_handle, characteristic->sccd_handle);
|
||||||
|
#endif
|
||||||
|
|
||||||
mp_obj_list_append(self->characteristic_list, MP_OBJ_FROM_PTR(characteristic));
|
mp_obj_list_append(self->characteristic_list, MP_OBJ_FROM_PTR(characteristic));
|
||||||
}
|
}
|
||||||
|
@ -49,10 +49,7 @@ void common_hal_bleio_uuid_construct(bleio_uuid_obj_t *self, uint32_t uuid16, co
|
|||||||
memcpy(vs_uuid.uuid128, uuid128, sizeof(vs_uuid.uuid128));
|
memcpy(vs_uuid.uuid128, uuid128, sizeof(vs_uuid.uuid128));
|
||||||
|
|
||||||
// Register this vendor-specific UUID. Bytes 12 and 13 will be zero.
|
// Register this vendor-specific UUID. Bytes 12 and 13 will be zero.
|
||||||
const uint32_t err_code = sd_ble_uuid_vs_add(&vs_uuid, &self->nrf_ble_uuid.type);
|
check_nrf_error(sd_ble_uuid_vs_add(&vs_uuid, &self->nrf_ble_uuid.type));
|
||||||
if (err_code != NRF_SUCCESS) {
|
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to register Vendor-Specific UUID, err 0x%04x"), err_code);
|
|
||||||
}
|
|
||||||
vm_used_ble = true;
|
vm_used_ble = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -67,11 +64,7 @@ uint32_t common_hal_bleio_uuid_get_uuid16(bleio_uuid_obj_t *self) {
|
|||||||
|
|
||||||
void common_hal_bleio_uuid_get_uuid128(bleio_uuid_obj_t *self, uint8_t uuid128[16]) {
|
void common_hal_bleio_uuid_get_uuid128(bleio_uuid_obj_t *self, uint8_t uuid128[16]) {
|
||||||
uint8_t length;
|
uint8_t length;
|
||||||
const uint32_t err_code = sd_ble_uuid_encode(&self->nrf_ble_uuid, &length, uuid128);
|
check_nrf_error(sd_ble_uuid_encode(&self->nrf_ble_uuid, &length, uuid128));
|
||||||
|
|
||||||
if (err_code != NRF_SUCCESS) {
|
|
||||||
mp_raise_OSError_msg_varg(translate("Could not decode ble_uuid, err 0x%04x"), err_code);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_bleio_uuid_pack_into(bleio_uuid_obj_t *self, uint8_t* buf) {
|
void common_hal_bleio_uuid_pack_into(bleio_uuid_obj_t *self, uint8_t* buf) {
|
||||||
@ -85,7 +78,7 @@ void common_hal_bleio_uuid_pack_into(bleio_uuid_obj_t *self, uint8_t* buf) {
|
|||||||
|
|
||||||
void bleio_uuid_construct_from_nrf_ble_uuid(bleio_uuid_obj_t *self, ble_uuid_t *nrf_ble_uuid) {
|
void bleio_uuid_construct_from_nrf_ble_uuid(bleio_uuid_obj_t *self, ble_uuid_t *nrf_ble_uuid) {
|
||||||
if (nrf_ble_uuid->type == BLE_UUID_TYPE_UNKNOWN) {
|
if (nrf_ble_uuid->type == BLE_UUID_TYPE_UNKNOWN) {
|
||||||
mp_raise_RuntimeError(translate("Unexpected nrfx uuid type"));
|
mp_raise_bleio_BluetoothError(translate("Unexpected nrfx uuid type"));
|
||||||
}
|
}
|
||||||
self->nrf_ble_uuid.uuid = nrf_ble_uuid->uuid;
|
self->nrf_ble_uuid.uuid = nrf_ble_uuid->uuid;
|
||||||
self->nrf_ble_uuid.type = nrf_ble_uuid->type;
|
self->nrf_ble_uuid.type = nrf_ble_uuid->type;
|
||||||
|
@ -40,28 +40,49 @@
|
|||||||
|
|
||||||
#include "common-hal/_bleio/__init__.h"
|
#include "common-hal/_bleio/__init__.h"
|
||||||
|
|
||||||
const mp_obj_t base_error_messages[20] = {
|
void check_nrf_error(uint32_t err_code) {
|
||||||
MP_ROM_QSTR(MP_QSTR_SUCCESS),
|
if (err_code == NRF_SUCCESS) {
|
||||||
MP_ROM_QSTR(MP_QSTR_SVC_HANDLER_MISSING),
|
return;
|
||||||
MP_ROM_QSTR(MP_QSTR_SOFTDEVICE_NOT_ENABLED),
|
}
|
||||||
MP_ROM_QSTR(MP_QSTR_INTERNAL),
|
switch (err_code) {
|
||||||
MP_ROM_QSTR(MP_QSTR_NO_MEM),
|
case NRF_ERROR_TIMEOUT:
|
||||||
MP_ROM_QSTR(MP_QSTR_NOT_FOUND),
|
mp_raise_msg(&mp_type_TimeoutError, NULL);
|
||||||
MP_ROM_QSTR(MP_QSTR_NOT_SUPPORTED),
|
return;
|
||||||
MP_ROM_QSTR(MP_QSTR_INVALID_PARAM),
|
default:
|
||||||
MP_ROM_QSTR(MP_QSTR_INVALID_STATE),
|
mp_raise_bleio_BluetoothError(translate("Unknown soft device error: %04x"), err_code);
|
||||||
MP_ROM_QSTR(MP_QSTR_INVALID_LENGTH),
|
break;
|
||||||
MP_ROM_QSTR(MP_QSTR_INVALID_FLAGS),
|
}
|
||||||
MP_ROM_QSTR(MP_QSTR_INVALID_DATA),
|
}
|
||||||
MP_ROM_QSTR(MP_QSTR_DATA_SIZE),
|
|
||||||
MP_ROM_QSTR(MP_QSTR_TIMEOUT),
|
void check_gatt_status(uint16_t gatt_status) {
|
||||||
MP_ROM_QSTR(MP_QSTR_NULL),
|
if (gatt_status == BLE_GATT_STATUS_SUCCESS) {
|
||||||
MP_ROM_QSTR(MP_QSTR_FORBIDDEN),
|
return;
|
||||||
MP_ROM_QSTR(MP_QSTR_INVALID_ADDR),
|
}
|
||||||
MP_ROM_QSTR(MP_QSTR_BUSY),
|
switch (gatt_status) {
|
||||||
MP_ROM_QSTR(MP_QSTR_CONN_COUNT),
|
case BLE_GATT_STATUS_ATTERR_INSUF_AUTHENTICATION:
|
||||||
MP_ROM_QSTR(MP_QSTR_RESOURCES),
|
mp_raise_bleio_SecurityError(translate("Insufficient authentication"));
|
||||||
};
|
return;
|
||||||
|
case BLE_GATT_STATUS_ATTERR_INSUF_ENCRYPTION:
|
||||||
|
mp_raise_bleio_SecurityError(translate("Insufficient encryption"));
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
mp_raise_bleio_BluetoothError(translate("Unknown gatt error: 0x%04x"), gatt_status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void check_sec_status(uint8_t sec_status) {
|
||||||
|
if (sec_status == BLE_GAP_SEC_STATUS_SUCCESS) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (sec_status) {
|
||||||
|
case BLE_GAP_SEC_STATUS_UNSPECIFIED:
|
||||||
|
mp_raise_bleio_SecurityError(translate("Unspecified issue. Can be that the pairing prompt on the other device was declined or ignored."));
|
||||||
|
return;
|
||||||
|
default:
|
||||||
|
mp_raise_bleio_SecurityError(translate("Unknown security error: 0x%04x"), sec_status);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Turn off BLE on a reset or reload.
|
// Turn off BLE on a reset or reload.
|
||||||
void bleio_reset() {
|
void bleio_reset() {
|
||||||
@ -85,7 +106,7 @@ bleio_adapter_obj_t common_hal_bleio_adapter_obj = {
|
|||||||
|
|
||||||
void common_hal_bleio_check_connected(uint16_t conn_handle) {
|
void common_hal_bleio_check_connected(uint16_t conn_handle) {
|
||||||
if (conn_handle == BLE_CONN_HANDLE_INVALID) {
|
if (conn_handle == BLE_CONN_HANDLE_INVALID) {
|
||||||
mp_raise_OSError_msg(translate("Not connected"));
|
mp_raise_bleio_ConnectionError(translate("Not connected"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -99,10 +120,7 @@ size_t common_hal_bleio_gatts_read(uint16_t handle, uint16_t conn_handle, uint8_
|
|||||||
.len = len,
|
.len = len,
|
||||||
};
|
};
|
||||||
|
|
||||||
uint32_t err_code = sd_ble_gatts_value_get(conn_handle, handle, &gatts_value);
|
check_nrf_error(sd_ble_gatts_value_get(conn_handle, handle, &gatts_value));
|
||||||
if (err_code != NRF_SUCCESS) {
|
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to read gatts value, err 0x%04x"), err_code);
|
|
||||||
}
|
|
||||||
|
|
||||||
return gatts_value.len;
|
return gatts_value.len;
|
||||||
}
|
}
|
||||||
@ -116,10 +134,7 @@ void common_hal_bleio_gatts_write(uint16_t handle, uint16_t conn_handle, mp_buff
|
|||||||
.len = bufinfo->len,
|
.len = bufinfo->len,
|
||||||
};
|
};
|
||||||
|
|
||||||
const uint32_t err_code = sd_ble_gatts_value_set(conn_handle, handle, &gatts_value);
|
check_nrf_error(sd_ble_gatts_value_set(conn_handle, handle, &gatts_value));
|
||||||
if (err_code != NRF_SUCCESS) {
|
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to write gatts value, err 0x%04x"), err_code);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
@ -172,17 +187,16 @@ size_t common_hal_bleio_gattc_read(uint16_t handle, uint16_t conn_handle, uint8_
|
|||||||
read_info.done = false;
|
read_info.done = false;
|
||||||
ble_drv_add_event_handler(_on_gattc_read_rsp_evt, &read_info);
|
ble_drv_add_event_handler(_on_gattc_read_rsp_evt, &read_info);
|
||||||
|
|
||||||
const uint32_t err_code = sd_ble_gattc_read(conn_handle, handle, 0);
|
uint32_t nrf_error = NRF_ERROR_BUSY;
|
||||||
if (err_code != NRF_SUCCESS) {
|
while (nrf_error == NRF_ERROR_BUSY) {
|
||||||
mp_raise_OSError_msg_varg(translate("Failed initiate attribute read, err 0x%04x"), err_code);
|
nrf_error = sd_ble_gattc_read(conn_handle, handle, 0);
|
||||||
}
|
}
|
||||||
|
check_nrf_error(nrf_error);
|
||||||
|
|
||||||
while (!read_info.done) {
|
while (!read_info.done) {
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
}
|
}
|
||||||
if (read_info.status != BLE_GATT_STATUS_SUCCESS) {
|
check_gatt_status(read_info.status);
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to read attribute value, err 0x%04x"), read_info.status);
|
|
||||||
}
|
|
||||||
|
|
||||||
ble_drv_remove_event_handler(_on_gattc_read_rsp_evt, &read_info);
|
ble_drv_remove_event_handler(_on_gattc_read_rsp_evt, &read_info);
|
||||||
return read_info.final_len;
|
return read_info.final_len;
|
||||||
@ -213,7 +227,7 @@ void common_hal_bleio_gattc_write(uint16_t handle, uint16_t conn_handle, mp_buff
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Some real error occurred.
|
// Some real error occurred.
|
||||||
mp_raise_OSError_msg_varg(translate("Failed to write attribute value, err 0x%04x"), err_code);
|
check_nrf_error(err_code);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -39,7 +39,10 @@ typedef struct {
|
|||||||
// 20 bytes max (23 - 3).
|
// 20 bytes max (23 - 3).
|
||||||
#define GATT_MAX_DATA_LENGTH (BLE_GATT_ATT_MTU_DEFAULT - 3)
|
#define GATT_MAX_DATA_LENGTH (BLE_GATT_ATT_MTU_DEFAULT - 3)
|
||||||
|
|
||||||
const mp_obj_t base_error_messages[20];
|
// These helpers raise the appropriate exceptions if the code doesn't equal success.
|
||||||
|
void check_nrf_error(uint32_t err_code);
|
||||||
|
void check_gatt_status(uint16_t gatt_status);
|
||||||
|
void check_sec_status(uint8_t sec_status);
|
||||||
|
|
||||||
// Track if the user code modified the BLE state to know if we need to undo it on reload.
|
// Track if the user code modified the BLE state to know if we need to undo it on reload.
|
||||||
bool vm_used_ble;
|
bool vm_used_ble;
|
||||||
|
@ -108,6 +108,7 @@ void choose_i2s_clocking(audiobusio_i2sout_obj_t *self, uint32_t sample_rate) {
|
|||||||
|
|
||||||
static void i2s_buffer_fill(audiobusio_i2sout_obj_t* self) {
|
static void i2s_buffer_fill(audiobusio_i2sout_obj_t* self) {
|
||||||
void *buffer = self->buffers[self->next_buffer];
|
void *buffer = self->buffers[self->next_buffer];
|
||||||
|
void *buffer_start = buffer;
|
||||||
NRF_I2S->TXD.PTR = (uintptr_t)buffer;
|
NRF_I2S->TXD.PTR = (uintptr_t)buffer;
|
||||||
self->next_buffer = !self->next_buffer;
|
self->next_buffer = !self->next_buffer;
|
||||||
size_t bytesleft = self->buffer_length;
|
size_t bytesleft = self->buffer_length;
|
||||||
@ -139,14 +140,14 @@ static void i2s_buffer_fill(audiobusio_i2sout_obj_t* self) {
|
|||||||
uint16_t *bp = (uint16_t*)buffer;
|
uint16_t *bp = (uint16_t*)buffer;
|
||||||
uint16_t *be = (uint16_t*)(buffer + bytecount);
|
uint16_t *be = (uint16_t*)(buffer + bytecount);
|
||||||
uint16_t *sp = (uint16_t*)self->sample_data;
|
uint16_t *sp = (uint16_t*)self->sample_data;
|
||||||
for (; bp != be; bp++) {
|
for (; bp < be;) {
|
||||||
*bp++ = *sp++ + 0x8000;
|
*bp++ = *sp++ + 0x8000;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
uint8_t *bp = (uint8_t*)buffer;
|
uint8_t *bp = (uint8_t*)buffer;
|
||||||
uint8_t *be = (uint8_t*)(buffer + bytecount);
|
uint8_t *be = (uint8_t*)(buffer + bytecount);
|
||||||
uint8_t *sp = (uint8_t*)self->sample_data;
|
uint8_t *sp = (uint8_t*)self->sample_data;
|
||||||
for (; bp != be; bp++) {
|
for (; bp < be;) {
|
||||||
*bp++ = *sp++ + 0x80;
|
*bp++ = *sp++ + 0x80;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -157,6 +158,7 @@ static void i2s_buffer_fill(audiobusio_i2sout_obj_t* self) {
|
|||||||
|
|
||||||
// Find the last frame of real audio data and replicate its samples until
|
// Find the last frame of real audio data and replicate its samples until
|
||||||
// you have 32 bits worth, which is the fundamental unit of nRF I2S DMA
|
// you have 32 bits worth, which is the fundamental unit of nRF I2S DMA
|
||||||
|
if(buffer != buffer_start) {
|
||||||
if (self->bytes_per_sample == 1 && self->channel_count == 1) {
|
if (self->bytes_per_sample == 1 && self->channel_count == 1) {
|
||||||
// For 8-bit mono, 4 copies of the final sample are required
|
// For 8-bit mono, 4 copies of the final sample are required
|
||||||
self->hold_value = 0x01010101 * *(uint8_t*)(buffer-1);
|
self->hold_value = 0x01010101 * *(uint8_t*)(buffer-1);
|
||||||
@ -167,6 +169,7 @@ static void i2s_buffer_fill(audiobusio_i2sout_obj_t* self) {
|
|||||||
// For 8-bit stereo and 16-bit mono, 2 copies of the final sample are required
|
// For 8-bit stereo and 16-bit mono, 2 copies of the final sample are required
|
||||||
self->hold_value = 0x00010001 * *(uint16_t*)(buffer-2);
|
self->hold_value = 0x00010001 * *(uint16_t*)(buffer-2);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Emulate pausing and stopping by filling the DMA buffer with copies of
|
// Emulate pausing and stopping by filling the DMA buffer with copies of
|
||||||
// the last sample. This includes the case where this iteration of
|
// the last sample. This includes the case where this iteration of
|
||||||
@ -218,6 +221,8 @@ void common_hal_audiobusio_i2sout_deinit(audiobusio_i2sout_obj_t* self) {
|
|||||||
if (common_hal_audiobusio_i2sout_deinited(self)) {
|
if (common_hal_audiobusio_i2sout_deinited(self)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
NRF_I2S->TASKS_STOP = 1;
|
||||||
|
NRF_I2S->ENABLE = I2S_ENABLE_ENABLE_Disabled;
|
||||||
reset_pin_number(self->bit_clock_pin_number);
|
reset_pin_number(self->bit_clock_pin_number);
|
||||||
self->bit_clock_pin_number = 0xff;
|
self->bit_clock_pin_number = 0xff;
|
||||||
reset_pin_number(self->word_select_pin_number);
|
reset_pin_number(self->word_select_pin_number);
|
||||||
@ -240,12 +245,20 @@ void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t* self,
|
|||||||
|
|
||||||
uint32_t max_buffer_length;
|
uint32_t max_buffer_length;
|
||||||
bool single_buffer, samples_signed;
|
bool single_buffer, samples_signed;
|
||||||
audiosample_get_buffer_structure(sample, /* single channel */ false,
|
audiosample_get_buffer_structure(sample, /* single channel */ true,
|
||||||
&single_buffer, &samples_signed, &max_buffer_length,
|
&single_buffer, &samples_signed, &max_buffer_length,
|
||||||
&self->channel_count);
|
&self->channel_count);
|
||||||
self->single_buffer = single_buffer;
|
self->single_buffer = single_buffer;
|
||||||
self->samples_signed = samples_signed;
|
self->samples_signed = samples_signed;
|
||||||
|
|
||||||
|
|
||||||
|
NRF_I2S->CONFIG.SWIDTH = self->bytes_per_sample == 1
|
||||||
|
? I2S_CONFIG_SWIDTH_SWIDTH_8Bit
|
||||||
|
: I2S_CONFIG_SWIDTH_SWIDTH_16Bit;
|
||||||
|
NRF_I2S->CONFIG.CHANNELS = self->channel_count == 1
|
||||||
|
? I2S_CONFIG_CHANNELS_CHANNELS_Left
|
||||||
|
: I2S_CONFIG_CHANNELS_CHANNELS_Stereo;
|
||||||
|
|
||||||
choose_i2s_clocking(self, sample_rate);
|
choose_i2s_clocking(self, sample_rate);
|
||||||
/* Allocate buffers based on a maximum duration
|
/* Allocate buffers based on a maximum duration
|
||||||
* This duration was chosen empirically based on what would
|
* This duration was chosen empirically based on what would
|
||||||
@ -269,9 +282,6 @@ void common_hal_audiobusio_i2sout_play(audiobusio_i2sout_obj_t* self,
|
|||||||
self->stopping = false;
|
self->stopping = false;
|
||||||
i2s_buffer_fill(self);
|
i2s_buffer_fill(self);
|
||||||
|
|
||||||
NRF_I2S->CONFIG.CHANNELS = self->channel_count == 1 ? I2S_CONFIG_CHANNELS_CHANNELS_Left : I2S_CONFIG_CHANNELS_CHANNELS_Stereo;
|
|
||||||
|
|
||||||
|
|
||||||
NRF_I2S->RXTXD.MAXCNT = self->buffer_length / 4;
|
NRF_I2S->RXTXD.MAXCNT = self->buffer_length / 4;
|
||||||
NRF_I2S->ENABLE = I2S_ENABLE_ENABLE_Enabled;
|
NRF_I2S->ENABLE = I2S_ENABLE_ENABLE_Enabled;
|
||||||
|
|
||||||
|
@ -231,10 +231,10 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
size_t rx_bytes = 0;
|
size_t rx_bytes = 0;
|
||||||
uint64_t start_ticks = ticks_ms;
|
uint64_t start_ticks = supervisor_ticks_ms64();
|
||||||
|
|
||||||
// Wait for all bytes received or timeout
|
// Wait for all bytes received or timeout
|
||||||
while ( (ringbuf_count(&self->rbuf) < len) && (ticks_ms - start_ticks < self->timeout_ms) ) {
|
while ( (ringbuf_count(&self->rbuf) < len) && (supervisor_ticks_ms64() - start_ticks < self->timeout_ms) ) {
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
// Allow user to break out of a timeout with a KeyboardInterrupt.
|
// Allow user to break out of a timeout with a KeyboardInterrupt.
|
||||||
if ( mp_hal_is_interrupted() ) {
|
if ( mp_hal_is_interrupted() ) {
|
||||||
@ -265,19 +265,6 @@ size_t common_hal_busio_uart_write (busio_uart_obj_t *self, const uint8_t *data,
|
|||||||
|
|
||||||
if ( len == 0 ) return 0;
|
if ( len == 0 ) return 0;
|
||||||
|
|
||||||
uint64_t start_ticks = ticks_ms;
|
|
||||||
|
|
||||||
// Wait for on-going transfer to complete
|
|
||||||
while ( nrfx_uarte_tx_in_progress(self->uarte) && (ticks_ms - start_ticks < self->timeout_ms) ) {
|
|
||||||
RUN_BACKGROUND_TASKS;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Time up
|
|
||||||
if ( !(ticks_ms - start_ticks < self->timeout_ms) ) {
|
|
||||||
*errcode = MP_EAGAIN;
|
|
||||||
return MP_STREAM_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
// EasyDMA can only access SRAM
|
// EasyDMA can only access SRAM
|
||||||
uint8_t * tx_buf = (uint8_t*) data;
|
uint8_t * tx_buf = (uint8_t*) data;
|
||||||
if ( !nrfx_is_in_ram(data) ) {
|
if ( !nrfx_is_in_ram(data) ) {
|
||||||
@ -290,7 +277,8 @@ size_t common_hal_busio_uart_write (busio_uart_obj_t *self, const uint8_t *data,
|
|||||||
_VERIFY_ERR(*errcode);
|
_VERIFY_ERR(*errcode);
|
||||||
(*errcode) = 0;
|
(*errcode) = 0;
|
||||||
|
|
||||||
while ( nrfx_uarte_tx_in_progress(self->uarte) && (ticks_ms - start_ticks < self->timeout_ms) ) {
|
// Wait for write to complete.
|
||||||
|
while ( nrfx_uarte_tx_in_progress(self->uarte) ) {
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -310,6 +298,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
|||||||
nrf_uarte_baudrate_set(self->uarte->p_reg, get_nrf_baud(baudrate));
|
nrf_uarte_baudrate_set(self->uarte->p_reg, get_nrf_baud(baudrate));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self) {
|
||||||
|
return (mp_float_t) (self->timeout_ms / 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeout) {
|
||||||
|
self->timeout_ms = timeout * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
||||||
return ringbuf_count(&self->rbuf);
|
return ringbuf_count(&self->rbuf);
|
||||||
}
|
}
|
||||||
|
@ -29,7 +29,7 @@
|
|||||||
#include "tick.h"
|
#include "tick.h"
|
||||||
|
|
||||||
uint64_t common_hal_time_monotonic(void) {
|
uint64_t common_hal_time_monotonic(void) {
|
||||||
return ticks_ms;
|
return supervisor_ticks_ms64();
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_time_delay_ms(uint32_t delay) {
|
void common_hal_time_delay_ms(uint32_t delay) {
|
||||||
|
@ -11,20 +11,33 @@ USB_SERIAL_NUMBER_LENGTH = 16
|
|||||||
LONGINT_IMPL = MPZ
|
LONGINT_IMPL = MPZ
|
||||||
|
|
||||||
# Audio via PWM
|
# Audio via PWM
|
||||||
|
ifndef CIRCUITPY_AUDIOCORE
|
||||||
CIRCUITPY_AUDIOCORE = 1
|
CIRCUITPY_AUDIOCORE = 1
|
||||||
|
endif
|
||||||
|
|
||||||
CIRCUITPY_AUDIOIO = 0
|
CIRCUITPY_AUDIOIO = 0
|
||||||
|
|
||||||
|
# The ifndef's allow overriding in mpconfigboard.mk.
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_AUDIOMIXER
|
||||||
CIRCUITPY_AUDIOMIXER = 1
|
CIRCUITPY_AUDIOMIXER = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_AUDIOPWMIO
|
||||||
CIRCUITPY_AUDIOPWMIO = 1
|
CIRCUITPY_AUDIOPWMIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_AUDIOBUSIO
|
||||||
CIRCUITPY_AUDIOBUSIO = 1
|
CIRCUITPY_AUDIOBUSIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
# No I2CSlave implementation
|
# No I2CSlave implementation
|
||||||
CIRCUITPY_I2CSLAVE = 0
|
CIRCUITPY_I2CSLAVE = 0
|
||||||
|
|
||||||
# enable NVM
|
|
||||||
CIRCUITPY_NVM = 1
|
|
||||||
|
|
||||||
# enable RTC
|
# enable RTC
|
||||||
|
ifndef CIRCUITPY_RTC
|
||||||
CIRCUITPY_RTC = 1
|
CIRCUITPY_RTC = 1
|
||||||
|
endif
|
||||||
|
|
||||||
# frequencyio not yet implemented
|
# frequencyio not yet implemented
|
||||||
CIRCUITPY_FREQUENCYIO = 0
|
CIRCUITPY_FREQUENCYIO = 0
|
||||||
|
@ -31,12 +31,13 @@
|
|||||||
#include "py/mphal.h"
|
#include "py/mphal.h"
|
||||||
#include "py/mpstate.h"
|
#include "py/mpstate.h"
|
||||||
#include "py/gc.h"
|
#include "py/gc.h"
|
||||||
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
/* delay
|
/* delay
|
||||||
*------------------------------------------------------------------*/
|
*------------------------------------------------------------------*/
|
||||||
void mp_hal_delay_ms(mp_uint_t delay) {
|
void mp_hal_delay_ms(mp_uint_t delay) {
|
||||||
uint64_t start_tick = ticks_ms;
|
uint64_t start_tick = supervisor_ticks_ms64();
|
||||||
uint64_t duration = 0;
|
uint64_t duration = 0;
|
||||||
while (duration < delay) {
|
while (duration < delay) {
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
@ -45,7 +46,7 @@ void mp_hal_delay_ms(mp_uint_t delay) {
|
|||||||
MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
|
MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
duration = (ticks_ms - start_tick);
|
duration = (supervisor_ticks_ms64() - start_tick);
|
||||||
// TODO(tannewt): Go to sleep for a little while while we wait.
|
// TODO(tannewt): Go to sleep for a little while while we wait.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,12 +33,11 @@
|
|||||||
#include "lib/utils/interrupt_char.h"
|
#include "lib/utils/interrupt_char.h"
|
||||||
#include "nrfx_uarte.h"
|
#include "nrfx_uarte.h"
|
||||||
#include "py/mpconfig.h"
|
#include "py/mpconfig.h"
|
||||||
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
extern nrfx_uarte_t serial_instance;
|
extern nrfx_uarte_t serial_instance;
|
||||||
|
|
||||||
extern volatile uint64_t ticks_ms;
|
#define mp_hal_ticks_ms() ((mp_uint_t) supervisor_ticks_ms32())
|
||||||
|
|
||||||
#define mp_hal_ticks_ms() ((mp_uint_t) ticks_ms)
|
|
||||||
#define mp_hal_delay_us(us) NRFX_DELAY_US((uint32_t) (us))
|
#define mp_hal_delay_us(us) NRFX_DELAY_US((uint32_t) (us))
|
||||||
|
|
||||||
bool mp_hal_stdin_any(void);
|
bool mp_hal_stdin_any(void);
|
||||||
|
@ -26,31 +26,14 @@
|
|||||||
|
|
||||||
#include "tick.h"
|
#include "tick.h"
|
||||||
|
|
||||||
#include "supervisor/shared/autoreload.h"
|
#include "supervisor/shared/tick.h"
|
||||||
#include "supervisor/filesystem.h"
|
|
||||||
#include "shared-module/gamepad/__init__.h"
|
#include "shared-module/gamepad/__init__.h"
|
||||||
#include "shared-bindings/microcontroller/Processor.h"
|
#include "shared-bindings/microcontroller/Processor.h"
|
||||||
#include "nrf.h"
|
#include "nrf.h"
|
||||||
|
|
||||||
// Global millisecond tick count
|
|
||||||
volatile uint64_t ticks_ms = 0;
|
|
||||||
|
|
||||||
void SysTick_Handler(void) {
|
void SysTick_Handler(void) {
|
||||||
// SysTick interrupt handler called when the SysTick timer reaches zero
|
// Do things common to all ports when the tick occurs
|
||||||
// (every millisecond).
|
supervisor_tick();
|
||||||
ticks_ms += 1;
|
|
||||||
|
|
||||||
#if CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS > 0
|
|
||||||
filesystem_tick();
|
|
||||||
#endif
|
|
||||||
#ifdef CIRCUITPY_AUTORELOAD_DELAY_MS
|
|
||||||
autoreload_tick();
|
|
||||||
#endif
|
|
||||||
#ifdef CIRCUITPY_GAMEPAD_TICKS
|
|
||||||
if (!(ticks_ms & CIRCUITPY_GAMEPAD_TICKS)) {
|
|
||||||
gamepad_tick();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void tick_init() {
|
void tick_init() {
|
||||||
@ -61,11 +44,11 @@ void tick_init() {
|
|||||||
void tick_delay(uint32_t us) {
|
void tick_delay(uint32_t us) {
|
||||||
uint32_t ticks_per_us = common_hal_mcu_processor_get_frequency() / 1000 / 1000;
|
uint32_t ticks_per_us = common_hal_mcu_processor_get_frequency() / 1000 / 1000;
|
||||||
uint32_t us_between_ticks = SysTick->VAL / ticks_per_us;
|
uint32_t us_between_ticks = SysTick->VAL / ticks_per_us;
|
||||||
uint64_t start_ms = ticks_ms;
|
uint64_t start_ms = supervisor_ticks_ms64();
|
||||||
while (us > 1000) {
|
while (us > 1000) {
|
||||||
while (ticks_ms == start_ms) {}
|
while (supervisor_ticks_ms64() == start_ms) {}
|
||||||
us -= us_between_ticks;
|
us -= us_between_ticks;
|
||||||
start_ms = ticks_ms;
|
start_ms = supervisor_ticks_ms64();
|
||||||
us_between_ticks = 1000;
|
us_between_ticks = 1000;
|
||||||
}
|
}
|
||||||
while (SysTick->VAL > ((us_between_ticks - us) * ticks_per_us)) {}
|
while (SysTick->VAL > ((us_between_ticks - us) * ticks_per_us)) {}
|
||||||
@ -74,11 +57,11 @@ void tick_delay(uint32_t us) {
|
|||||||
// us counts down!
|
// us counts down!
|
||||||
void current_tick(uint64_t* ms, uint32_t* us_until_ms) {
|
void current_tick(uint64_t* ms, uint32_t* us_until_ms) {
|
||||||
uint32_t ticks_per_us = common_hal_mcu_processor_get_frequency() / 1000 / 1000;
|
uint32_t ticks_per_us = common_hal_mcu_processor_get_frequency() / 1000 / 1000;
|
||||||
*ms = ticks_ms;
|
*ms = supervisor_ticks_ms64();
|
||||||
*us_until_ms = SysTick->VAL / ticks_per_us;
|
*us_until_ms = SysTick->VAL / ticks_per_us;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wait_until(uint64_t ms, uint32_t us_until_ms) {
|
void wait_until(uint64_t ms, uint32_t us_until_ms) {
|
||||||
uint32_t ticks_per_us = common_hal_mcu_processor_get_frequency() / 1000 / 1000;
|
uint32_t ticks_per_us = common_hal_mcu_processor_get_frequency() / 1000 / 1000;
|
||||||
while(ticks_ms <= ms && SysTick->VAL / ticks_per_us >= us_until_ms) {}
|
while(supervisor_ticks_ms64() <= ms && SysTick->VAL / ticks_per_us >= us_until_ms) {}
|
||||||
}
|
}
|
||||||
|
@ -30,8 +30,6 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
extern volatile uint64_t ticks_ms;
|
|
||||||
|
|
||||||
extern struct timer_descriptor ms_timer;
|
extern struct timer_descriptor ms_timer;
|
||||||
|
|
||||||
void tick_init(void);
|
void tick_init(void);
|
||||||
|
@ -36,6 +36,7 @@
|
|||||||
#include "common-hal/microcontroller/Pin.h"
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
|
||||||
STATIC bool reserved_i2c[3];
|
STATIC bool reserved_i2c[3];
|
||||||
|
STATIC bool never_reset[3];
|
||||||
|
|
||||||
void i2c_reset(void) {
|
void i2c_reset(void) {
|
||||||
//Note: I2Cs are also forcibly reset in construct, due to silicon error
|
//Note: I2Cs are also forcibly reset in construct, due to silicon error
|
||||||
@ -48,11 +49,24 @@ void i2c_reset(void) {
|
|||||||
__HAL_RCC_I2C2_CLK_DISABLE();
|
__HAL_RCC_I2C2_CLK_DISABLE();
|
||||||
#endif
|
#endif
|
||||||
#ifdef I2C3
|
#ifdef I2C3
|
||||||
reserved_i2c[3] = false;
|
reserved_i2c[2] = false;
|
||||||
__HAL_RCC_I2C3_CLK_DISABLE();
|
__HAL_RCC_I2C3_CLK_DISABLE();
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void common_hal_busio_i2c_never_reset(busio_i2c_obj_t *self) {
|
||||||
|
for (size_t i = 0 ; i < MP_ARRAY_SIZE(mcu_i2c_banks); i++) {
|
||||||
|
if (self->handle.Instance == mcu_i2c_banks[i]) {
|
||||||
|
never_reset[i] = true;
|
||||||
|
|
||||||
|
never_reset_pin_number(self->scl->pin->port, self->scl->pin->number);
|
||||||
|
never_reset_pin_number(self->sda->pin->port, self->scl->pin->number);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
|
void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
|
||||||
const mcu_pin_obj_t* scl, const mcu_pin_obj_t* sda, uint32_t frequency, uint32_t timeout) {
|
const mcu_pin_obj_t* scl, const mcu_pin_obj_t* sda, uint32_t frequency, uint32_t timeout) {
|
||||||
|
|
||||||
@ -166,19 +180,22 @@ void common_hal_busio_i2c_deinit(busio_i2c_obj_t *self) {
|
|||||||
}
|
}
|
||||||
#ifdef I2C1
|
#ifdef I2C1
|
||||||
if(self->handle.Instance==I2C1) {
|
if(self->handle.Instance==I2C1) {
|
||||||
reserved_i2c[0] = 0;
|
never_reset[0] = false;
|
||||||
|
reserved_i2c[0] = false;
|
||||||
__HAL_RCC_I2C1_CLK_DISABLE();
|
__HAL_RCC_I2C1_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef I2C2
|
#ifdef I2C2
|
||||||
if(self->handle.Instance==I2C2) {
|
if(self->handle.Instance==I2C2) {
|
||||||
reserved_i2c[1] = 0;
|
never_reset[1] = false;
|
||||||
|
reserved_i2c[1] = false;
|
||||||
__HAL_RCC_I2C2_CLK_DISABLE();
|
__HAL_RCC_I2C2_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifdef I2C3
|
#ifdef I2C3
|
||||||
if(self->handle.Instance==I2C3) {
|
if(self->handle.Instance==I2C3) {
|
||||||
reserved_i2c[3] = 0;
|
never_reset[2] = false;
|
||||||
|
reserved_i2c[2] = false;
|
||||||
__HAL_RCC_I2C3_CLK_DISABLE();
|
__HAL_RCC_I2C3_CLK_DISABLE();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -36,46 +36,37 @@
|
|||||||
#include "supervisor/shared/translate.h"
|
#include "supervisor/shared/translate.h"
|
||||||
#include "common-hal/microcontroller/Pin.h"
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
|
||||||
STATIC bool reserved_spi[6];
|
#define MAX_SPI 6 //TODO; replace this as part of periph cleanup
|
||||||
STATIC bool never_reset_spi[6];
|
#define ALL_CLOCKS 0xFF
|
||||||
|
|
||||||
void spi_reset(void) {
|
//arrays use 0 based numbering: SPI1 is stored at index 0
|
||||||
#ifdef SPI1
|
STATIC bool reserved_spi[MAX_SPI];
|
||||||
if(!never_reset_spi[0]) {
|
STATIC bool never_reset_spi[MAX_SPI];
|
||||||
reserved_spi[0] = false;
|
|
||||||
__HAL_RCC_SPI1_CLK_DISABLE();
|
STATIC void spi_clock_enable(uint8_t mask);
|
||||||
}
|
STATIC void spi_clock_disable(uint8_t mask);
|
||||||
#endif
|
|
||||||
|
STATIC uint32_t get_busclock(SPI_TypeDef * instance) {
|
||||||
|
//SPI2 and 3 are on PCLK1, if they exist.
|
||||||
#ifdef SPI2
|
#ifdef SPI2
|
||||||
if(!never_reset_spi[1]) {
|
if(instance == SPI2) return HAL_RCC_GetPCLK1Freq();
|
||||||
reserved_spi[1] = false;
|
|
||||||
__HAL_RCC_SPI2_CLK_DISABLE();
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SPI3
|
#ifdef SPI3
|
||||||
if(!never_reset_spi[2]) {
|
if(instance == SPI3) return HAL_RCC_GetPCLK1Freq();
|
||||||
reserved_spi[2] = false;
|
|
||||||
__HAL_RCC_SPI3_CLK_DISABLE();
|
|
||||||
}
|
|
||||||
#endif
|
#endif
|
||||||
#ifdef SPI4
|
return HAL_RCC_GetPCLK2Freq();
|
||||||
if(!never_reset_spi[3]) {
|
}
|
||||||
reserved_spi[3] = false;
|
|
||||||
__HAL_RCC_SPI4_CLK_DISABLE();
|
void spi_reset(void) {
|
||||||
|
uint16_t never_reset_mask = 0x00;
|
||||||
|
for(int i=0;i<MAX_SPI;i++) {
|
||||||
|
if (!never_reset_spi[i]) {
|
||||||
|
reserved_spi[i] = 0x00;
|
||||||
|
} else {
|
||||||
|
never_reset_mask |= 1<<i;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
#ifdef SPI5
|
|
||||||
if(!never_reset_spi[4]) {
|
|
||||||
reserved_spi[4] = false;
|
|
||||||
__HAL_RCC_SPI5_CLK_DISABLE();
|
|
||||||
}
|
}
|
||||||
#endif
|
spi_clock_disable(ALL_CLOCKS & ~(never_reset_mask));
|
||||||
#ifdef SPI6
|
|
||||||
if(!never_reset_spi[5]) {
|
|
||||||
reserved_spi[5] = false;
|
|
||||||
__HAL_RCC_SPI6_CLK_DISABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_busio_spi_construct(busio_spi_obj_t *self,
|
void common_hal_busio_spi_construct(busio_spi_obj_t *self,
|
||||||
@ -152,42 +143,8 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
|
|||||||
GPIO_InitStruct.Alternate = self->miso->altfn_index;
|
GPIO_InitStruct.Alternate = self->miso->altfn_index;
|
||||||
HAL_GPIO_Init(pin_port(miso->port), &GPIO_InitStruct);
|
HAL_GPIO_Init(pin_port(miso->port), &GPIO_InitStruct);
|
||||||
|
|
||||||
#ifdef SPI1
|
spi_clock_enable(1<<(self->sck->spi_index - 1));
|
||||||
if(SPIx==SPI1) {
|
reserved_spi[self->sck->spi_index - 1] = true;
|
||||||
reserved_spi[0] = true;
|
|
||||||
__HAL_RCC_SPI1_CLK_ENABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI2
|
|
||||||
if(SPIx==SPI2) {
|
|
||||||
reserved_spi[1] = true;
|
|
||||||
__HAL_RCC_SPI2_CLK_ENABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI3
|
|
||||||
if(SPIx==SPI3) {
|
|
||||||
reserved_spi[2] = true;
|
|
||||||
__HAL_RCC_SPI3_CLK_ENABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI4
|
|
||||||
if(SPIx==SPI4) {
|
|
||||||
reserved_spi[3] = true;
|
|
||||||
__HAL_RCC_SPI4_CLK_ENABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI5
|
|
||||||
if(SPIx==SPI5) {
|
|
||||||
reserved_spi[4] = true;
|
|
||||||
__HAL_RCC_SPI5_CLK_ENABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI6
|
|
||||||
if(SPIx==SPI6) {
|
|
||||||
reserved_spi[5] = true;
|
|
||||||
__HAL_RCC_SPI6_CLK_ENABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
self->handle.Instance = SPIx;
|
self->handle.Instance = SPIx;
|
||||||
self->handle.Init.Mode = SPI_MODE_MASTER;
|
self->handle.Init.Mode = SPI_MODE_MASTER;
|
||||||
@ -205,10 +162,10 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
|
|||||||
{
|
{
|
||||||
mp_raise_ValueError(translate("SPI Init Error"));
|
mp_raise_ValueError(translate("SPI Init Error"));
|
||||||
}
|
}
|
||||||
self->baudrate = (HAL_RCC_GetPCLK2Freq()/16);
|
self->baudrate = (get_busclock(SPIx)/16);
|
||||||
self->prescaler = 16;
|
self->prescaler = 16;
|
||||||
self->polarity = 0;
|
self->polarity = 0;
|
||||||
self->phase = 1;
|
self->phase = 0;
|
||||||
self->bits = 8;
|
self->bits = 8;
|
||||||
|
|
||||||
claim_pin(sck);
|
claim_pin(sck);
|
||||||
@ -233,42 +190,10 @@ bool common_hal_busio_spi_deinited(busio_spi_obj_t *self) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
|
void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
|
||||||
#ifdef SPI1
|
spi_clock_disable(1<<(self->sck->spi_index - 1));
|
||||||
if(self->handle.Instance==SPI1) {
|
reserved_spi[self->sck->spi_index - 1] = false;
|
||||||
reserved_spi[0] = false;
|
never_reset_spi[self->sck->spi_index - 1] = false;
|
||||||
__HAL_RCC_SPI1_CLK_DISABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI2
|
|
||||||
if(self->handle.Instance==SPI2) {
|
|
||||||
reserved_spi[1] = false;
|
|
||||||
__HAL_RCC_SPI2_CLK_DISABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI3
|
|
||||||
if(self->handle.Instance==SPI3) {
|
|
||||||
reserved_spi[2] = false;
|
|
||||||
__HAL_RCC_SPI3_CLK_DISABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI4
|
|
||||||
if(self->handle.Instance==SPI4) {
|
|
||||||
reserved_spi[3] = false;
|
|
||||||
__HAL_RCC_SPI4_CLK_DISABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI5
|
|
||||||
if(self->handle.Instance==SPI5) {
|
|
||||||
reserved_spi[4] = false;
|
|
||||||
__HAL_RCC_SPI5_CLK_DISABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#ifdef SPI6
|
|
||||||
if(self->handle.Instance==SPI6) {
|
|
||||||
reserved_spi[5] = false;
|
|
||||||
__HAL_RCC_SPI6_CLK_DISABLE();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
reset_pin_number(self->sck->pin->port,self->sck->pin->number);
|
reset_pin_number(self->sck->pin->port,self->sck->pin->number);
|
||||||
reset_pin_number(self->mosi->pin->port,self->mosi->pin->number);
|
reset_pin_number(self->mosi->pin->port,self->mosi->pin->number);
|
||||||
reset_pin_number(self->miso->pin->port,self->miso->pin->number);
|
reset_pin_number(self->miso->pin->port,self->miso->pin->number);
|
||||||
@ -277,7 +202,7 @@ void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
|
|||||||
self->miso = mp_const_none;
|
self->miso = mp_const_none;
|
||||||
}
|
}
|
||||||
|
|
||||||
static uint32_t stm32_baud_to_spi_div(uint32_t baudrate, uint16_t * prescaler) {
|
STATIC uint32_t stm32_baud_to_spi_div(uint32_t baudrate, uint16_t * prescaler, uint32_t busclock) {
|
||||||
static const uint32_t baud_map[8][2] = {
|
static const uint32_t baud_map[8][2] = {
|
||||||
{2,SPI_BAUDRATEPRESCALER_2},
|
{2,SPI_BAUDRATEPRESCALER_2},
|
||||||
{4,SPI_BAUDRATEPRESCALER_4},
|
{4,SPI_BAUDRATEPRESCALER_4},
|
||||||
@ -292,7 +217,7 @@ static uint32_t stm32_baud_to_spi_div(uint32_t baudrate, uint16_t * prescaler) {
|
|||||||
uint16_t divisor;
|
uint16_t divisor;
|
||||||
do {
|
do {
|
||||||
divisor = baud_map[i][0];
|
divisor = baud_map[i][0];
|
||||||
if (baudrate >= (HAL_RCC_GetPCLK2Freq()/divisor)) {
|
if (baudrate >= (busclock/divisor)) {
|
||||||
*prescaler = divisor;
|
*prescaler = divisor;
|
||||||
return baud_map[i][1];
|
return baud_map[i][1];
|
||||||
}
|
}
|
||||||
@ -312,28 +237,12 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
|
|||||||
//Deinit SPI
|
//Deinit SPI
|
||||||
HAL_SPI_DeInit(&self->handle);
|
HAL_SPI_DeInit(&self->handle);
|
||||||
|
|
||||||
if (bits == 8) {
|
self->handle.Init.DataSize = (bits == 16) ? SPI_DATASIZE_16BIT : SPI_DATASIZE_8BIT;
|
||||||
self->handle.Init.DataSize = SPI_DATASIZE_8BIT;
|
self->handle.Init.CLKPolarity = (polarity) ? SPI_POLARITY_HIGH : SPI_POLARITY_LOW;
|
||||||
} else if (bits == 16) {
|
self->handle.Init.CLKPhase = (phase) ? SPI_PHASE_2EDGE : SPI_PHASE_1EDGE;
|
||||||
self->handle.Init.DataSize = SPI_DATASIZE_16BIT;
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (polarity) {
|
|
||||||
self->handle.Init.CLKPolarity = SPI_POLARITY_HIGH;
|
|
||||||
} else {
|
|
||||||
self->handle.Init.CLKPolarity = SPI_POLARITY_LOW;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (phase) {
|
|
||||||
self->handle.Init.CLKPhase = SPI_PHASE_2EDGE;
|
|
||||||
} else {
|
|
||||||
self->handle.Init.CLKPhase = SPI_PHASE_1EDGE;
|
|
||||||
}
|
|
||||||
|
|
||||||
self->handle.Init.BaudRatePrescaler = stm32_baud_to_spi_div(baudrate, &self->prescaler);
|
|
||||||
|
|
||||||
|
self->handle.Init.BaudRatePrescaler = stm32_baud_to_spi_div(baudrate, &self->prescaler,
|
||||||
|
get_busclock(self->handle.Instance));
|
||||||
self->handle.Init.Mode = SPI_MODE_MASTER;
|
self->handle.Init.Mode = SPI_MODE_MASTER;
|
||||||
self->handle.Init.Direction = SPI_DIRECTION_2LINES;
|
self->handle.Init.Direction = SPI_DIRECTION_2LINES;
|
||||||
self->handle.Init.NSS = SPI_NSS_SOFT;
|
self->handle.Init.NSS = SPI_NSS_SOFT;
|
||||||
@ -413,3 +322,45 @@ uint8_t common_hal_busio_spi_get_phase(busio_spi_obj_t* self) {
|
|||||||
uint8_t common_hal_busio_spi_get_polarity(busio_spi_obj_t* self) {
|
uint8_t common_hal_busio_spi_get_polarity(busio_spi_obj_t* self) {
|
||||||
return self->polarity;
|
return self->polarity;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
STATIC void spi_clock_enable(uint8_t mask) {
|
||||||
|
#ifdef SPI1
|
||||||
|
if (mask & 1<<0) __HAL_RCC_SPI1_CLK_ENABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI2
|
||||||
|
if (mask & 1<<1) __HAL_RCC_SPI2_CLK_ENABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI3
|
||||||
|
if (mask & 1<<2) __HAL_RCC_SPI3_CLK_ENABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI4
|
||||||
|
if (mask & 1<<3) __HAL_RCC_SPI4_CLK_ENABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI5
|
||||||
|
if (mask & 1<<4) __HAL_RCC_SPI5_CLK_ENABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI6
|
||||||
|
if (mask & 1<<5) __HAL_RCC_SPI6_CLK_ENABLE();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
STATIC void spi_clock_disable(uint8_t mask) {
|
||||||
|
#ifdef SPI1
|
||||||
|
if (mask & 1<<0) __HAL_RCC_SPI1_CLK_DISABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI2
|
||||||
|
if (mask & 1<<1) __HAL_RCC_SPI2_CLK_DISABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI3
|
||||||
|
if (mask & 1<<2) __HAL_RCC_SPI3_CLK_DISABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI4
|
||||||
|
if (mask & 1<<3) __HAL_RCC_SPI4_CLK_DISABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI5
|
||||||
|
if (mask & 1<<4) __HAL_RCC_SPI5_CLK_DISABLE();
|
||||||
|
#endif
|
||||||
|
#ifdef SPI6
|
||||||
|
if (mask & 1<<5) __HAL_RCC_SPI6_CLK_DISABLE();
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
@ -250,10 +250,10 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
|
|||||||
}
|
}
|
||||||
|
|
||||||
size_t rx_bytes = 0;
|
size_t rx_bytes = 0;
|
||||||
uint64_t start_ticks = ticks_ms;
|
uint64_t start_ticks = supervisor_ticks_ms64();
|
||||||
|
|
||||||
// Wait for all bytes received or timeout, same as nrf
|
// Wait for all bytes received or timeout, same as nrf
|
||||||
while ( (ringbuf_count(&self->rbuf) < len) && (ticks_ms - start_ticks < self->timeout_ms) ) {
|
while ( (ringbuf_count(&self->rbuf) < len) && (supervisor_ticks_ms64() - start_ticks < self->timeout_ms) ) {
|
||||||
RUN_BACKGROUND_TASKS;
|
RUN_BACKGROUND_TASKS;
|
||||||
//restart if it failed in the callback
|
//restart if it failed in the callback
|
||||||
if (errflag != HAL_OK) {
|
if (errflag != HAL_OK) {
|
||||||
@ -290,13 +290,15 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self, const uint8_t *data,
|
|||||||
bool write_err = false; //write error shouldn't disable interrupts
|
bool write_err = false; //write error shouldn't disable interrupts
|
||||||
|
|
||||||
HAL_NVIC_DisableIRQ(self->irq);
|
HAL_NVIC_DisableIRQ(self->irq);
|
||||||
if (HAL_UART_Transmit(&self->handle, (uint8_t*)data, len, self->timeout_ms) != HAL_OK) {
|
if (HAL_UART_Transmit(&self->handle, (uint8_t*)data, len, HAL_MAX_DELAY) != HAL_OK) {
|
||||||
write_err = true;
|
write_err = true;
|
||||||
}
|
}
|
||||||
HAL_UART_Receive_IT(&self->handle, &self->rx_char, 1);
|
HAL_UART_Receive_IT(&self->handle, &self->rx_char, 1);
|
||||||
HAL_NVIC_EnableIRQ(self->irq);
|
HAL_NVIC_EnableIRQ(self->irq);
|
||||||
|
|
||||||
if (write_err) mp_raise_ValueError(translate("UART write error"));
|
if (write_err) {
|
||||||
|
mp_raise_ValueError(translate("UART write error"));
|
||||||
|
}
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -360,6 +362,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
|||||||
self->baudrate = baudrate;
|
self->baudrate = baudrate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
mp_float_t common_hal_busio_uart_get_timeout(busio_uart_obj_t *self) {
|
||||||
|
return (mp_float_t) (self->timeout_ms / 1000.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeout) {
|
||||||
|
self->timeout_ms = timeout * 1000;
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
uint32_t common_hal_busio_uart_rx_characters_available(busio_uart_obj_t *self) {
|
||||||
return ringbuf_count(&self->rbuf);
|
return ringbuf_count(&self->rbuf);
|
||||||
}
|
}
|
||||||
|
@ -47,7 +47,7 @@ digitalinout_result_t common_hal_digitalio_digitalinout_construct(
|
|||||||
GPIO_InitStruct.Pin = pin_mask(self->pin->number);
|
GPIO_InitStruct.Pin = pin_mask(self->pin->number);
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
HAL_GPIO_Init(pin_port(self->pin->port), &GPIO_InitStruct);
|
HAL_GPIO_Init(pin_port(self->pin->port), &GPIO_InitStruct);
|
||||||
|
|
||||||
return DIGITALINOUT_OK;
|
return DIGITALINOUT_OK;
|
||||||
@ -73,7 +73,7 @@ void common_hal_digitalio_digitalinout_switch_to_input(
|
|||||||
GPIO_InitStruct.Pin = pin_mask(self->pin->number);
|
GPIO_InitStruct.Pin = pin_mask(self->pin->number);
|
||||||
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
GPIO_InitStruct.Mode = GPIO_MODE_INPUT;
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
HAL_GPIO_Init(pin_port(self->pin->port), &GPIO_InitStruct);
|
HAL_GPIO_Init(pin_port(self->pin->port), &GPIO_InitStruct);
|
||||||
|
|
||||||
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
common_hal_digitalio_digitalinout_set_pull(self, pull);
|
||||||
@ -114,7 +114,7 @@ void common_hal_digitalio_digitalinout_set_drive_mode(
|
|||||||
GPIO_InitStruct.Mode = (drive_mode == DRIVE_MODE_OPEN_DRAIN ?
|
GPIO_InitStruct.Mode = (drive_mode == DRIVE_MODE_OPEN_DRAIN ?
|
||||||
GPIO_MODE_OUTPUT_OD : GPIO_MODE_OUTPUT_PP);
|
GPIO_MODE_OUTPUT_OD : GPIO_MODE_OUTPUT_PP);
|
||||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
|
||||||
HAL_GPIO_Init(pin_port(self->pin->port), &GPIO_InitStruct);
|
HAL_GPIO_Init(pin_port(self->pin->port), &GPIO_InitStruct);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
68
ports/stm32f4/common-hal/displayio/ParallelBus.c
Normal file
68
ports/stm32f4/common-hal/displayio/ParallelBus.c
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019 Lucian Copeland for Adafruit Industries
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "shared-bindings/displayio/ParallelBus.h"
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
|
#include "py/runtime.h"
|
||||||
|
#include "shared-bindings/digitalio/DigitalInOut.h"
|
||||||
|
#include "shared-bindings/microcontroller/__init__.h"
|
||||||
|
|
||||||
|
#include "tick.h"
|
||||||
|
|
||||||
|
void common_hal_displayio_parallelbus_construct(displayio_parallelbus_obj_t* self,
|
||||||
|
const mcu_pin_obj_t* data0, const mcu_pin_obj_t* command, const mcu_pin_obj_t* chip_select,
|
||||||
|
const mcu_pin_obj_t* write, const mcu_pin_obj_t* read, const mcu_pin_obj_t* reset) {
|
||||||
|
|
||||||
|
mp_raise_NotImplementedError(translate("ParallelBus not yet supported"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_displayio_parallelbus_deinit(displayio_parallelbus_obj_t* self) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
bool common_hal_displayio_parallelbus_reset(mp_obj_t obj) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool common_hal_displayio_parallelbus_bus_free(mp_obj_t obj) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t obj) {
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_displayio_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type, display_chip_select_behavior_t chip_select, uint8_t *data, uint32_t data_length) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void common_hal_displayio_parallelbus_end_transaction(mp_obj_t obj) {
|
||||||
|
|
||||||
|
}
|
36
ports/stm32f4/common-hal/displayio/ParallelBus.h
Normal file
36
ports/stm32f4/common-hal/displayio/ParallelBus.h
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* This file is part of the MicroPython project, http://micropython.org/
|
||||||
|
*
|
||||||
|
* The MIT License (MIT)
|
||||||
|
*
|
||||||
|
* Copyright (c) 2019 Lucian Copeland for Adafruit Industries
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef MICROPY_INCLUDED_STM32F4_COMMON_HAL_DISPLAYIO_PARALLELBUS_H
|
||||||
|
#define MICROPY_INCLUDED_STM32F4_COMMON_HAL_DISPLAYIO_PARALLELBUS_H
|
||||||
|
|
||||||
|
#include "common-hal/digitalio/DigitalInOut.h"
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
mp_obj_base_t base;
|
||||||
|
} displayio_parallelbus_obj_t;
|
||||||
|
|
||||||
|
#endif // MICROPY_INCLUDED_STM32F4_COMMON_HAL_DISPLAYIO_PARALLELBUS_H
|
@ -48,9 +48,9 @@ STATIC uint32_t get_us(void) {
|
|||||||
uint32_t ticks_per_us = HAL_RCC_GetSysClockFreq()/1000000;
|
uint32_t ticks_per_us = HAL_RCC_GetSysClockFreq()/1000000;
|
||||||
uint32_t micros, sys_cycles;
|
uint32_t micros, sys_cycles;
|
||||||
do {
|
do {
|
||||||
micros = ticks_ms;
|
micros = supervisor_ticks_ms32();
|
||||||
sys_cycles = SysTick->VAL; //counts backwards
|
sys_cycles = SysTick->VAL; //counts backwards
|
||||||
} while (micros != ticks_ms); //try again if ticks_ms rolled over
|
} while (micros != supervisor_ticks_ms32()); //try again if ticks_ms rolled over
|
||||||
return (micros * 1000) + (ticks_per_us * 1000 - sys_cycles) / ticks_per_us;
|
return (micros * 1000) + (ticks_per_us * 1000 - sys_cycles) / ticks_per_us;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,6 +28,8 @@
|
|||||||
#include "shared-bindings/neopixel_write/__init__.h"
|
#include "shared-bindings/neopixel_write/__init__.h"
|
||||||
|
|
||||||
#include "tick.h"
|
#include "tick.h"
|
||||||
|
#include "py/mperrno.h"
|
||||||
|
#include "py/runtime.h"
|
||||||
#include "common-hal/microcontroller/Pin.h"
|
#include "common-hal/microcontroller/Pin.h"
|
||||||
#include "stm32f4xx_hal.h"
|
#include "stm32f4xx_hal.h"
|
||||||
#include "stm32f4xx_ll_gpio.h"
|
#include "stm32f4xx_ll_gpio.h"
|
||||||
@ -40,6 +42,9 @@ uint32_t next_start_tick_us = 1000;
|
|||||||
#define MAGIC_800_T0H 2800000 // ~0.36 us -> 0.44 field
|
#define MAGIC_800_T0H 2800000 // ~0.36 us -> 0.44 field
|
||||||
#define MAGIC_800_T1H 1350000 // ~0.74 us -> 0.84 field
|
#define MAGIC_800_T1H 1350000 // ~0.74 us -> 0.84 field
|
||||||
|
|
||||||
|
#pragma GCC push_options
|
||||||
|
#pragma GCC optimize ("Os")
|
||||||
|
|
||||||
void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout, uint8_t *pixels,
|
void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout, uint8_t *pixels,
|
||||||
uint32_t numBytes) {
|
uint32_t numBytes) {
|
||||||
uint8_t *p = pixels, *end = p + numBytes, pix = *p++, mask = 0x80;
|
uint8_t *p = pixels, *end = p + numBytes, pix = *p++, mask = 0x80;
|
||||||
@ -48,7 +53,7 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout
|
|||||||
|
|
||||||
//assumes 800_000Hz frequency
|
//assumes 800_000Hz frequency
|
||||||
//Theoretical values here are 800_000 -> 1.25us, 2500000->0.4us, 1250000->0.8us
|
//Theoretical values here are 800_000 -> 1.25us, 2500000->0.4us, 1250000->0.8us
|
||||||
//But they don't work, possibly due to bad optimization? Use tested magic values instead
|
//TODO: try to get dynamic weighting working again
|
||||||
uint32_t sys_freq = HAL_RCC_GetSysClockFreq();
|
uint32_t sys_freq = HAL_RCC_GetSysClockFreq();
|
||||||
uint32_t interval = sys_freq/MAGIC_800_INT;
|
uint32_t interval = sys_freq/MAGIC_800_INT;
|
||||||
uint32_t t0 = (sys_freq/MAGIC_800_T0H);
|
uint32_t t0 = (sys_freq/MAGIC_800_T0H);
|
||||||
@ -63,23 +68,22 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout
|
|||||||
|
|
||||||
__disable_irq();
|
__disable_irq();
|
||||||
// Enable DWT in debug core. Useable when interrupts disabled, as opposed to Systick->VAL
|
// Enable DWT in debug core. Useable when interrupts disabled, as opposed to Systick->VAL
|
||||||
//ITM->LAR = 0xC5ACCE55; //this should be required but isn't
|
|
||||||
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
|
CoreDebug->DEMCR |= CoreDebug_DEMCR_TRCENA_Msk;
|
||||||
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
|
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
|
||||||
DWT->CYCCNT = 0;
|
DWT->CYCCNT = 0;
|
||||||
|
|
||||||
for(;;) {
|
for(;;) {
|
||||||
|
cyc = (pix & mask) ? t1 : t0;
|
||||||
start = DWT->CYCCNT;
|
start = DWT->CYCCNT;
|
||||||
LL_GPIO_SetOutputPin(p_port, p_mask);
|
LL_GPIO_SetOutputPin(p_port, p_mask);
|
||||||
cyc = (pix & mask) ? t1 : t0;
|
while((DWT->CYCCNT - start) < cyc);
|
||||||
while(DWT->CYCCNT - start < cyc);
|
|
||||||
LL_GPIO_ResetOutputPin(p_port, p_mask);
|
LL_GPIO_ResetOutputPin(p_port, p_mask);
|
||||||
|
while((DWT->CYCCNT - start) < interval);
|
||||||
if(!(mask >>= 1)) {
|
if(!(mask >>= 1)) {
|
||||||
if(p >= end) break;
|
if(p >= end) break;
|
||||||
pix = *p++;
|
pix = *p++;
|
||||||
mask = 0x80;
|
mask = 0x80;
|
||||||
}
|
}
|
||||||
while(DWT->CYCCNT - start < interval); //wait for interval to finish
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Enable interrupts again
|
// Enable interrupts again
|
||||||
@ -94,3 +98,5 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout
|
|||||||
next_start_tick_us -= 100;
|
next_start_tick_us -= 100;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#pragma GCC pop_options
|
@ -29,7 +29,7 @@
|
|||||||
#include "tick.h"
|
#include "tick.h"
|
||||||
|
|
||||||
uint64_t common_hal_time_monotonic(void) {
|
uint64_t common_hal_time_monotonic(void) {
|
||||||
return ticks_ms;
|
return supervisor_ticks_ms64();
|
||||||
}
|
}
|
||||||
|
|
||||||
void common_hal_time_delay_ms(uint32_t delay) {
|
void common_hal_time_delay_ms(uint32_t delay) {
|
||||||
|
@ -15,18 +15,59 @@ LONGINT_IMPL = MPZ
|
|||||||
#Reduced feature set for early port
|
#Reduced feature set for early port
|
||||||
CIRCUITPY_MINIMAL_BUILD = 1
|
CIRCUITPY_MINIMAL_BUILD = 1
|
||||||
|
|
||||||
|
# The ifndef's allow overriding in mpconfigboard.mk.
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_BOARD
|
||||||
CIRCUITPY_BOARD = 1
|
CIRCUITPY_BOARD = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_DIGITALIO
|
||||||
CIRCUITPY_DIGITALIO = 1
|
CIRCUITPY_DIGITALIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_ANALOGIO
|
||||||
CIRCUITPY_ANALOGIO = 1
|
CIRCUITPY_ANALOGIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_MICROCONTROLLER
|
||||||
CIRCUITPY_MICROCONTROLLER = 1
|
CIRCUITPY_MICROCONTROLLER = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_BUSIO
|
||||||
CIRCUITPY_BUSIO = 1
|
CIRCUITPY_BUSIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_PULSEIO
|
||||||
CIRCUITPY_PULSEIO = 1
|
CIRCUITPY_PULSEIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_OS
|
||||||
CIRCUITPY_OS = 1
|
CIRCUITPY_OS = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_STORAGE
|
||||||
CIRCUITPY_STORAGE = 1
|
CIRCUITPY_STORAGE = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_RANDOM
|
||||||
CIRCUITPY_RANDOM = 1
|
CIRCUITPY_RANDOM = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CRICUITPY_USB_HID
|
||||||
CIRCUITPY_USB_HID = 1
|
CIRCUITPY_USB_HID = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_USB_MIDI
|
||||||
CIRCUITPY_USB_MIDI = 1
|
CIRCUITPY_USB_MIDI = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef CIRCUITPY_NEOPIXEL_WRITE
|
||||||
CIRCUITPY_NEOPIXEL_WRITE = 1
|
CIRCUITPY_NEOPIXEL_WRITE = 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
ifndef
|
||||||
|
CIRCUITPY_DISPLAYIO = 1
|
||||||
|
endif
|
||||||
|
|
||||||
#ifeq ($(MCU_SUB_VARIANT), stm32f412zx)
|
#ifeq ($(MCU_SUB_VARIANT), stm32f412zx)
|
||||||
#endif
|
#endif
|
||||||
|
@ -31,11 +31,13 @@
|
|||||||
#include "py/mpstate.h"
|
#include "py/mpstate.h"
|
||||||
#include "py/gc.h"
|
#include "py/gc.h"
|
||||||
|
|
||||||
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
/*------------------------------------------------------------------*/
|
/*------------------------------------------------------------------*/
|
||||||
/* delay
|
/* delay
|
||||||
*------------------------------------------------------------------*/
|
*------------------------------------------------------------------*/
|
||||||
void mp_hal_delay_ms(mp_uint_t delay) {
|
void mp_hal_delay_ms(mp_uint_t delay) {
|
||||||
uint64_t start_tick = ticks_ms;
|
uint64_t start_tick = supervisor_ticks_ms64();
|
||||||
uint64_t duration = 0;
|
uint64_t duration = 0;
|
||||||
while (duration < delay) {
|
while (duration < delay) {
|
||||||
#ifdef MICROPY_VM_HOOK_LOOP
|
#ifdef MICROPY_VM_HOOK_LOOP
|
||||||
@ -46,7 +48,7 @@ void mp_hal_delay_ms(mp_uint_t delay) {
|
|||||||
MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
|
MP_STATE_VM(mp_pending_exception) == MP_OBJ_FROM_PTR(&MP_STATE_VM(mp_reload_exception))) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
duration = (ticks_ms - start_tick);
|
duration = (supervisor_ticks_ms64() - start_tick);
|
||||||
// TODO(tannewt): Go to sleep for a little while while we wait.
|
// TODO(tannewt): Go to sleep for a little while while we wait.
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -32,10 +32,10 @@
|
|||||||
|
|
||||||
#include "lib/utils/interrupt_char.h"
|
#include "lib/utils/interrupt_char.h"
|
||||||
#include "py/mpconfig.h"
|
#include "py/mpconfig.h"
|
||||||
|
#include "supervisor/shared/tick.h"
|
||||||
|
|
||||||
extern volatile uint64_t ticks_ms;
|
|
||||||
|
|
||||||
#define mp_hal_ticks_ms() ((mp_uint_t) ticks_ms)
|
#define mp_hal_ticks_ms() ((mp_uint_t) supervisor_ticks_ms32())
|
||||||
//#define mp_hal_delay_us(us) NRFX_DELAY_US((uint32_t) (us))
|
//#define mp_hal_delay_us(us) NRFX_DELAY_US((uint32_t) (us))
|
||||||
|
|
||||||
bool mp_hal_stdin_any(void);
|
bool mp_hal_stdin_any(void);
|
||||||
|
@ -26,37 +26,23 @@
|
|||||||
|
|
||||||
#include "tick.h"
|
#include "tick.h"
|
||||||
|
|
||||||
#include "supervisor/shared/autoreload.h"
|
|
||||||
#include "supervisor/filesystem.h"
|
#include "supervisor/filesystem.h"
|
||||||
#include "shared-module/gamepad/__init__.h"
|
#include "supervisor/shared/tick.h"
|
||||||
#include "shared-bindings/microcontroller/Processor.h"
|
#include "shared-bindings/microcontroller/Processor.h"
|
||||||
|
|
||||||
#include "stm32f4xx.h"
|
#include "stm32f4xx.h"
|
||||||
|
|
||||||
// Global millisecond tick count
|
|
||||||
volatile uint64_t ticks_ms = 0;
|
|
||||||
|
|
||||||
void SysTick_Handler(void) {
|
void SysTick_Handler(void) {
|
||||||
// SysTick interrupt handler called when the SysTick timer reaches zero
|
// SysTick interrupt handler called when the SysTick timer reaches zero
|
||||||
// (every millisecond).
|
// (every millisecond).
|
||||||
ticks_ms += 1;
|
|
||||||
|
|
||||||
#if CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS > 0
|
// Do things common to all ports when the tick occurs
|
||||||
filesystem_tick();
|
supervisor_tick();
|
||||||
#endif
|
|
||||||
#ifdef CIRCUITPY_AUTORELOAD_DELAY_MS
|
|
||||||
autoreload_tick();
|
|
||||||
#endif
|
|
||||||
#ifdef CIRCUITPY_GAMEPAD_TICKS
|
|
||||||
if (!(ticks_ms & CIRCUITPY_GAMEPAD_TICKS)) {
|
|
||||||
gamepad_tick();
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t HAL_GetTick(void) //override ST HAL
|
uint32_t HAL_GetTick(void) //override ST HAL
|
||||||
{
|
{
|
||||||
return (uint32_t)ticks_ms;
|
return (uint32_t)supervisor_ticks_ms32();
|
||||||
}
|
}
|
||||||
|
|
||||||
void tick_init() {
|
void tick_init() {
|
||||||
@ -72,11 +58,11 @@ void tick_init() {
|
|||||||
void tick_delay(uint32_t us) {
|
void tick_delay(uint32_t us) {
|
||||||
uint32_t ticks_per_us = SystemCoreClock / 1000 / 1000;
|
uint32_t ticks_per_us = SystemCoreClock / 1000 / 1000;
|
||||||
uint32_t us_between_ticks = SysTick->VAL / ticks_per_us;
|
uint32_t us_between_ticks = SysTick->VAL / ticks_per_us;
|
||||||
uint64_t start_ms = ticks_ms;
|
uint64_t start_ms = supervisor_ticks_ms64();
|
||||||
while (us > 1000) {
|
while (us > 1000) {
|
||||||
while (ticks_ms == start_ms) {}
|
while (supervisor_ticks_ms64() == start_ms) {}
|
||||||
us -= us_between_ticks;
|
us -= us_between_ticks;
|
||||||
start_ms = ticks_ms;
|
start_ms = supervisor_ticks_ms64();
|
||||||
us_between_ticks = 1000;
|
us_between_ticks = 1000;
|
||||||
}
|
}
|
||||||
while (SysTick->VAL > ((us_between_ticks - us) * ticks_per_us)) {}
|
while (SysTick->VAL > ((us_between_ticks - us) * ticks_per_us)) {}
|
||||||
@ -85,11 +71,11 @@ void tick_delay(uint32_t us) {
|
|||||||
// us counts down!
|
// us counts down!
|
||||||
void current_tick(uint64_t* ms, uint32_t* us_until_ms) {
|
void current_tick(uint64_t* ms, uint32_t* us_until_ms) {
|
||||||
uint32_t ticks_per_us = SystemCoreClock / 1000 / 1000;
|
uint32_t ticks_per_us = SystemCoreClock / 1000 / 1000;
|
||||||
*ms = ticks_ms;
|
*ms = supervisor_ticks_ms32();
|
||||||
*us_until_ms = SysTick->VAL / ticks_per_us;
|
*us_until_ms = SysTick->VAL / ticks_per_us;
|
||||||
}
|
}
|
||||||
|
|
||||||
void wait_until(uint64_t ms, uint32_t us_until_ms) {
|
void wait_until(uint64_t ms, uint32_t us_until_ms) {
|
||||||
uint32_t ticks_per_us = SystemCoreClock / 1000 / 1000;
|
uint32_t ticks_per_us = SystemCoreClock / 1000 / 1000;
|
||||||
while(ticks_ms <= ms && SysTick->VAL / ticks_per_us >= us_until_ms) {}
|
while(supervisor_ticks_ms64() <= ms && SysTick->VAL / ticks_per_us >= us_until_ms) {}
|
||||||
}
|
}
|
||||||
|
@ -30,8 +30,6 @@
|
|||||||
|
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
extern volatile uint64_t ticks_ms;
|
|
||||||
|
|
||||||
extern struct timer_descriptor ms_timer;
|
extern struct timer_descriptor ms_timer;
|
||||||
|
|
||||||
void tick_init(void);
|
void tick_init(void);
|
||||||
|
@ -28,11 +28,12 @@
|
|||||||
// sure that the same feature set and settings are used, such as in atmel-samd
|
// sure that the same feature set and settings are used, such as in atmel-samd
|
||||||
// and nrf.
|
// and nrf.
|
||||||
|
|
||||||
#include <stdint.h>
|
|
||||||
|
|
||||||
#ifndef __INCLUDED_MPCONFIG_CIRCUITPY_H
|
#ifndef __INCLUDED_MPCONFIG_CIRCUITPY_H
|
||||||
#define __INCLUDED_MPCONFIG_CIRCUITPY_H
|
#define __INCLUDED_MPCONFIG_CIRCUITPY_H
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdatomic.h>
|
||||||
|
|
||||||
// This is CircuitPython.
|
// This is CircuitPython.
|
||||||
#define CIRCUITPY 1
|
#define CIRCUITPY 1
|
||||||
|
|
||||||
@ -652,17 +653,19 @@ extern const struct _mp_obj_module_t ustack_module;
|
|||||||
FLASH_ROOT_POINTERS \
|
FLASH_ROOT_POINTERS \
|
||||||
NETWORK_ROOT_POINTERS \
|
NETWORK_ROOT_POINTERS \
|
||||||
|
|
||||||
void run_background_tasks(void);
|
void supervisor_run_background_tasks_if_tick(void);
|
||||||
#define RUN_BACKGROUND_TASKS (run_background_tasks())
|
#define RUN_BACKGROUND_TASKS (supervisor_run_background_tasks_if_tick())
|
||||||
|
|
||||||
// TODO: Used in wiznet5k driver, but may not be needed in the long run.
|
// TODO: Used in wiznet5k driver, but may not be needed in the long run.
|
||||||
#define MICROPY_THREAD_YIELD()
|
#define MICROPY_THREAD_YIELD()
|
||||||
|
|
||||||
#define MICROPY_VM_HOOK_LOOP run_background_tasks();
|
#define MICROPY_VM_HOOK_LOOP RUN_BACKGROUND_TASKS;
|
||||||
#define MICROPY_VM_HOOK_RETURN run_background_tasks();
|
#define MICROPY_VM_HOOK_RETURN RUN_BACKGROUND_TASKS;
|
||||||
|
|
||||||
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500
|
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500
|
||||||
#define CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS 1000
|
#define CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS 1000
|
||||||
#define CIRCUITPY_BOOT_OUTPUT_FILE "/boot_out.txt"
|
#define CIRCUITPY_BOOT_OUTPUT_FILE "/boot_out.txt"
|
||||||
|
|
||||||
|
#define CIRCUITPY_VERBOSE_BLE 0
|
||||||
|
|
||||||
#endif // __INCLUDED_MPCONFIG_CIRCUITPY_H
|
#endif // __INCLUDED_MPCONFIG_CIRCUITPY_H
|
||||||
|
@ -170,7 +170,7 @@ CIRCUITPY_NEOPIXEL_WRITE = $(CIRCUITPY_DEFAULT_BUILD)
|
|||||||
endif
|
endif
|
||||||
CFLAGS += -DCIRCUITPY_NEOPIXEL_WRITE=$(CIRCUITPY_NEOPIXEL_WRITE)
|
CFLAGS += -DCIRCUITPY_NEOPIXEL_WRITE=$(CIRCUITPY_NEOPIXEL_WRITE)
|
||||||
|
|
||||||
# Only certain boards support NETWORK (Ethernet)
|
# Enabled on SAMD51. Won't fit on SAMD21 builds. Not tested on nRF or STM32F4 builds.
|
||||||
ifndef CIRCUITPY_NETWORK
|
ifndef CIRCUITPY_NETWORK
|
||||||
CIRCUITPY_NETWORK = 0
|
CIRCUITPY_NETWORK = 0
|
||||||
endif
|
endif
|
||||||
|
13
py/compile.c
13
py/compile.c
@ -775,13 +775,22 @@ STATIC bool compile_built_in_decorator(compiler_t *comp, int name_len, mp_parse_
|
|||||||
qstr attr = MP_PARSE_NODE_LEAF_ARG(name_nodes[1]);
|
qstr attr = MP_PARSE_NODE_LEAF_ARG(name_nodes[1]);
|
||||||
if (attr == MP_QSTR_bytecode) {
|
if (attr == MP_QSTR_bytecode) {
|
||||||
*emit_options = MP_EMIT_OPT_BYTECODE;
|
*emit_options = MP_EMIT_OPT_BYTECODE;
|
||||||
#if MICROPY_EMIT_NATIVE
|
// @micropython.native decorator.
|
||||||
} else if (attr == MP_QSTR_native) {
|
} else if (attr == MP_QSTR_native) {
|
||||||
|
// Different from MicroPython: native doesn't raise SyntaxError if native support isn't
|
||||||
|
// compiled, it just passes through the function unmodified.
|
||||||
|
#if MICROPY_EMIT_NATIVE
|
||||||
*emit_options = MP_EMIT_OPT_NATIVE_PYTHON;
|
*emit_options = MP_EMIT_OPT_NATIVE_PYTHON;
|
||||||
|
#else
|
||||||
|
return true;
|
||||||
|
#endif
|
||||||
|
#if MICROPY_EMIT_NATIVE
|
||||||
|
// @micropython.viper decorator.
|
||||||
} else if (attr == MP_QSTR_viper) {
|
} else if (attr == MP_QSTR_viper) {
|
||||||
*emit_options = MP_EMIT_OPT_VIPER;
|
*emit_options = MP_EMIT_OPT_VIPER;
|
||||||
#endif
|
#endif
|
||||||
#if MICROPY_EMIT_INLINE_ASM
|
#if MICROPY_EMIT_INLINE_ASM
|
||||||
|
// @micropython.asm_thumb decorator.
|
||||||
} else if (attr == ASM_DECORATOR_QSTR) {
|
} else if (attr == ASM_DECORATOR_QSTR) {
|
||||||
*emit_options = MP_EMIT_OPT_ASM;
|
*emit_options = MP_EMIT_OPT_ASM;
|
||||||
#endif
|
#endif
|
||||||
|
10
py/gc.c
10
py/gc.c
@ -53,9 +53,6 @@
|
|||||||
// detect untraced object still in use
|
// detect untraced object still in use
|
||||||
#define CLEAR_ON_SWEEP (0)
|
#define CLEAR_ON_SWEEP (0)
|
||||||
|
|
||||||
#define WORDS_PER_BLOCK ((MICROPY_BYTES_PER_GC_BLOCK) / BYTES_PER_WORD)
|
|
||||||
#define BYTES_PER_BLOCK (MICROPY_BYTES_PER_GC_BLOCK)
|
|
||||||
|
|
||||||
// ATB = allocation table byte
|
// ATB = allocation table byte
|
||||||
// 0b00 = FREE -- free block
|
// 0b00 = FREE -- free block
|
||||||
// 0b01 = HEAD -- head of a chain of blocks
|
// 0b01 = HEAD -- head of a chain of blocks
|
||||||
@ -209,13 +206,6 @@ bool gc_is_locked(void) {
|
|||||||
return MP_STATE_MEM(gc_lock_depth) != 0;
|
return MP_STATE_MEM(gc_lock_depth) != 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ptr should be of type void*
|
|
||||||
#define VERIFY_PTR(ptr) ( \
|
|
||||||
((uintptr_t)(ptr) & (BYTES_PER_BLOCK - 1)) == 0 /* must be aligned on a block */ \
|
|
||||||
&& ptr >= (void*)MP_STATE_MEM(gc_pool_start) /* must be above start of pool */ \
|
|
||||||
&& ptr < (void*)MP_STATE_MEM(gc_pool_end) /* must be below end of pool */ \
|
|
||||||
)
|
|
||||||
|
|
||||||
#ifndef TRACE_MARK
|
#ifndef TRACE_MARK
|
||||||
#if DEBUG_PRINT
|
#if DEBUG_PRINT
|
||||||
#define TRACE_MARK(block, ptr) DEBUG_printf("gc_mark(%p)\n", ptr)
|
#define TRACE_MARK(block, ptr) DEBUG_printf("gc_mark(%p)\n", ptr)
|
||||||
|
11
py/gc.h
11
py/gc.h
@ -29,8 +29,19 @@
|
|||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
|
||||||
#include "py/mpconfig.h"
|
#include "py/mpconfig.h"
|
||||||
|
#include "py/mpstate.h"
|
||||||
#include "py/misc.h"
|
#include "py/misc.h"
|
||||||
|
|
||||||
|
#define WORDS_PER_BLOCK ((MICROPY_BYTES_PER_GC_BLOCK) / BYTES_PER_WORD)
|
||||||
|
#define BYTES_PER_BLOCK (MICROPY_BYTES_PER_GC_BLOCK)
|
||||||
|
|
||||||
|
// ptr should be of type void*
|
||||||
|
#define VERIFY_PTR(ptr) ( \
|
||||||
|
((uintptr_t)(ptr) & (BYTES_PER_BLOCK - 1)) == 0 /* must be aligned on a block */ \
|
||||||
|
&& ptr >= (void*)MP_STATE_MEM(gc_pool_start) /* must be above start of pool */ \
|
||||||
|
&& ptr < (void*)MP_STATE_MEM(gc_pool_end) /* must be below end of pool */ \
|
||||||
|
)
|
||||||
|
|
||||||
void gc_init(void *start, void *end);
|
void gc_init(void *start, void *end);
|
||||||
void gc_deinit(void);
|
void gc_deinit(void);
|
||||||
|
|
||||||
|
@ -126,6 +126,11 @@ mp_obj_t make_obj_long_lived(mp_obj_t obj, uint8_t max_depth){
|
|||||||
if (obj == NULL) {
|
if (obj == NULL) {
|
||||||
return obj;
|
return obj;
|
||||||
}
|
}
|
||||||
|
// If not in the GC pool, do nothing. This can happen (at least) when
|
||||||
|
// there are frozen mp_type_bytes objects in ROM.
|
||||||
|
if (!VERIFY_PTR((void *)obj)) {
|
||||||
|
return obj;
|
||||||
|
}
|
||||||
if (MP_OBJ_IS_TYPE(obj, &mp_type_fun_bc)) {
|
if (MP_OBJ_IS_TYPE(obj, &mp_type_fun_bc)) {
|
||||||
mp_obj_fun_bc_t *fun_bc = MP_OBJ_TO_PTR(obj);
|
mp_obj_fun_bc_t *fun_bc = MP_OBJ_TO_PTR(obj);
|
||||||
return MP_OBJ_FROM_PTR(make_fun_bc_long_lived(fun_bc, max_depth));
|
return MP_OBJ_FROM_PTR(make_fun_bc_long_lived(fun_bc, max_depth));
|
||||||
|
@ -103,14 +103,10 @@ def compute_huffman_coding(translations, qstrs, compression_filename):
|
|||||||
# go through each qstr and print it out
|
# go through each qstr and print it out
|
||||||
for _, _, qstr in qstrs.values():
|
for _, _, qstr in qstrs.values():
|
||||||
all_strings.append(qstr)
|
all_strings.append(qstr)
|
||||||
all_strings_concat = "".join(all_strings).encode("utf-8")
|
all_strings_concat = "".join(all_strings)
|
||||||
counts = collections.Counter(all_strings_concat)
|
counts = collections.Counter(all_strings_concat)
|
||||||
# add other values
|
|
||||||
for i in range(256):
|
|
||||||
if i not in counts:
|
|
||||||
counts[i] = 0
|
|
||||||
cb = huffman.codebook(counts.items())
|
cb = huffman.codebook(counts.items())
|
||||||
values = bytearray()
|
values = []
|
||||||
length_count = {}
|
length_count = {}
|
||||||
renumbered = 0
|
renumbered = 0
|
||||||
last_l = None
|
last_l = None
|
||||||
@ -124,26 +120,27 @@ def compute_huffman_coding(translations, qstrs, compression_filename):
|
|||||||
if last_l:
|
if last_l:
|
||||||
renumbered <<= (l - last_l)
|
renumbered <<= (l - last_l)
|
||||||
canonical[ch] = '{0:0{width}b}'.format(renumbered, width=l)
|
canonical[ch] = '{0:0{width}b}'.format(renumbered, width=l)
|
||||||
if chr(ch) in C_ESCAPES:
|
s = C_ESCAPES.get(ch, ch)
|
||||||
s = C_ESCAPES[chr(ch)]
|
print("//", ord(ch), s, counts[ch], canonical[ch], renumbered)
|
||||||
else:
|
|
||||||
s = chr(ch)
|
|
||||||
print("//", ch, s, counts[ch], canonical[ch], renumbered)
|
|
||||||
renumbered += 1
|
renumbered += 1
|
||||||
last_l = l
|
last_l = l
|
||||||
lengths = bytearray()
|
lengths = bytearray()
|
||||||
for i in range(1, max(length_count) + 1):
|
print("// length count", length_count)
|
||||||
|
for i in range(1, max(length_count) + 2):
|
||||||
lengths.append(length_count.get(i, 0))
|
lengths.append(length_count.get(i, 0))
|
||||||
|
print("// values", values, "lengths", len(lengths), lengths)
|
||||||
|
print("// estimated total memory size", len(lengths) + 2*len(values) + sum(len(cb[u]) for u in all_strings_concat))
|
||||||
print("//", values, lengths)
|
print("//", values, lengths)
|
||||||
|
values_type = "uint16_t" if max(ord(u) for u in values) > 255 else "uint8_t"
|
||||||
with open(compression_filename, "w") as f:
|
with open(compression_filename, "w") as f:
|
||||||
f.write("const uint8_t lengths[] = {{ {} }};\n".format(", ".join(map(str, lengths))))
|
f.write("const uint8_t lengths[] = {{ {} }};\n".format(", ".join(map(str, lengths))))
|
||||||
f.write("const uint8_t values[256] = {{ {} }};\n".format(", ".join(map(str, values))))
|
f.write("const {} values[] = {{ {} }};\n".format(values_type, ", ".join(str(ord(u)) for u in values)))
|
||||||
return values, lengths
|
return values, lengths
|
||||||
|
|
||||||
def decompress(encoding_table, length, encoded):
|
def decompress(encoding_table, length, encoded):
|
||||||
values, lengths = encoding_table
|
values, lengths = encoding_table
|
||||||
#print(l, encoded)
|
#print(l, encoded)
|
||||||
dec = bytearray(length)
|
dec = []
|
||||||
this_byte = 0
|
this_byte = 0
|
||||||
this_bit = 7
|
this_bit = 7
|
||||||
b = encoded[this_byte]
|
b = encoded[this_byte]
|
||||||
@ -173,14 +170,14 @@ def decompress(encoding_table, length, encoded):
|
|||||||
searched_length += lengths[bit_length]
|
searched_length += lengths[bit_length]
|
||||||
|
|
||||||
v = values[searched_length + bits - max_code]
|
v = values[searched_length + bits - max_code]
|
||||||
dec[i] = v
|
dec.append(v)
|
||||||
return dec
|
return ''.join(dec)
|
||||||
|
|
||||||
def compress(encoding_table, decompressed):
|
def compress(encoding_table, decompressed):
|
||||||
if not isinstance(decompressed, bytes):
|
if not isinstance(decompressed, str):
|
||||||
raise TypeError()
|
raise TypeError()
|
||||||
values, lengths = encoding_table
|
values, lengths = encoding_table
|
||||||
enc = bytearray(len(decompressed) * 2)
|
enc = bytearray(len(decompressed) * 3)
|
||||||
#print(decompressed)
|
#print(decompressed)
|
||||||
#print(lengths)
|
#print(lengths)
|
||||||
current_bit = 7
|
current_bit = 7
|
||||||
@ -228,7 +225,7 @@ def compress(encoding_table, decompressed):
|
|||||||
if current_bit != 7:
|
if current_bit != 7:
|
||||||
current_byte += 1
|
current_byte += 1
|
||||||
if current_byte > len(decompressed):
|
if current_byte > len(decompressed):
|
||||||
print("Note: compression increased length", repr(decompressed.decode('utf-8')), len(decompressed), current_byte, file=sys.stderr)
|
print("Note: compression increased length", repr(decompressed), len(decompressed), current_byte, file=sys.stderr)
|
||||||
return enc[:current_byte]
|
return enc[:current_byte]
|
||||||
|
|
||||||
def qstr_escape(qst):
|
def qstr_escape(qst):
|
||||||
@ -347,9 +344,9 @@ def print_qstr_data(encoding_table, qcfgs, qstrs, i18ns):
|
|||||||
total_text_compressed_size = 0
|
total_text_compressed_size = 0
|
||||||
for original, translation in i18ns:
|
for original, translation in i18ns:
|
||||||
translation_encoded = translation.encode("utf-8")
|
translation_encoded = translation.encode("utf-8")
|
||||||
compressed = compress(encoding_table, translation_encoded)
|
compressed = compress(encoding_table, translation)
|
||||||
total_text_compressed_size += len(compressed)
|
total_text_compressed_size += len(compressed)
|
||||||
decompressed = decompress(encoding_table, len(translation_encoded), compressed).decode("utf-8")
|
decompressed = decompress(encoding_table, len(translation_encoded), compressed)
|
||||||
for c in C_ESCAPES:
|
for c in C_ESCAPES:
|
||||||
decompressed = decompressed.replace(c, C_ESCAPES[c])
|
decompressed = decompressed.replace(c, C_ESCAPES[c])
|
||||||
print("TRANSLATION(\"{}\", {}, {{ {} }}) // {}".format(original, len(translation_encoded)+1, ", ".join(["0x{:02x}".format(x) for x in compressed]), decompressed))
|
print("TRANSLATION(\"{}\", {}, {{ {} }}) // {}".format(original, len(translation_encoded)+1, ", ".join(["0x{:02x}".format(x) for x in compressed]), decompressed))
|
||||||
|
@ -31,8 +31,6 @@
|
|||||||
|
|
||||||
#include "extmod/vfs.h"
|
#include "extmod/vfs.h"
|
||||||
|
|
||||||
// #include "py/mpstate.h"
|
|
||||||
// #include "py/nlr.h"
|
|
||||||
#include "py/parsenum.h"
|
#include "py/parsenum.h"
|
||||||
#include "py/compile.h"
|
#include "py/compile.h"
|
||||||
#include "py/objstr.h"
|
#include "py/objstr.h"
|
||||||
|
@ -144,6 +144,9 @@ const mp_obj_property_t bleio_adapter_name_obj = {
|
|||||||
//| Starts advertising until `stop_advertising` is called or if connectable, another device
|
//| Starts advertising until `stop_advertising` is called or if connectable, another device
|
||||||
//| connects to us.
|
//| connects to us.
|
||||||
//|
|
//|
|
||||||
|
//| .. warning: If data is longer than 31 bytes, then this will automatically advertise as an
|
||||||
|
//| extended advertisement that older BLE 4.x clients won't be able to scan for.
|
||||||
|
//|
|
||||||
//| :param buf data: advertising data packet bytes
|
//| :param buf data: advertising data packet bytes
|
||||||
//| :param buf scan_response: scan response data packet bytes. ``None`` if no scan response is needed.
|
//| :param buf scan_response: scan response data packet bytes. ``None`` if no scan response is needed.
|
||||||
//| :param bool connectable: If `True` then other devices are allowed to connect to this peripheral.
|
//| :param bool connectable: If `True` then other devices are allowed to connect to this peripheral.
|
||||||
@ -321,7 +324,7 @@ const mp_obj_property_t bleio_adapter_connections_obj = {
|
|||||||
(mp_obj_t)&mp_const_none_obj },
|
(mp_obj_t)&mp_const_none_obj },
|
||||||
};
|
};
|
||||||
|
|
||||||
//| .. method:: connect(address, *, timeout, pair=False)
|
//| .. method:: connect(address, *, timeout)
|
||||||
//|
|
//|
|
||||||
//| Attempts a connection to the device with the given address.
|
//| Attempts a connection to the device with the given address.
|
||||||
//|
|
//|
|
||||||
@ -331,24 +334,23 @@ const mp_obj_property_t bleio_adapter_connections_obj = {
|
|||||||
STATIC mp_obj_t bleio_adapter_connect(mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
STATIC mp_obj_t bleio_adapter_connect(mp_uint_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||||
bleio_adapter_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
bleio_adapter_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
|
||||||
|
|
||||||
enum { ARG_address, ARG_timeout, ARG_pair };
|
enum { ARG_address, ARG_timeout };
|
||||||
static const mp_arg_t allowed_args[] = {
|
static const mp_arg_t allowed_args[] = {
|
||||||
{ MP_QSTR_address, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_address, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_timeout, MP_ARG_KW_ONLY | MP_ARG_REQUIRED | MP_ARG_OBJ },
|
{ MP_QSTR_timeout, MP_ARG_KW_ONLY | MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||||
{ MP_QSTR_pair, MP_ARG_KW_ONLY | MP_ARG_BOOL, { .u_bool = false } },
|
|
||||||
};
|
};
|
||||||
|
|
||||||
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
|
||||||
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
|
||||||
|
|
||||||
if (!MP_OBJ_IS_TYPE(args[ARG_address].u_obj, &bleio_address_type)) {
|
if (!MP_OBJ_IS_TYPE(args[ARG_address].u_obj, &bleio_address_type)) {
|
||||||
mp_raise_ValueError(translate("Expected an Address"));
|
mp_raise_TypeError(translate("Expected an Address"));
|
||||||
}
|
}
|
||||||
|
|
||||||
bleio_address_obj_t *address = MP_OBJ_TO_PTR(args[ARG_address].u_obj);
|
bleio_address_obj_t *address = MP_OBJ_TO_PTR(args[ARG_address].u_obj);
|
||||||
mp_float_t timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
mp_float_t timeout = mp_obj_get_float(args[ARG_timeout].u_obj);
|
||||||
|
|
||||||
return common_hal_bleio_adapter_connect(self, address, timeout, args[ARG_pair].u_bool);
|
return common_hal_bleio_adapter_connect(self, address, timeout);
|
||||||
}
|
}
|
||||||
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(bleio_adapter_connect_obj, 2, bleio_adapter_connect);
|
STATIC MP_DEFINE_CONST_FUN_OBJ_KW(bleio_adapter_connect_obj, 2, bleio_adapter_connect);
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user