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"
|
||||
- "sam32"
|
||||
- "serpente"
|
||||
- "shirtty"
|
||||
- "snekboard"
|
||||
- "sparkfun_lumidrive"
|
||||
- "sparkfun_nrf52840_mini"
|
||||
@ -168,7 +169,8 @@ jobs:
|
||||
run: |
|
||||
sudo apt-get install -y gettext
|
||||
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
|
||||
run: |
|
||||
gcc --version
|
||||
|
3
.gitmodules
vendored
3
.gitmodules
vendored
@ -76,7 +76,8 @@
|
||||
[submodule "lib/tinyusb"]
|
||||
path = lib/tinyusb
|
||||
url = https://github.com/hathach/tinyusb.git
|
||||
branch = develop
|
||||
branch = master
|
||||
fetchRecurseSubmodules = false
|
||||
[submodule "tools/huffman"]
|
||||
path = tools/huffman
|
||||
url = https://github.com/tannewt/huffman.git
|
||||
|
@ -52,7 +52,7 @@
|
||||
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include "tick.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
//#include "Ethernet/socket.h"
|
||||
//#include "Internet/DNS/dns.h"
|
||||
@ -125,7 +125,7 @@ uint16_t DNS_MSGID; // DNS message ID
|
||||
|
||||
|
||||
uint32_t HAL_GetTick(void) {
|
||||
return ticks_ms;
|
||||
return supervisor_ticks_ms32();
|
||||
}
|
||||
|
||||
uint32_t hal_sys_tick;
|
||||
|
195
locale/ID.po
195
locale/ID.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -488,11 +488,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Tidak dapat menginisialisasi UART"
|
||||
@ -587,11 +582,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||
#, c-format
|
||||
msgid "Failed initiate attribute read, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
@ -601,15 +591,6 @@ msgstr ""
|
||||
msgid "Failed to acquire mutex, err 0x%04x"
|
||||
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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
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"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -632,96 +609,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to release mutex, err 0x%04x"
|
||||
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
|
||||
msgid "File exists"
|
||||
msgstr ""
|
||||
@ -784,6 +676,14 @@ msgstr ""
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
msgid "Invalid %q pin"
|
||||
@ -1138,7 +1038,7 @@ msgid "Running in safe mode! Not running saved code.\n"
|
||||
msgstr ""
|
||||
"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"
|
||||
msgstr "SDA atau SCL membutuhkan pull up"
|
||||
|
||||
@ -1323,11 +1223,32 @@ msgstr ""
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
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
|
||||
msgid "Unsupported baudrate"
|
||||
msgstr "Baudrate tidak didukung"
|
||||
@ -2533,12 +2454,8 @@ msgstr ""
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes exactly 1 argument"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
@ -2765,7 +2682,7 @@ msgstr ""
|
||||
#~ msgid "Failed to acquire mutex"
|
||||
#~ msgstr "Gagal untuk mendapatkan mutex, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||
#~ msgstr "Gagal untuk menambahkan karakteristik, status: 0x%08lX"
|
||||
|
||||
@ -2773,7 +2690,7 @@ msgstr ""
|
||||
#~ msgid "Failed to add service"
|
||||
#~ msgstr "Gagal untuk menambahkan layanan, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add service, err 0x%04x"
|
||||
#~ msgstr "Gagal untuk menambahkan layanan, status: 0x%08lX"
|
||||
|
||||
@ -2789,7 +2706,7 @@ msgstr ""
|
||||
#~ msgid "Failed to continue scanning"
|
||||
#~ msgstr "Gagal untuk melanjutkan scanning, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||
#~ msgstr "Gagal untuk melanjutkan scanning, status: 0x%08lX"
|
||||
|
||||
@ -2797,14 +2714,38 @@ msgstr ""
|
||||
#~ msgid "Failed to create mutex"
|
||||
#~ 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
|
||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to release mutex"
|
||||
#~ msgstr "Gagal untuk melepaskan mutex, status: 0x%08lX"
|
||||
@ -2813,7 +2754,7 @@ msgstr ""
|
||||
#~ msgid "Failed to start advertising"
|
||||
#~ msgstr "Gagal untuk memulai advertisement, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||
#~ msgstr "Gagal untuk memulai advertisement, status: 0x%08lX"
|
||||
|
||||
@ -2821,14 +2762,26 @@ msgstr ""
|
||||
#~ msgid "Failed to start scanning"
|
||||
#~ 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
|
||||
#~ msgid "Failed to stop advertising"
|
||||
#~ msgstr "Gagal untuk memberhentikan advertisement, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||
#~ 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."
|
||||
#~ msgstr "GPIO16 tidak mendukung pull up"
|
||||
|
||||
@ -2878,7 +2831,7 @@ msgstr ""
|
||||
#~ msgid "STA required"
|
||||
#~ msgstr "STA dibutuhkan"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||
#~ msgstr "Dukungan soft device, id: 0x%08lX, pc: 0x%08l"
|
||||
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -478,11 +478,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr ""
|
||||
@ -576,11 +571,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||
#, c-format
|
||||
msgid "Failed initiate attribute read, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
@ -590,15 +580,6 @@ msgstr ""
|
||||
msgid "Failed to acquire mutex, err 0x%04x"
|
||||
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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr ""
|
||||
@ -609,10 +590,6 @@ msgstr ""
|
||||
msgid "Failed to allocate RX buffer of %d bytes"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -621,93 +598,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Failed to release mutex, err 0x%04x"
|
||||
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
|
||||
msgid "File exists"
|
||||
msgstr ""
|
||||
@ -770,6 +665,14 @@ msgstr ""
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
msgid "Invalid %q pin"
|
||||
@ -1119,7 +1022,7 @@ msgstr ""
|
||||
msgid "Running in safe mode! Not running saved code.\n"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1301,11 +1204,32 @@ msgstr ""
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
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
|
||||
msgid "Unsupported baudrate"
|
||||
msgstr ""
|
||||
@ -2499,12 +2423,8 @@ msgstr ""
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes exactly 1 argument"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
|
200
locale/de_DE.po
200
locale/de_DE.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: Pascal Deneaux\n"
|
||||
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
|
||||
@ -482,11 +482,6 @@ msgstr "Beschädigte .mpy Datei"
|
||||
msgid "Corrupt 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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Konnte UART nicht initialisieren"
|
||||
@ -580,11 +575,6 @@ msgstr "Erwartet eine Adresse"
|
||||
msgid "Expected tuple of length %d, got %d"
|
||||
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
|
||||
msgid "Failed sending command."
|
||||
msgstr "Kommando nicht gesendet."
|
||||
@ -594,15 +584,6 @@ msgstr "Kommando nicht gesendet."
|
||||
msgid "Failed to acquire mutex, err 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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
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"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -625,93 +602,11 @@ msgstr ""
|
||||
msgid "Failed to connect: 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
|
||||
#, c-format
|
||||
msgid "Failed to release mutex, err 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
|
||||
msgid "File exists"
|
||||
msgstr "Datei existiert"
|
||||
@ -736,7 +631,9 @@ msgstr ""
|
||||
|
||||
#: ports/atmel-samd/common-hal/frequencyio/FrequencyIn.c
|
||||
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/busio/I2C.c shared-bindings/busio/SPI.c
|
||||
@ -776,6 +673,14 @@ msgstr "Inkorrekte Puffergröße"
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
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"
|
||||
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"
|
||||
msgstr "SDA oder SCL brauchen pull up"
|
||||
|
||||
@ -1336,6 +1241,21 @@ msgstr "Schreiben in nvm nicht möglich."
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
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
|
||||
#, c-format
|
||||
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 "
|
||||
"%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
|
||||
msgid "Unsupported baudrate"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes exactly 1 argument"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
@ -2794,6 +2716,9 @@ msgstr ""
|
||||
#~ msgid "Characteristic already in use by another Service."
|
||||
#~ 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"
|
||||
#~ msgstr "Daten sind zu groß für das advertisement packet"
|
||||
|
||||
@ -2816,14 +2741,15 @@ msgstr ""
|
||||
#~ msgid "Failed to acquire mutex"
|
||||
#~ msgstr "Akquirieren des Mutex gescheitert"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to add characteristic, err 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"
|
||||
#~ msgstr "Dienst konnte nicht hinzugefügt werden"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to add service, err 0x%04x"
|
||||
#~ msgstr "Dienst konnte nicht hinzugefügt werden. Status: 0x%04x"
|
||||
|
||||
@ -2836,47 +2762,81 @@ msgstr ""
|
||||
#~ msgid "Failed to continue scanning"
|
||||
#~ msgstr "Der Scanvorgang kann nicht fortgesetzt werden"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||
#~ msgstr "Der Scanvorgang kann nicht fortgesetzt werden. Status: 0x%04x"
|
||||
|
||||
#~ msgid "Failed to create mutex"
|
||||
#~ 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"
|
||||
#~ 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"
|
||||
#~ 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"
|
||||
#~ msgstr "Loslassen des Mutex gescheitert"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to set device name, err 0x%04x"
|
||||
#~ msgstr "Gerätename konnte nicht gesetzt werden, Status: 0x%04x"
|
||||
|
||||
#~ msgid "Failed to start advertising"
|
||||
#~ msgstr "Kann advertisement nicht starten"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to start advertising, err 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"
|
||||
#~ msgstr "Starten des Koppelns fehlgeschlagen, Status: 0x%04x"
|
||||
|
||||
#~ msgid "Failed to start scanning"
|
||||
#~ 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"
|
||||
#~ msgstr "Kann advertisement nicht stoppen"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to stop advertising, err 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."
|
||||
#~ msgstr ""
|
||||
#~ "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 ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -478,11 +478,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr ""
|
||||
@ -576,11 +571,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||
#, c-format
|
||||
msgid "Failed initiate attribute read, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
@ -590,15 +580,6 @@ msgstr ""
|
||||
msgid "Failed to acquire mutex, err 0x%04x"
|
||||
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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr ""
|
||||
@ -609,10 +590,6 @@ msgstr ""
|
||||
msgid "Failed to allocate RX buffer of %d bytes"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -621,93 +598,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Failed to release mutex, err 0x%04x"
|
||||
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
|
||||
msgid "File exists"
|
||||
msgstr ""
|
||||
@ -770,6 +665,14 @@ msgstr ""
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
msgid "Invalid %q pin"
|
||||
@ -1119,7 +1022,7 @@ msgstr ""
|
||||
msgid "Running in safe mode! Not running saved code.\n"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1301,11 +1204,32 @@ msgstr ""
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
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
|
||||
msgid "Unsupported baudrate"
|
||||
msgstr ""
|
||||
@ -2499,12 +2423,8 @@ msgstr ""
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes exactly 1 argument"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: @sommersoft, @MrCertainly\n"
|
||||
@ -482,11 +482,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr ""
|
||||
@ -580,11 +575,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||
#, c-format
|
||||
msgid "Failed initiate attribute read, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
@ -594,15 +584,6 @@ msgstr ""
|
||||
msgid "Failed to acquire mutex, err 0x%04x"
|
||||
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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr ""
|
||||
@ -613,10 +594,6 @@ msgstr ""
|
||||
msgid "Failed to allocate RX buffer of %d bytes"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -625,93 +602,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Failed to release mutex, err 0x%04x"
|
||||
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
|
||||
msgid "File exists"
|
||||
msgstr ""
|
||||
@ -774,6 +669,14 @@ msgstr ""
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
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"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
@ -1305,11 +1208,32 @@ msgstr ""
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
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
|
||||
msgid "Unsupported baudrate"
|
||||
msgstr ""
|
||||
@ -2503,12 +2427,8 @@ msgstr ""
|
||||
msgid "time.struct_time() takes a 9-sequence"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes exactly 1 argument"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
|
198
locale/es.po
198
locale/es.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -486,11 +486,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "No se puede inicializar la UART"
|
||||
@ -584,11 +579,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %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
|
||||
msgid "Failed sending command."
|
||||
msgstr "Fallo enviando comando"
|
||||
@ -598,15 +588,6 @@ msgstr "Fallo enviando comando"
|
||||
msgid "Failed to acquire mutex, err 0x%04x"
|
||||
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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
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"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -629,94 +606,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Failed to release 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
|
||||
msgid "File exists"
|
||||
msgstr "El archivo ya existe"
|
||||
@ -781,6 +675,14 @@ msgstr "Tamaño incorrecto del buffer"
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
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"
|
||||
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"
|
||||
msgstr "SDA o SCL necesitan una pull up"
|
||||
|
||||
@ -1339,11 +1241,32 @@ msgstr "Imposible escribir en nvm"
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
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
|
||||
msgid "Unsupported baudrate"
|
||||
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"
|
||||
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
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgstr "timepo muerto >100 (unidades en segundos)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
@ -2795,6 +2714,9 @@ msgstr "paso cero"
|
||||
#~ msgid "Characteristic already in use by another Service."
|
||||
#~ 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
|
||||
#~ msgid "Data too large for the advertisement packet"
|
||||
#~ msgstr "Los datos no caben en el paquete de anuncio."
|
||||
@ -2815,7 +2737,7 @@ msgstr "paso cero"
|
||||
#~ msgid "Failed to acquire mutex"
|
||||
#~ msgstr "No se puede adquirir el mutex, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||
#~ msgstr "Fallo al añadir caracteristica, err: 0x%08lX"
|
||||
|
||||
@ -2823,7 +2745,6 @@ msgstr "paso cero"
|
||||
#~ msgid "Failed to add service"
|
||||
#~ msgstr "No se puede detener el anuncio. status: 0x%02x"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to add service, err 0x%04x"
|
||||
#~ msgstr "Fallo al agregar servicio. err: 0x%02x"
|
||||
|
||||
@ -2838,7 +2759,6 @@ msgstr "paso cero"
|
||||
#~ msgid "Failed to continue scanning"
|
||||
#~ msgstr "No se puede iniciar el escaneo. status: 0x%02x"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||
#~ msgstr "No se puede iniciar el escaneo. err: 0x%02x"
|
||||
|
||||
@ -2846,14 +2766,40 @@ msgstr "paso cero"
|
||||
#~ msgid "Failed to create mutex"
|
||||
#~ 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
|
||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to release mutex"
|
||||
#~ msgstr "No se puede liberar el mutex, status: 0x%08lX"
|
||||
@ -2862,7 +2808,6 @@ msgstr "paso cero"
|
||||
#~ msgid "Failed to start advertising"
|
||||
#~ msgstr "No se puede inicar el anuncio. status: 0x%02x"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to start advertising, 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"
|
||||
#~ 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
|
||||
#~ msgid "Failed to stop advertising"
|
||||
#~ msgstr "No se puede detener el anuncio. status: 0x%02x"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to stop advertising, 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."
|
||||
#~ msgstr "La función requiere lock"
|
||||
|
||||
@ -2952,7 +2905,6 @@ msgstr "paso cero"
|
||||
#~ msgid "STA required"
|
||||
#~ msgstr "STA requerido"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "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"
|
||||
#~ 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"
|
||||
#~ msgstr "muchos argumentos"
|
||||
|
||||
|
202
locale/fil.po
202
locale/fil.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
||||
"Language-Team: fil\n"
|
||||
@ -487,11 +487,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Hindi ma-initialize ang UART"
|
||||
@ -590,11 +585,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||
#, c-format
|
||||
msgid "Failed initiate attribute read, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
@ -604,15 +594,6 @@ msgstr ""
|
||||
msgid "Failed to acquire mutex, err 0x%04x"
|
||||
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
|
||||
msgid "Failed to allocate 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"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -635,96 +612,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to release mutex, err 0x%04x"
|
||||
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
|
||||
msgid "File exists"
|
||||
msgstr "Mayroong file"
|
||||
@ -789,6 +681,14 @@ msgstr ""
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
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
|
||||
msgid "Unsupported 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"
|
||||
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
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgstr "timeout >100 (units ay seconds, hindi na msecs)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
#, fuzzy
|
||||
@ -2820,7 +2737,7 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to acquire mutex"
|
||||
#~ msgstr "Nabigo sa pag kuha ng mutex, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||
#~ msgstr "Nabigo sa paglagay ng characteristic, status: 0x%08lX"
|
||||
|
||||
@ -2828,7 +2745,7 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to add service"
|
||||
#~ msgstr "Hindi matagumpay ang paglagay ng service, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add service, err 0x%04x"
|
||||
#~ msgstr "Hindi matagumpay ang paglagay ng service, status: 0x%08lX"
|
||||
|
||||
@ -2844,7 +2761,7 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to continue scanning"
|
||||
#~ msgstr "Hindi maituloy ang pag scan, status: 0x%0xlX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||
#~ msgstr "Hindi maituloy ang pag scan, status: 0x%0xlX"
|
||||
|
||||
@ -2852,14 +2769,39 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to create mutex"
|
||||
#~ 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
|
||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to release mutex"
|
||||
#~ msgstr "Nabigo sa pagrelease ng mutex, status: 0x%08lX"
|
||||
@ -2868,7 +2810,7 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to start advertising"
|
||||
#~ msgstr "Hindi masimulaan ang advertisement, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||
#~ msgstr "Hindi masimulaan ang advertisement, status: 0x%08lX"
|
||||
|
||||
@ -2876,14 +2818,26 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to start scanning"
|
||||
#~ 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
|
||||
#~ msgid "Failed to stop advertising"
|
||||
#~ msgstr "Hindi mahinto ang advertisement, status: 0x%08lX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||
#~ 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."
|
||||
#~ msgstr "Kailangan ng lock ang function."
|
||||
|
||||
@ -3048,6 +3002,12 @@ msgstr "zero step"
|
||||
#~ msgid "scan failed"
|
||||
#~ 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"
|
||||
#~ msgstr "masyadong maraming argumento"
|
||||
|
||||
|
213
locale/fr.po
213
locale/fr.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0.1\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"
|
||||
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
|
||||
"Language-Team: fr\n"
|
||||
@ -493,11 +493,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "L'UART n'a pu être initialisé"
|
||||
@ -594,11 +589,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %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
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
@ -608,15 +598,6 @@ msgstr ""
|
||||
msgid "Failed to acquire 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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
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"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -639,97 +616,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to release 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
|
||||
msgid "File exists"
|
||||
msgstr "Le fichier existe"
|
||||
@ -794,6 +685,14 @@ msgstr "Taille de tampon incorrecte"
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
msgstr ""
|
||||
"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
|
||||
msgid "Unsupported baudrate"
|
||||
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"
|
||||
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
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgstr "timeout >100 (exprimé en secondes, pas en ms)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
#, fuzzy
|
||||
@ -2849,6 +2765,9 @@ msgstr "'step' nul"
|
||||
#~ msgid "Characteristic already in use by another 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"
|
||||
#~ msgstr "Données trop volumineuses pour le paquet de diffusion"
|
||||
|
||||
@ -2868,7 +2787,7 @@ msgstr "'step' nul"
|
||||
#~ msgid "Failed to acquire mutex"
|
||||
#~ msgstr "Echec de l'obtention de mutex"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add characteristic, 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"
|
||||
#~ msgstr "Echec de l'ajout de service"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add 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"
|
||||
#~ msgstr "Impossible de poursuivre le scan"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||
#~ msgstr "Impossible de poursuivre le scan, err 0x%04x"
|
||||
|
||||
@ -2900,14 +2819,45 @@ msgstr "'step' nul"
|
||||
#~ msgid "Failed to create 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
|
||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to release mutex"
|
||||
#~ msgstr "Impossible de libérer mutex"
|
||||
@ -2916,7 +2866,7 @@ msgstr "'step' nul"
|
||||
#~ msgid "Failed to start advertising"
|
||||
#~ msgstr "Echec du démarrage de la diffusion"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||
#~ msgstr "Impossible de commencer à diffuser, err 0x%04x"
|
||||
|
||||
@ -2924,14 +2874,26 @@ msgstr "'step' nul"
|
||||
#~ msgid "Failed to start scanning"
|
||||
#~ msgstr "Impossible de commencer à scanner"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to start scanning, err 0x%04x"
|
||||
#~ msgstr "Impossible de commencer à scanner, err 0x%04x"
|
||||
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to stop advertising"
|
||||
#~ msgstr "Echec de l'arrêt de diffusion"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to stop advertising, 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."
|
||||
#~ msgstr "La fonction nécessite un verrou."
|
||||
|
||||
@ -3003,7 +2965,6 @@ msgstr "'step' nul"
|
||||
#~ msgid "STA required"
|
||||
#~ msgstr "'STA' requis"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Soft device assert, 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"
|
||||
#~ 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"
|
||||
#~ msgstr "trop d'arguments"
|
||||
|
||||
|
197
locale/it_IT.po
197
locale/it_IT.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -488,11 +488,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Impossibile inizializzare l'UART"
|
||||
@ -590,11 +585,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||
#, c-format
|
||||
msgid "Failed initiate attribute read, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
@ -604,15 +594,6 @@ msgstr ""
|
||||
msgid "Failed to acquire mutex, err 0x%04x"
|
||||
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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
msgstr "Impossibile allocare buffer RX"
|
||||
@ -623,10 +604,6 @@ msgstr "Impossibile allocare buffer RX"
|
||||
msgid "Failed to allocate RX buffer of %d bytes"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -635,95 +612,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to release mutex, err 0x%04x"
|
||||
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
|
||||
msgid "File exists"
|
||||
msgstr "File esistente"
|
||||
@ -788,6 +681,14 @@ msgstr ""
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
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"
|
||||
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"
|
||||
msgstr "SDA o SCL necessitano un pull-up"
|
||||
|
||||
@ -1343,11 +1244,32 @@ msgstr "Imposibile scrivere su nvm."
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
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
|
||||
msgid "Unsupported baudrate"
|
||||
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"
|
||||
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
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
@ -2824,7 +2742,7 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to acquire mutex"
|
||||
#~ msgstr "Impossibile allocare buffer RX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||
|
||||
@ -2832,7 +2750,7 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to add service"
|
||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add service, err 0x%04x"
|
||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||
|
||||
@ -2848,7 +2766,7 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to continue scanning"
|
||||
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||
#~ msgstr "Impossible iniziare la scansione. status: 0x%02x"
|
||||
|
||||
@ -2856,14 +2774,40 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to create mutex"
|
||||
#~ 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
|
||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to release mutex"
|
||||
#~ msgstr "Impossibile leggere valore dell'attributo. status: 0x%02x"
|
||||
@ -2872,7 +2816,7 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to start advertising"
|
||||
#~ msgstr "Impossibile avviare advertisement. status: 0x%02x"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||
#~ msgstr "Impossibile avviare advertisement. status: 0x%02x"
|
||||
|
||||
@ -2880,14 +2824,26 @@ msgstr "zero step"
|
||||
#~ msgid "Failed to start scanning"
|
||||
#~ 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
|
||||
#~ msgid "Failed to stop advertising"
|
||||
#~ msgstr "Impossibile fermare advertisement. status: 0x%02x"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||
#~ 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."
|
||||
#~ msgstr "GPIO16 non supporta pull-up"
|
||||
|
||||
@ -3046,6 +3002,9 @@ msgstr "zero step"
|
||||
#~ msgid "scan failed"
|
||||
#~ msgstr "scansione fallita"
|
||||
|
||||
#~ msgid "time.struct_time() takes exactly 1 argument"
|
||||
#~ msgstr "time.struct_time() prende esattamente un argomento"
|
||||
|
||||
#~ msgid "too many arguments"
|
||||
#~ 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 ""
|
||||
"Project-Id-Version: \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"
|
||||
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
||||
"Language-Team: pl\n"
|
||||
@ -481,11 +481,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Ustawienie UART nie powiodło się"
|
||||
@ -579,11 +574,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %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
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
@ -593,15 +583,6 @@ msgstr ""
|
||||
msgid "Failed to acquire mutex, err 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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
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"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -624,93 +601,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Failed to release mutex, err 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
|
||||
msgid "File exists"
|
||||
msgstr "Plik istnieje"
|
||||
@ -775,6 +670,14 @@ msgstr "Niewłaściwa wielkość bufora"
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
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"
|
||||
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"
|
||||
msgstr "SDA lub SCL wymagają podciągnięcia"
|
||||
|
||||
@ -1321,11 +1224,32 @@ msgstr "Błąd zapisu do NVM."
|
||||
msgid "Unexpected nrfx uuid type"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %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
|
||||
msgid "Unsupported baudrate"
|
||||
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"
|
||||
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
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgstr "timeout > 100 (jednostkami są sekundy)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
@ -2740,20 +2660,22 @@ msgstr "zerowy krok"
|
||||
#~ msgid "Characteristic already in use by another Service."
|
||||
#~ 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"
|
||||
#~ msgstr "Zbyt dużo danych pakietu rozgłoszeniowego"
|
||||
|
||||
#~ msgid "Failed to acquire mutex"
|
||||
#~ msgstr "Nie udało się uzyskać blokady"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||
#~ msgstr "Nie udało się dodać charakterystyki, błąd 0x$04x"
|
||||
|
||||
#~ msgid "Failed to add service"
|
||||
#~ msgstr "Nie udało się dodać serwisu"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to add service, err 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"
|
||||
#~ msgstr "Nie udała się kontynuacja skanowania"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||
#~ msgstr "Nie udała się kontynuacja skanowania, błąd 0x%04x"
|
||||
|
||||
#~ msgid "Failed to create mutex"
|
||||
#~ 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"
|
||||
#~ msgstr "Nie udało się zwolnić blokady"
|
||||
|
||||
#~ msgid "Failed to start advertising"
|
||||
#~ msgstr "Nie udało się rozpocząć rozgłaszania"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||
#~ msgstr "Nie udało się rozpocząć rozgłaszania, błąd 0x%04x"
|
||||
|
||||
#~ msgid "Failed to start scanning"
|
||||
#~ 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"
|
||||
#~ msgstr "Nie udało się zatrzymać rozgłaszania"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to stop advertising, err 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"
|
||||
#~ msgstr "Zła nóżka zegara"
|
||||
|
||||
@ -2810,7 +2762,6 @@ msgstr "zerowy krok"
|
||||
#~ "bpp given"
|
||||
#~ 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"
|
||||
#~ msgstr "Soft device assert, id: 0x%08lX, pc: 0x%08lX"
|
||||
|
||||
@ -2841,3 +2792,9 @@ msgstr "zerowy krok"
|
||||
|
||||
#~ msgid "tile index out of bounds"
|
||||
#~ 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 ""
|
||||
"Project-Id-Version: PACKAGE VERSION\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"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -484,11 +484,6 @@ msgstr ""
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Não foi possível inicializar o UART"
|
||||
@ -585,11 +580,6 @@ msgstr ""
|
||||
msgid "Expected tuple of length %d, got %d"
|
||||
msgstr ""
|
||||
|
||||
#: ports/nrf/common-hal/_bleio/__init__.c
|
||||
#, c-format
|
||||
msgid "Failed initiate attribute read, err 0x%04x"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
msgstr "Falha ao enviar comando."
|
||||
@ -599,15 +589,6 @@ msgstr "Falha ao enviar comando."
|
||||
msgid "Failed to acquire mutex, err 0x%04x"
|
||||
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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
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"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -630,95 +607,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to release mutex, err 0x%04x"
|
||||
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
|
||||
msgid "File exists"
|
||||
msgstr "Arquivo já existe"
|
||||
@ -781,6 +674,14 @@ msgstr ""
|
||||
msgid "Input/output error"
|
||||
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/PDMIn.c
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Unmatched number of items on RHS (expected %d, got %d)."
|
||||
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
|
||||
msgid "Unsupported baudrate"
|
||||
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"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/time/__init__.c
|
||||
msgid "time.struct_time() takes exactly 1 argument"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/busio/UART.c
|
||||
msgid "timeout >100 (units are now seconds, not msecs)"
|
||||
msgid "timeout must be 0.0-100.0 seconds"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
@ -2754,7 +2672,7 @@ msgstr "passo zero"
|
||||
#~ msgid "Failed to acquire mutex"
|
||||
#~ msgstr "Falha ao alocar buffer RX"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add characteristic, err 0x%04x"
|
||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||
|
||||
@ -2762,7 +2680,7 @@ msgstr "passo zero"
|
||||
#~ msgid "Failed to add service"
|
||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to add service, err 0x%04x"
|
||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||
|
||||
@ -2770,7 +2688,7 @@ msgstr "passo zero"
|
||||
#~ msgid "Failed to change softdevice state"
|
||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||
|
||||
@ -2778,14 +2696,35 @@ msgstr "passo zero"
|
||||
#~ msgid "Failed to create mutex"
|
||||
#~ 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
|
||||
#~ msgid "Failed to notify or indicate attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to read attribute value, err %0x04x"
|
||||
#~ 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
|
||||
#~ msgid "Failed to release mutex"
|
||||
#~ 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"
|
||||
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to start advertising, err 0x%04x"
|
||||
#~ msgstr "Não é possível iniciar o anúncio. status: 0x%02x"
|
||||
|
||||
@ -2802,14 +2741,26 @@ msgstr "passo zero"
|
||||
#~ msgid "Failed to start scanning"
|
||||
#~ 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
|
||||
#~ msgid "Failed to stop advertising"
|
||||
#~ msgstr "Não pode parar propaganda. status: 0x%02x"
|
||||
|
||||
#, fuzzy, c-format
|
||||
#, fuzzy
|
||||
#~ msgid "Failed to stop advertising, err 0x%04x"
|
||||
#~ 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."
|
||||
#~ msgstr "GPIO16 não suporta pull up."
|
||||
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: circuitpython-cn\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"
|
||||
"Last-Translator: hexthat\n"
|
||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||
@ -482,11 +482,6 @@ msgstr "Fǔbài de .mpy wénjiàn"
|
||||
msgid "Corrupt raw code"
|
||||
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
|
||||
msgid "Could not initialize 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"
|
||||
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
|
||||
msgid "Failed sending command."
|
||||
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"
|
||||
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
|
||||
msgid "Failed to allocate RX buffer"
|
||||
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"
|
||||
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
|
||||
msgid "Failed to connect: internal error"
|
||||
msgstr ""
|
||||
@ -625,93 +602,11 @@ msgstr ""
|
||||
msgid "Failed to connect: timeout"
|
||||
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
|
||||
#, c-format
|
||||
msgid "Failed to release 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
|
||||
msgid "File exists"
|
||||
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"
|
||||
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/PDMIn.c
|
||||
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"
|
||||
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"
|
||||
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"
|
||||
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
|
||||
#, c-format
|
||||
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ù."
|
||||
|
||||
#: 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
|
||||
msgid "Unsupported 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"
|
||||
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
|
||||
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 "timeout must be 0.0-100.0 seconds"
|
||||
msgstr "Chāo shí shíjiān bìxū wèi 0.0 Dào 100.0 Miǎo"
|
||||
|
||||
#: shared-bindings/_bleio/CharacteristicBuffer.c
|
||||
msgid "timeout must be >= 0.0"
|
||||
@ -2756,6 +2676,9 @@ msgstr "líng bù"
|
||||
#~ msgid "Characteristic already in use by another Service."
|
||||
#~ 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"
|
||||
#~ 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"
|
||||
#~ msgstr "Wúfǎ huòdé mutex"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to add characteristic, 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"
|
||||
#~ msgstr "Tiānjiā fúwù shībài"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to add service, err 0x%04x"
|
||||
#~ msgstr "Tiānjiā fúwù shībài, err 0x%04x"
|
||||
|
||||
#~ msgid "Failed to change softdevice state"
|
||||
#~ 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"
|
||||
#~ 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"
|
||||
#~ msgstr "Jìxù sǎomiáo shībài"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to continue scanning, err 0x%04x"
|
||||
#~ msgstr "Jìxù sǎomiáo shībài, err 0x%04x"
|
||||
|
||||
#~ msgid "Failed to create mutex"
|
||||
#~ 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"
|
||||
#~ msgstr "Wúfǎ shìfàng mutex"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to set device name, err 0x%04x"
|
||||
#~ msgstr "Wúfǎ shèzhì shèbèi míngchēng, cuòwù 0x%04x"
|
||||
|
||||
#~ msgid "Failed to start advertising"
|
||||
#~ msgstr "Qǐdòng guǎnggào shībài"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to start advertising, 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"
|
||||
#~ msgstr "Wúfǎ kāishǐ pèiduì, cuòwù 0x%04x"
|
||||
|
||||
#~ msgid "Failed to start scanning"
|
||||
#~ 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"
|
||||
#~ msgstr "Wúfǎ tíngzhǐ guǎnggào"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Failed to stop advertising, 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"
|
||||
#~ msgstr "Wúxiào de wèi shízhōng yǐn jiǎo"
|
||||
|
||||
@ -2854,7 +2814,6 @@ msgstr "líng bù"
|
||||
#~ 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"
|
||||
|
||||
#, c-format
|
||||
#~ msgid "Soft device assert, 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"
|
||||
#~ 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"
|
||||
#~ msgstr "tài duō cānshù"
|
||||
|
||||
|
@ -122,7 +122,16 @@ else
|
||||
ifdef CFLAGS_INLINE_LIMIT
|
||||
CFLAGS += -finline-limit=$(CFLAGS_INLINE_LIMIT)
|
||||
endif
|
||||
|
||||
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
|
||||
|
||||
CFLAGS += $(INC) -Wall -Werror -std=gnu11 -nostdlib $(BASE_CFLAGS) $(CFLAGS_MOD) $(COPT)
|
||||
|
@ -28,6 +28,7 @@
|
||||
#include "audio_dma.h"
|
||||
#include "tick.h"
|
||||
#include "supervisor/filesystem.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "supervisor/usb.h"
|
||||
|
||||
#include "py/runtime.h"
|
||||
@ -44,6 +45,23 @@ bool stack_ok_so_far = true;
|
||||
|
||||
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) {
|
||||
running_background_tasks = false;
|
||||
}
|
||||
@ -53,6 +71,9 @@ void run_background_tasks(void) {
|
||||
if (running_background_tasks) {
|
||||
return;
|
||||
}
|
||||
|
||||
start_background_task();
|
||||
|
||||
assert_heap_ok();
|
||||
running_background_tasks = true;
|
||||
|
||||
@ -71,9 +92,10 @@ void run_background_tasks(void) {
|
||||
running_background_tasks = false;
|
||||
assert_heap_ok();
|
||||
|
||||
last_finished_tick = ticks_ms;
|
||||
last_finished_tick = supervisor_ticks_ms64();
|
||||
finish_background_task();
|
||||
}
|
||||
|
||||
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_DEVICES = "W25Q128JV_PM"
|
||||
|
||||
CIRCUITPY_PS2IO = 1
|
||||
# No I2S on SAMD51G.
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 3
|
||||
EXTERNAL_FLASH_DEVICES = "GD25Q16C, W25Q16JV_IQ, W25Q16JV_IM"
|
||||
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_DEVICES = GD25Q16C
|
||||
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_DEVICES = "W25Q64JV_IQ, GD25Q64C"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_PS2IO = 1
|
||||
|
@ -11,7 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||
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
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_PS2IO = 1
|
||||
# No I2S on SAMD51G
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
|
||||
|
@ -14,3 +14,5 @@ LONGINT_IMPL = MPZ
|
||||
# Not needed.
|
||||
CIRCUITPY_AUDIOBUSIO = 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_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
||||
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_DEVICES = "S25FL116K, S25FL216K, GD25Q16C"
|
||||
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"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_PS2IO = 1
|
||||
# No I2S on SAMD51G
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
|
||||
|
@ -11,6 +11,3 @@ QSPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOIO = 1
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
|
@ -23,3 +23,5 @@ CIRCUITPY_USB_MIDI = 0
|
||||
SUPEROPT_GC = 0
|
||||
|
||||
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_I2CSLAVE = 0
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 0
|
||||
CIRCUITPY_NETWORK = 0
|
||||
CIRCUITPY_PIXELBUF = 0
|
||||
CIRCUITPY_PS2IO = 0
|
||||
CIRCUITPY_RTC = 0
|
||||
CIRCUITPY_TOUCHIO = 0
|
||||
CIRCUITPY_USB_HID = 0
|
||||
|
@ -26,6 +26,8 @@ CIRCUITPY_SMALL_BUILD = 1
|
||||
SUPEROPT_GC = 0
|
||||
|
||||
# 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_IRRemote
|
||||
|
||||
CFLAGS_BOARD = --param max-inline-insns-auto=12
|
||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOIO = 1
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
CIRCUITPY_GAMEPAD = 1
|
||||
CIRCUITPY_GAMEPADSHIFT = 1
|
||||
CIRCUITPY_STAGE = 1
|
||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = GD25Q16C
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOIO = 1
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
CIRCUITPY_GAMEPAD = 1
|
||||
CIRCUITPY_GAMEPADSHIFT = 1
|
||||
CIRCUITPY_STAGE = 1
|
||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOIO = 1
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
CIRCUITPY_GAMEPAD = 1
|
||||
CIRCUITPY_GAMEPADSHIFT = 1
|
||||
CIRCUITPY_STAGE = 1
|
||||
|
@ -12,8 +12,6 @@ EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = GD25Q64C
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_AUDIOIO = 1
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
CIRCUITPY_GAMEPAD = 1
|
||||
CIRCUITPY_GAMEPADSHIFT = 1
|
||||
CIRCUITPY_STAGE = 1
|
||||
|
@ -12,3 +12,8 @@ LONGINT_IMPL = NONE
|
||||
CIRCUITPY_SMALL_BUILD = 1
|
||||
|
||||
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"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_PS2IO = 1
|
||||
# No I2S on SAMD51G
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
# 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"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_PS2IO = 1
|
||||
# No I2S on SAMD51G
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
|
||||
|
@ -12,3 +12,9 @@ LONGINT_IMPL = NONE
|
||||
CIRCUITPY_SMALL_BUILD = 1
|
||||
|
||||
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_PRODUCT = "Sol"
|
||||
USB_MANUFACTURER = "Winterbloom"
|
||||
USB_INTERFACE_NAME = "Sol"
|
||||
|
||||
CHIP_VARIANT = SAMD51J20A
|
||||
CHIP_FAMILY = samd51
|
||||
|
@ -34,8 +34,7 @@
|
||||
#include "py/runtime.h"
|
||||
#include "py/stream.h"
|
||||
#include "supervisor/shared/translate.h"
|
||||
|
||||
#include "tick.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
#include "hpl_sercom_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);
|
||||
|
||||
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.
|
||||
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.
|
||||
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) {
|
||||
// Reset the timeout on every character read.
|
||||
start_ticks = ticks_ms;
|
||||
start_ticks = supervisor_ticks_ms64();
|
||||
}
|
||||
RUN_BACKGROUND_TASKS;
|
||||
// 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;
|
||||
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) {
|
||||
*errcode = MP_EAGAIN;
|
||||
return MP_STREAM_ERROR;
|
||||
}
|
||||
|
||||
// Wait until write is complete or timeout.
|
||||
bool done = false;
|
||||
uint64_t start_ticks = ticks_ms;
|
||||
// Busy-wait for timeout.
|
||||
while (ticks_ms - start_ticks < self->timeout_ms) {
|
||||
if (usart_async_is_tx_empty(usart_desc_p)) {
|
||||
done = true;
|
||||
// Busy-wait until all characters transmitted.
|
||||
struct usart_async_status async_status;
|
||||
while (true) {
|
||||
usart_async_get_status(usart_desc_p, &async_status);
|
||||
if (async_status.txcnt >= len) {
|
||||
break;
|
||||
}
|
||||
RUN_BACKGROUND_TASKS;
|
||||
}
|
||||
|
||||
if (!done) {
|
||||
*errcode = MP_EAGAIN;
|
||||
return MP_STREAM_ERROR;
|
||||
}
|
||||
|
||||
// All the characters got written.
|
||||
return len;
|
||||
}
|
||||
|
||||
@ -368,6 +361,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
||||
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) {
|
||||
// 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;
|
||||
@ -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) {
|
||||
if (self->tx_pin == NO_PIN) {
|
||||
return false;
|
||||
}
|
||||
// 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_device * const) &self->usart_desc.device;
|
||||
return _usart_async_is_byte_sent(usart_device_p);
|
||||
struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const) &self->usart_desc;
|
||||
struct usart_async_status async_status;
|
||||
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 "tick.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
inline uint64_t common_hal_time_monotonic() {
|
||||
return ticks_ms;
|
||||
return supervisor_ticks_ms64();
|
||||
}
|
||||
|
||||
void common_hal_time_delay_ms(uint32_t delay) {
|
||||
|
@ -16,10 +16,18 @@ endif
|
||||
|
||||
# Put samd21-only choices here.
|
||||
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
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_FREQUENCYIO
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_TOUCHIO_USE_NATIVE
|
||||
CIRCUITPY_TOUCHIO_USE_NATIVE = 1
|
||||
endif
|
||||
|
||||
# SAMD21 needs separate endpoint pairs for MSC BULK IN and BULK OUT, otherwise it's erratic.
|
||||
USB_MSC_EP_NUM_OUT = 1
|
||||
@ -27,8 +35,24 @@ endif
|
||||
|
||||
# Put samd51-only choices here.
|
||||
ifeq ($(CHIP_FAMILY),samd51)
|
||||
CIRCUITPY_SAMD = 1
|
||||
# No native touchio on SAMD51.
|
||||
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
|
||||
|
||||
INTERNAL_LIBM = 1
|
||||
|
@ -45,12 +45,12 @@
|
||||
#include "mpconfigboard.h"
|
||||
#include "mphalport.h"
|
||||
#include "reset.h"
|
||||
#include "tick.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
extern uint32_t common_hal_mcu_processor_get_frequency(void);
|
||||
|
||||
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;
|
||||
while (duration < delay) {
|
||||
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))) {
|
||||
break;
|
||||
}
|
||||
duration = (ticks_ms - start_tick);
|
||||
duration = (supervisor_ticks_ms64() - start_tick);
|
||||
// TODO(tannewt): Go to sleep for a little while while we wait.
|
||||
}
|
||||
}
|
||||
|
@ -31,11 +31,11 @@
|
||||
|
||||
#include "lib/oofatfs/ff.h"
|
||||
|
||||
// Global millisecond tick count (driven by SysTick interrupt).
|
||||
extern volatile uint64_t ticks_ms;
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
// Global millisecond tick count (driven by SysTick interrupt).
|
||||
static inline mp_uint_t mp_hal_ticks_ms(void) {
|
||||
return ticks_ms;
|
||||
return supervisor_ticks_ms32();
|
||||
}
|
||||
// Number of bytes in receive buffer
|
||||
volatile uint8_t usb_rx_count;
|
||||
|
@ -28,47 +28,21 @@
|
||||
|
||||
#include "peripheral_clk_config.h"
|
||||
|
||||
#include "supervisor/shared/autoreload.h"
|
||||
#include "supervisor/filesystem.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "shared-bindings/microcontroller/__init__.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) {
|
||||
// SysTick interrupt handler called when the SysTick timer reaches zero
|
||||
// (every millisecond).
|
||||
common_hal_mcu_disable_interrupts();
|
||||
ticks_ms += 1;
|
||||
|
||||
// Read the control register to reset the COUNTFLAG.
|
||||
(void) SysTick->CTRL;
|
||||
common_hal_mcu_enable_interrupts();
|
||||
|
||||
#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)) {
|
||||
#if CIRCUITPY_GAMEPAD
|
||||
gamepad_tick();
|
||||
#endif
|
||||
#if CIRCUITPY_GAMEPADSHIFT
|
||||
gamepadshift_tick();
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
// Do things common to all ports when the tick occurs
|
||||
supervisor_tick();
|
||||
}
|
||||
|
||||
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 current_us = SysTick->VAL;
|
||||
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 VAL read and CTRL read.
|
||||
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) {
|
||||
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"
|
||||
|
||||
extern volatile uint64_t ticks_ms;
|
||||
|
||||
extern struct timer_descriptor ms_timer;
|
||||
|
||||
void tick_init(void);
|
||||
|
@ -102,7 +102,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
|
||||
self->tx_pin = tx;
|
||||
self->rx_pin = rx;
|
||||
self->baudrate = baudrate;
|
||||
self->timeout = timeout;
|
||||
self->timeout_us = timeout * 1000000;
|
||||
}
|
||||
|
||||
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);
|
||||
|
||||
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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
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) {
|
||||
int count = 0;
|
||||
|
||||
|
@ -37,7 +37,7 @@ typedef struct {
|
||||
const mcu_pin_obj_t *tx_pin;
|
||||
const mcu_pin_obj_t *rx_pin;
|
||||
uint32_t baudrate;
|
||||
uint32_t timeout;
|
||||
uint32_t timeout_us;
|
||||
} busio_uart_obj_t;
|
||||
|
||||
void busio_uart_reset(void);
|
||||
|
@ -26,10 +26,10 @@
|
||||
|
||||
#include "py/mphal.h"
|
||||
|
||||
#include "tick.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
uint64_t common_hal_time_monotonic(void) {
|
||||
return ticks_ms;
|
||||
return supervisor_ticks_ms64();
|
||||
}
|
||||
|
||||
void common_hal_time_delay_ms(uint32_t delay) {
|
||||
|
@ -31,7 +31,7 @@
|
||||
|
||||
#include "py/mpstate.h"
|
||||
|
||||
#include "tick.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
#define DELAY_CORRECTION (700)
|
||||
#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) {
|
||||
uint64_t start_tick = ticks_ms;
|
||||
uint64_t start_tick = supervisor_ticks_ms64();
|
||||
uint64_t duration = 0;
|
||||
while (duration < delay) {
|
||||
#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))) {
|
||||
break;
|
||||
}
|
||||
duration = (ticks_ms - start_tick);
|
||||
duration = (supervisor_ticks_ms64() - start_tick);
|
||||
// TODO(tannewt): Go to sleep for a little while while we wait.
|
||||
}
|
||||
}
|
||||
|
@ -31,6 +31,4 @@
|
||||
|
||||
#include "lib/utils/interrupt_char.h"
|
||||
|
||||
extern volatile uint64_t ticks_ms;
|
||||
|
||||
#endif // MICROPY_INCLUDED_CXD56_MPHALPORT_H
|
||||
|
@ -27,19 +27,10 @@
|
||||
#include "tick.h"
|
||||
|
||||
#include "supervisor/shared/autoreload.h"
|
||||
#include "supervisor/filesystem.h"
|
||||
|
||||
// Global millisecond tick count
|
||||
volatile uint64_t ticks_ms = 0;
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
void board_timerhook(void)
|
||||
{
|
||||
ticks_ms += 1;
|
||||
|
||||
#if CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS > 0
|
||||
filesystem_tick();
|
||||
#endif
|
||||
#ifdef CIRCUITPY_AUTORELOAD_DELAY_MS
|
||||
autoreload_tick();
|
||||
#endif
|
||||
// Do things common to all ports when the tick occurs
|
||||
supervisor_tick();
|
||||
}
|
||||
|
@ -29,6 +29,4 @@
|
||||
|
||||
#include "py/mpconfig.h"
|
||||
|
||||
extern volatile uint64_t ticks_ms;
|
||||
|
||||
#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;
|
||||
#if CIRCUITPY_VERBOSE_BLE
|
||||
mp_printf(&mp_plat_print, "BLE event: 0x%04x\n", event->header.evt_id);
|
||||
#endif
|
||||
|
||||
if (supervisor_bluetooth_hook(event)) {
|
||||
continue;
|
||||
@ -145,8 +148,11 @@ void SD_EVT_IRQHandler(void) {
|
||||
done = it->func(event, it->param) || done;
|
||||
it = it->next;
|
||||
}
|
||||
if (!done) {
|
||||
//mp_printf(&mp_plat_print, "Unhandled ble event: 0x%04x\n", event->header.evt_id);
|
||||
#if CIRCUITPY_VERBOSE_BLE
|
||||
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/runtime.h"
|
||||
#include "supervisor/shared/safe_mode.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "supervisor/usb.h"
|
||||
#include "shared-bindings/_bleio/__init__.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->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);
|
||||
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.
|
||||
// If so, negotiate our preferred range.
|
||||
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) {
|
||||
uint32_t err_code;
|
||||
|
||||
err_code = sd_ble_gap_addr_get(address);
|
||||
|
||||
if (err_code != NRF_SUCCESS) {
|
||||
mp_raise_OSError_msg(translate("Failed to get local address"));
|
||||
}
|
||||
check_nrf_error(sd_ble_gap_addr_get(address));
|
||||
}
|
||||
|
||||
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
|
||||
init_usb_hardware();
|
||||
|
||||
if (err_code != NRF_SUCCESS) {
|
||||
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]));
|
||||
}
|
||||
check_nrf_error(err_code);
|
||||
|
||||
// Add a handler for incoming peripheral connections.
|
||||
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) {
|
||||
uint8_t is_enabled;
|
||||
|
||||
const uint32_t err_code = sd_softdevice_is_enabled(&is_enabled);
|
||||
if (err_code != NRF_SUCCESS) {
|
||||
mp_raise_OSError_msg(translate("Failed to get softdevice state"));
|
||||
}
|
||||
check_nrf_error(sd_softdevice_is_enabled(&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;
|
||||
|
||||
shared_module_bleio_scanresults_append(scan_results,
|
||||
ticks_ms,
|
||||
supervisor_ticks_ms64(),
|
||||
report->type.connectable,
|
||||
report->type.scan_response,
|
||||
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) {
|
||||
if (self->scan_results != NULL) {
|
||||
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;
|
||||
}
|
||||
@ -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) {
|
||||
self->scan_results = NULL;
|
||||
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);
|
||||
@ -447,7 +447,7 @@ STATIC bool connect_on_ble_evt(ble_evt_t *ble_evt, void *info_in) {
|
||||
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;
|
||||
|
||||
@ -479,7 +479,7 @@ mp_obj_t common_hal_bleio_adapter_connect(bleio_adapter_obj_t *self, bleio_addre
|
||||
|
||||
if (err_code != NRF_SUCCESS) {
|
||||
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) {
|
||||
@ -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);
|
||||
|
||||
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.
|
||||
@ -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;
|
||||
}
|
||||
@ -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.
|
||||
uint8_t adv_handle = BLE_GAP_ADV_SET_HANDLE_NOT_SET;
|
||||
|
||||
STATIC void check_data_fit(size_t data_len) {
|
||||
if (data_len > BLE_GAP_ADV_SET_DATA_SIZE_MAX) {
|
||||
STATIC void check_data_fit(size_t data_len, bool connectable) {
|
||||
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"));
|
||||
}
|
||||
}
|
||||
@ -525,11 +526,31 @@ uint32_t _common_hal_bleio_adapter_start_advertising(bleio_adapter_obj_t *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;
|
||||
ble_gap_adv_params_t adv_params = {
|
||||
.interval = SEC_TO_UNITS(interval, UNIT_0_625_MS),
|
||||
.properties.type = connectable ? BLE_GAP_ADV_TYPE_CONNECTABLE_SCANNABLE_UNDIRECTED
|
||||
: BLE_GAP_ADV_TYPE_NONCONNECTABLE_NONSCANNABLE_UNDIRECTED,
|
||||
.properties.type = adv_type,
|
||||
.duration = BLE_GAP_ADV_TIMEOUT_GENERAL_UNLIMITED,
|
||||
.filter_policy = BLE_GAP_ADV_FP_ANY,
|
||||
.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) {
|
||||
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.
|
||||
|
||||
uint32_t err_code;
|
||||
|
||||
check_data_fit(advertising_data_bufinfo->len);
|
||||
check_data_fit(scan_response_data_bufinfo->len);
|
||||
check_data_fit(advertising_data_bufinfo->len, connectable);
|
||||
check_data_fit(scan_response_data_bufinfo->len, connectable);
|
||||
// The advertising data buffers must not move, because the SoftDevice depends on them.
|
||||
// So make them long-lived and reuse them onwards.
|
||||
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) {
|
||||
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->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);
|
||||
|
||||
if (err_code != NRF_SUCCESS) {
|
||||
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]));
|
||||
}
|
||||
check_nrf_error(_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));
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
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) {
|
||||
// CCCD is not set, so say that neither Notify nor Indicate is enabled.
|
||||
cccd = 0;
|
||||
} else if (err_code != NRF_SUCCESS) {
|
||||
mp_raise_OSError_msg_varg(translate("Failed to read CCCD value, err 0x%04x"), err_code);
|
||||
} else {
|
||||
check_nrf_error(err_code);
|
||||
}
|
||||
|
||||
return cccd;
|
||||
@ -78,7 +78,7 @@ STATIC void characteristic_gatts_notify_indicate(uint16_t handle, uint16_t conn_
|
||||
}
|
||||
|
||||
// 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,
|
||||
};
|
||||
|
||||
uint32_t err_code = 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);
|
||||
}
|
||||
check_nrf_error(sd_ble_gatts_descriptor_add(self->handle, &desc_attr, &descriptor->handle));
|
||||
|
||||
descriptor->next = self->descriptor_list;
|
||||
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) {
|
||||
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)) {
|
||||
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);
|
||||
@ -261,7 +257,7 @@ void common_hal_bleio_characteristic_set_cccd(bleio_characteristic_obj_t *self,
|
||||
}
|
||||
|
||||
// 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/Connection.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "common-hal/_bleio/CharacteristicBuffer.h"
|
||||
|
||||
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) {
|
||||
uint64_t start_ticks = ticks_ms;
|
||||
uint64_t start_ticks = supervisor_ticks_ms64();
|
||||
|
||||
// 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;
|
||||
// Allow user to break out of a timeout with a KeyboardInterrupt.
|
||||
if ( mp_hal_is_interrupted() ) {
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include "ble_drv.h"
|
||||
#include "ble_hci.h"
|
||||
#include "nrf_soc.h"
|
||||
#include "lib/utils/interrupt_char.h"
|
||||
#include "py/gc.h"
|
||||
#include "py/objlist.h"
|
||||
#include "py/objstr.h"
|
||||
@ -51,7 +52,7 @@
|
||||
#define BLE_AD_TYPE_FLAGS_DATA_SIZE 1
|
||||
|
||||
static const ble_gap_sec_params_t pairing_sec_params = {
|
||||
.bond = 1,
|
||||
.bond = 0,
|
||||
.mitm = 0,
|
||||
.lesc = 0,
|
||||
.keypress = 0,
|
||||
@ -69,8 +70,6 @@ static volatile bool m_discovery_successful;
|
||||
static bleio_service_obj_t *m_char_discovery_service;
|
||||
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) {
|
||||
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;
|
||||
}
|
||||
|
||||
// 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) {
|
||||
case BLE_GAP_EVT_DISCONNECTED:
|
||||
break;
|
||||
case BLE_GAP_EVT_CONN_PARAM_UPDATE: // 0x12
|
||||
break;
|
||||
case BLE_GAP_EVT_PHY_UPDATE_REQUEST: {
|
||||
ble_gap_phys_t const phys = {
|
||||
.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);
|
||||
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
|
||||
break;
|
||||
|
||||
case BLE_GAP_EVT_CONN_PARAM_UPDATE_REQUEST: {
|
||||
self->conn_params_updating = true;
|
||||
ble_gap_evt_conn_param_update_request_t *request =
|
||||
&ble_evt->evt.gap_evt.params.conn_param_update_request;
|
||||
sd_ble_gap_conn_param_update(self->conn_handle, &request->conn_params);
|
||||
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: {
|
||||
ble_gap_sec_keyset_t keyset = {
|
||||
.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
|
||||
// Pairing process completed
|
||||
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;
|
||||
self->pair_status = PAIR_PAIRED;
|
||||
} else {
|
||||
@ -209,11 +248,6 @@ bool connection_on_ble_evt(ble_evt_t *ble_evt, void *self_in) {
|
||||
|
||||
|
||||
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 true;
|
||||
@ -228,6 +262,13 @@ void bleio_connection_clear(bleio_connection_internal_t *self) {
|
||||
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) {
|
||||
if (self->connection == NULL) {
|
||||
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);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
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) {
|
||||
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) {
|
||||
while (self->pair_status == PAIR_WAITING && !mp_hal_is_interrupted()) {
|
||||
RUN_BACKGROUND_TASKS;
|
||||
}
|
||||
|
||||
if (self->pair_status == PAIR_NOT_PAIRED) {
|
||||
mp_raise_OSError_msg(translate("Failed to pair"));
|
||||
if (mp_hal_is_interrupted()) {
|
||||
return;
|
||||
}
|
||||
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.
|
||||
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_in_process = true;
|
||||
|
||||
uint32_t err_code = 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"));
|
||||
}
|
||||
check_nrf_error(sd_ble_gattc_primary_services_discover(connection->conn_handle,
|
||||
start_handle, service_uuid));
|
||||
|
||||
// Wait for a discovery event.
|
||||
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;
|
||||
while ((uuid_obj = mp_iternext(iterable)) != MP_OBJ_STOP_ITERATION) {
|
||||
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);
|
||||
|
||||
@ -582,10 +635,9 @@ STATIC void discover_remote_services(bleio_connection_internal_t *self, mp_obj_t
|
||||
// discovery call returns nothing.
|
||||
// discover_next_descriptors() appends to the descriptor_list.
|
||||
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,
|
||||
next_desc_start_handle, next_desc_end_handle)) {
|
||||
|
||||
// Get the most recently discovered descriptor, and then ask for descriptors
|
||||
// whose handles start after that descriptor's handle.
|
||||
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);
|
||||
|
||||
}
|
||||
|
||||
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);
|
||||
bleio_connection_ensure_connected(self);
|
||||
// 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);
|
||||
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;
|
||||
}
|
||||
|
||||
|
||||
uint16_t bleio_connection_get_conn_handle(bleio_connection_obj_t *self) {
|
||||
if (self == NULL || self->connection == NULL) {
|
||||
return BLE_CONN_HANDLE_INVALID;
|
||||
|
@ -60,8 +60,11 @@ typedef struct {
|
||||
bonding_keys_t bonding_keys;
|
||||
uint16_t ediv;
|
||||
pair_status_t pair_status;
|
||||
uint8_t sec_status; // Internal security status.
|
||||
mp_obj_t connection_obj;
|
||||
ble_drv_evt_handler_entry_t handler_entry;
|
||||
ble_gap_conn_params_t conn_params;
|
||||
volatile bool conn_params_updating;
|
||||
} bleio_connection_internal_t;
|
||||
|
||||
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) {
|
||||
const uint32_t err_code = _common_hal_bleio_service_construct(self, uuid, is_secondary, mp_obj_new_list(0, NULL));
|
||||
if (err_code != NRF_SUCCESS) {
|
||||
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]));
|
||||
}
|
||||
check_nrf_error(_common_hal_bleio_service_construct(self, uuid, is_secondary,
|
||||
mp_obj_new_list(0, NULL)));
|
||||
}
|
||||
|
||||
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.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 = {
|
||||
.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;
|
||||
|
||||
uint32_t err_code;
|
||||
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]));
|
||||
}
|
||||
check_nrf_error(sd_ble_gatts_characteristic_add(self->handle, &char_md, &char_attr, &char_handles));
|
||||
|
||||
characteristic->user_desc_handle = char_handles.user_desc_handle;
|
||||
characteristic->cccd_handle = char_handles.cccd_handle;
|
||||
characteristic->sccd_handle = char_handles.sccd_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));
|
||||
}
|
||||
|
@ -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));
|
||||
|
||||
// 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);
|
||||
if (err_code != NRF_SUCCESS) {
|
||||
mp_raise_OSError_msg_varg(translate("Failed to register Vendor-Specific UUID, err 0x%04x"), err_code);
|
||||
}
|
||||
check_nrf_error(sd_ble_uuid_vs_add(&vs_uuid, &self->nrf_ble_uuid.type));
|
||||
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]) {
|
||||
uint8_t length;
|
||||
const uint32_t err_code = 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);
|
||||
}
|
||||
check_nrf_error(sd_ble_uuid_encode(&self->nrf_ble_uuid, &length, uuid128));
|
||||
}
|
||||
|
||||
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) {
|
||||
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.type = nrf_ble_uuid->type;
|
||||
|
@ -40,28 +40,49 @@
|
||||
|
||||
#include "common-hal/_bleio/__init__.h"
|
||||
|
||||
const mp_obj_t base_error_messages[20] = {
|
||||
MP_ROM_QSTR(MP_QSTR_SUCCESS),
|
||||
MP_ROM_QSTR(MP_QSTR_SVC_HANDLER_MISSING),
|
||||
MP_ROM_QSTR(MP_QSTR_SOFTDEVICE_NOT_ENABLED),
|
||||
MP_ROM_QSTR(MP_QSTR_INTERNAL),
|
||||
MP_ROM_QSTR(MP_QSTR_NO_MEM),
|
||||
MP_ROM_QSTR(MP_QSTR_NOT_FOUND),
|
||||
MP_ROM_QSTR(MP_QSTR_NOT_SUPPORTED),
|
||||
MP_ROM_QSTR(MP_QSTR_INVALID_PARAM),
|
||||
MP_ROM_QSTR(MP_QSTR_INVALID_STATE),
|
||||
MP_ROM_QSTR(MP_QSTR_INVALID_LENGTH),
|
||||
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),
|
||||
MP_ROM_QSTR(MP_QSTR_NULL),
|
||||
MP_ROM_QSTR(MP_QSTR_FORBIDDEN),
|
||||
MP_ROM_QSTR(MP_QSTR_INVALID_ADDR),
|
||||
MP_ROM_QSTR(MP_QSTR_BUSY),
|
||||
MP_ROM_QSTR(MP_QSTR_CONN_COUNT),
|
||||
MP_ROM_QSTR(MP_QSTR_RESOURCES),
|
||||
};
|
||||
void check_nrf_error(uint32_t err_code) {
|
||||
if (err_code == NRF_SUCCESS) {
|
||||
return;
|
||||
}
|
||||
switch (err_code) {
|
||||
case NRF_ERROR_TIMEOUT:
|
||||
mp_raise_msg(&mp_type_TimeoutError, NULL);
|
||||
return;
|
||||
default:
|
||||
mp_raise_bleio_BluetoothError(translate("Unknown soft device error: %04x"), err_code);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void check_gatt_status(uint16_t gatt_status) {
|
||||
if (gatt_status == BLE_GATT_STATUS_SUCCESS) {
|
||||
return;
|
||||
}
|
||||
switch (gatt_status) {
|
||||
case BLE_GATT_STATUS_ATTERR_INSUF_AUTHENTICATION:
|
||||
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.
|
||||
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) {
|
||||
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,
|
||||
};
|
||||
|
||||
uint32_t err_code = 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);
|
||||
}
|
||||
check_nrf_error(sd_ble_gatts_value_get(conn_handle, handle, &gatts_value));
|
||||
|
||||
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,
|
||||
};
|
||||
|
||||
const uint32_t err_code = 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);
|
||||
}
|
||||
check_nrf_error(sd_ble_gatts_value_set(conn_handle, handle, &gatts_value));
|
||||
}
|
||||
|
||||
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;
|
||||
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);
|
||||
if (err_code != NRF_SUCCESS) {
|
||||
mp_raise_OSError_msg_varg(translate("Failed initiate attribute read, err 0x%04x"), err_code);
|
||||
uint32_t nrf_error = NRF_ERROR_BUSY;
|
||||
while (nrf_error == NRF_ERROR_BUSY) {
|
||||
nrf_error = sd_ble_gattc_read(conn_handle, handle, 0);
|
||||
}
|
||||
check_nrf_error(nrf_error);
|
||||
|
||||
while (!read_info.done) {
|
||||
RUN_BACKGROUND_TASKS;
|
||||
}
|
||||
if (read_info.status != BLE_GATT_STATUS_SUCCESS) {
|
||||
mp_raise_OSError_msg_varg(translate("Failed to read attribute value, err 0x%04x"), read_info.status);
|
||||
}
|
||||
check_gatt_status(read_info.status);
|
||||
|
||||
ble_drv_remove_event_handler(_on_gattc_read_rsp_evt, &read_info);
|
||||
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.
|
||||
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).
|
||||
#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.
|
||||
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) {
|
||||
void *buffer = self->buffers[self->next_buffer];
|
||||
void *buffer_start = buffer;
|
||||
NRF_I2S->TXD.PTR = (uintptr_t)buffer;
|
||||
self->next_buffer = !self->next_buffer;
|
||||
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 *be = (uint16_t*)(buffer + bytecount);
|
||||
uint16_t *sp = (uint16_t*)self->sample_data;
|
||||
for (; bp != be; bp++) {
|
||||
for (; bp < be;) {
|
||||
*bp++ = *sp++ + 0x8000;
|
||||
}
|
||||
} else {
|
||||
uint8_t *bp = (uint8_t*)buffer;
|
||||
uint8_t *be = (uint8_t*)(buffer + bytecount);
|
||||
uint8_t *sp = (uint8_t*)self->sample_data;
|
||||
for (; bp != be; bp++) {
|
||||
for (; bp < be;) {
|
||||
*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
|
||||
// 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) {
|
||||
// For 8-bit mono, 4 copies of the final sample are required
|
||||
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
|
||||
self->hold_value = 0x00010001 * *(uint16_t*)(buffer-2);
|
||||
}
|
||||
}
|
||||
|
||||
// Emulate pausing and stopping by filling the DMA buffer with copies 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)) {
|
||||
return;
|
||||
}
|
||||
NRF_I2S->TASKS_STOP = 1;
|
||||
NRF_I2S->ENABLE = I2S_ENABLE_ENABLE_Disabled;
|
||||
reset_pin_number(self->bit_clock_pin_number);
|
||||
self->bit_clock_pin_number = 0xff;
|
||||
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;
|
||||
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,
|
||||
&self->channel_count);
|
||||
self->single_buffer = single_buffer;
|
||||
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);
|
||||
/* Allocate buffers based on a maximum duration
|
||||
* 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;
|
||||
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->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;
|
||||
uint64_t start_ticks = ticks_ms;
|
||||
uint64_t start_ticks = supervisor_ticks_ms64();
|
||||
|
||||
// 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;
|
||||
// Allow user to break out of a timeout with a KeyboardInterrupt.
|
||||
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;
|
||||
|
||||
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
|
||||
uint8_t * tx_buf = (uint8_t*) 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);
|
||||
(*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;
|
||||
}
|
||||
|
||||
@ -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));
|
||||
}
|
||||
|
||||
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) {
|
||||
return ringbuf_count(&self->rbuf);
|
||||
}
|
||||
|
@ -29,7 +29,7 @@
|
||||
#include "tick.h"
|
||||
|
||||
uint64_t common_hal_time_monotonic(void) {
|
||||
return ticks_ms;
|
||||
return supervisor_ticks_ms64();
|
||||
}
|
||||
|
||||
void common_hal_time_delay_ms(uint32_t delay) {
|
||||
|
@ -11,20 +11,33 @@ USB_SERIAL_NUMBER_LENGTH = 16
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
# Audio via PWM
|
||||
ifndef CIRCUITPY_AUDIOCORE
|
||||
CIRCUITPY_AUDIOCORE = 1
|
||||
endif
|
||||
|
||||
CIRCUITPY_AUDIOIO = 0
|
||||
|
||||
# The ifndef's allow overriding in mpconfigboard.mk.
|
||||
|
||||
ifndef CIRCUITPY_AUDIOMIXER
|
||||
CIRCUITPY_AUDIOMIXER = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_AUDIOPWMIO
|
||||
CIRCUITPY_AUDIOPWMIO = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_AUDIOBUSIO
|
||||
CIRCUITPY_AUDIOBUSIO = 1
|
||||
endif
|
||||
|
||||
# No I2CSlave implementation
|
||||
CIRCUITPY_I2CSLAVE = 0
|
||||
|
||||
# enable NVM
|
||||
CIRCUITPY_NVM = 1
|
||||
|
||||
# enable RTC
|
||||
ifndef CIRCUITPY_RTC
|
||||
CIRCUITPY_RTC = 1
|
||||
endif
|
||||
|
||||
# frequencyio not yet implemented
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
|
@ -31,12 +31,13 @@
|
||||
#include "py/mphal.h"
|
||||
#include "py/mpstate.h"
|
||||
#include "py/gc.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
/*------------------------------------------------------------------*/
|
||||
/* 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;
|
||||
while (duration < delay) {
|
||||
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))) {
|
||||
break;
|
||||
}
|
||||
duration = (ticks_ms - start_tick);
|
||||
duration = (supervisor_ticks_ms64() - start_tick);
|
||||
// TODO(tannewt): Go to sleep for a little while while we wait.
|
||||
}
|
||||
}
|
||||
|
@ -33,12 +33,11 @@
|
||||
#include "lib/utils/interrupt_char.h"
|
||||
#include "nrfx_uarte.h"
|
||||
#include "py/mpconfig.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
extern nrfx_uarte_t serial_instance;
|
||||
|
||||
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))
|
||||
|
||||
bool mp_hal_stdin_any(void);
|
||||
|
@ -26,31 +26,14 @@
|
||||
|
||||
#include "tick.h"
|
||||
|
||||
#include "supervisor/shared/autoreload.h"
|
||||
#include "supervisor/filesystem.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "shared-module/gamepad/__init__.h"
|
||||
#include "shared-bindings/microcontroller/Processor.h"
|
||||
#include "nrf.h"
|
||||
|
||||
// Global millisecond tick count
|
||||
volatile uint64_t ticks_ms = 0;
|
||||
|
||||
void SysTick_Handler(void) {
|
||||
// SysTick interrupt handler called when the SysTick timer reaches zero
|
||||
// (every millisecond).
|
||||
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
|
||||
// Do things common to all ports when the tick occurs
|
||||
supervisor_tick();
|
||||
}
|
||||
|
||||
void tick_init() {
|
||||
@ -61,11 +44,11 @@ void tick_init() {
|
||||
void tick_delay(uint32_t us) {
|
||||
uint32_t ticks_per_us = common_hal_mcu_processor_get_frequency() / 1000 / 1000;
|
||||
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 (ticks_ms == start_ms) {}
|
||||
while (supervisor_ticks_ms64() == start_ms) {}
|
||||
us -= us_between_ticks;
|
||||
start_ms = ticks_ms;
|
||||
start_ms = supervisor_ticks_ms64();
|
||||
us_between_ticks = 1000;
|
||||
}
|
||||
while (SysTick->VAL > ((us_between_ticks - us) * ticks_per_us)) {}
|
||||
@ -74,11 +57,11 @@ void tick_delay(uint32_t us) {
|
||||
// us counts down!
|
||||
void current_tick(uint64_t* ms, uint32_t* us_until_ms) {
|
||||
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;
|
||||
}
|
||||
|
||||
void wait_until(uint64_t ms, uint32_t us_until_ms) {
|
||||
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>
|
||||
|
||||
extern volatile uint64_t ticks_ms;
|
||||
|
||||
extern struct timer_descriptor ms_timer;
|
||||
|
||||
void tick_init(void);
|
||||
|
@ -36,6 +36,7 @@
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
STATIC bool reserved_i2c[3];
|
||||
STATIC bool never_reset[3];
|
||||
|
||||
void i2c_reset(void) {
|
||||
//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();
|
||||
#endif
|
||||
#ifdef I2C3
|
||||
reserved_i2c[3] = false;
|
||||
reserved_i2c[2] = false;
|
||||
__HAL_RCC_I2C3_CLK_DISABLE();
|
||||
#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,
|
||||
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
|
||||
if(self->handle.Instance==I2C1) {
|
||||
reserved_i2c[0] = 0;
|
||||
never_reset[0] = false;
|
||||
reserved_i2c[0] = false;
|
||||
__HAL_RCC_I2C1_CLK_DISABLE();
|
||||
}
|
||||
#endif
|
||||
#ifdef I2C2
|
||||
if(self->handle.Instance==I2C2) {
|
||||
reserved_i2c[1] = 0;
|
||||
never_reset[1] = false;
|
||||
reserved_i2c[1] = false;
|
||||
__HAL_RCC_I2C2_CLK_DISABLE();
|
||||
}
|
||||
#endif
|
||||
#ifdef I2C3
|
||||
if(self->handle.Instance==I2C3) {
|
||||
reserved_i2c[3] = 0;
|
||||
never_reset[2] = false;
|
||||
reserved_i2c[2] = false;
|
||||
__HAL_RCC_I2C3_CLK_DISABLE();
|
||||
}
|
||||
#endif
|
||||
|
@ -36,46 +36,37 @@
|
||||
#include "supervisor/shared/translate.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
|
||||
STATIC bool reserved_spi[6];
|
||||
STATIC bool never_reset_spi[6];
|
||||
#define MAX_SPI 6 //TODO; replace this as part of periph cleanup
|
||||
#define ALL_CLOCKS 0xFF
|
||||
|
||||
void spi_reset(void) {
|
||||
#ifdef SPI1
|
||||
if(!never_reset_spi[0]) {
|
||||
reserved_spi[0] = false;
|
||||
__HAL_RCC_SPI1_CLK_DISABLE();
|
||||
}
|
||||
#endif
|
||||
//arrays use 0 based numbering: SPI1 is stored at index 0
|
||||
STATIC bool reserved_spi[MAX_SPI];
|
||||
STATIC bool never_reset_spi[MAX_SPI];
|
||||
|
||||
STATIC void spi_clock_enable(uint8_t mask);
|
||||
STATIC void spi_clock_disable(uint8_t mask);
|
||||
|
||||
STATIC uint32_t get_busclock(SPI_TypeDef * instance) {
|
||||
//SPI2 and 3 are on PCLK1, if they exist.
|
||||
#ifdef SPI2
|
||||
if(!never_reset_spi[1]) {
|
||||
reserved_spi[1] = false;
|
||||
__HAL_RCC_SPI2_CLK_DISABLE();
|
||||
}
|
||||
if(instance == SPI2) return HAL_RCC_GetPCLK1Freq();
|
||||
#endif
|
||||
#ifdef SPI3
|
||||
if(!never_reset_spi[2]) {
|
||||
reserved_spi[2] = false;
|
||||
__HAL_RCC_SPI3_CLK_DISABLE();
|
||||
}
|
||||
if(instance == SPI3) return HAL_RCC_GetPCLK1Freq();
|
||||
#endif
|
||||
#ifdef SPI4
|
||||
if(!never_reset_spi[3]) {
|
||||
reserved_spi[3] = false;
|
||||
__HAL_RCC_SPI4_CLK_DISABLE();
|
||||
return HAL_RCC_GetPCLK2Freq();
|
||||
}
|
||||
|
||||
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
|
||||
#ifdef SPI6
|
||||
if(!never_reset_spi[5]) {
|
||||
reserved_spi[5] = false;
|
||||
__HAL_RCC_SPI6_CLK_DISABLE();
|
||||
}
|
||||
#endif
|
||||
spi_clock_disable(ALL_CLOCKS & ~(never_reset_mask));
|
||||
}
|
||||
|
||||
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;
|
||||
HAL_GPIO_Init(pin_port(miso->port), &GPIO_InitStruct);
|
||||
|
||||
#ifdef SPI1
|
||||
if(SPIx==SPI1) {
|
||||
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
|
||||
spi_clock_enable(1<<(self->sck->spi_index - 1));
|
||||
reserved_spi[self->sck->spi_index - 1] = true;
|
||||
|
||||
self->handle.Instance = SPIx;
|
||||
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"));
|
||||
}
|
||||
self->baudrate = (HAL_RCC_GetPCLK2Freq()/16);
|
||||
self->baudrate = (get_busclock(SPIx)/16);
|
||||
self->prescaler = 16;
|
||||
self->polarity = 0;
|
||||
self->phase = 1;
|
||||
self->phase = 0;
|
||||
self->bits = 8;
|
||||
|
||||
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) {
|
||||
#ifdef SPI1
|
||||
if(self->handle.Instance==SPI1) {
|
||||
reserved_spi[0] = 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
|
||||
spi_clock_disable(1<<(self->sck->spi_index - 1));
|
||||
reserved_spi[self->sck->spi_index - 1] = false;
|
||||
never_reset_spi[self->sck->spi_index - 1] = false;
|
||||
|
||||
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->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;
|
||||
}
|
||||
|
||||
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] = {
|
||||
{2,SPI_BAUDRATEPRESCALER_2},
|
||||
{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;
|
||||
do {
|
||||
divisor = baud_map[i][0];
|
||||
if (baudrate >= (HAL_RCC_GetPCLK2Freq()/divisor)) {
|
||||
if (baudrate >= (busclock/divisor)) {
|
||||
*prescaler = divisor;
|
||||
return baud_map[i][1];
|
||||
}
|
||||
@ -312,28 +237,12 @@ bool common_hal_busio_spi_configure(busio_spi_obj_t *self,
|
||||
//Deinit SPI
|
||||
HAL_SPI_DeInit(&self->handle);
|
||||
|
||||
if (bits == 8) {
|
||||
self->handle.Init.DataSize = SPI_DATASIZE_8BIT;
|
||||
} else if (bits == 16) {
|
||||
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.DataSize = (bits == 16) ? SPI_DATASIZE_16BIT : SPI_DATASIZE_8BIT;
|
||||
self->handle.Init.CLKPolarity = (polarity) ? SPI_POLARITY_HIGH : SPI_POLARITY_LOW;
|
||||
self->handle.Init.CLKPhase = (phase) ? SPI_PHASE_2EDGE : SPI_PHASE_1EDGE;
|
||||
|
||||
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.Direction = SPI_DIRECTION_2LINES;
|
||||
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) {
|
||||
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;
|
||||
uint64_t start_ticks = ticks_ms;
|
||||
uint64_t start_ticks = supervisor_ticks_ms64();
|
||||
|
||||
// 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;
|
||||
//restart if it failed in the callback
|
||||
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
|
||||
|
||||
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;
|
||||
}
|
||||
HAL_UART_Receive_IT(&self->handle, &self->rx_char, 1);
|
||||
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;
|
||||
}
|
||||
|
||||
@ -360,6 +362,14 @@ void common_hal_busio_uart_set_baudrate(busio_uart_obj_t *self, uint32_t baudrat
|
||||
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) {
|
||||
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.Mode = GPIO_MODE_INPUT;
|
||||
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);
|
||||
|
||||
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.Mode = GPIO_MODE_INPUT;
|
||||
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);
|
||||
|
||||
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_MODE_OUTPUT_OD : GPIO_MODE_OUTPUT_PP);
|
||||
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);
|
||||
}
|
||||
|
||||
|
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 micros, sys_cycles;
|
||||
do {
|
||||
micros = ticks_ms;
|
||||
micros = supervisor_ticks_ms32();
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,8 @@
|
||||
#include "shared-bindings/neopixel_write/__init__.h"
|
||||
|
||||
#include "tick.h"
|
||||
#include "py/mperrno.h"
|
||||
#include "py/runtime.h"
|
||||
#include "common-hal/microcontroller/Pin.h"
|
||||
#include "stm32f4xx_hal.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_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,
|
||||
uint32_t numBytes) {
|
||||
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
|
||||
//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 interval = sys_freq/MAGIC_800_INT;
|
||||
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();
|
||||
// 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;
|
||||
DWT->CTRL |= DWT_CTRL_CYCCNTENA_Msk;
|
||||
DWT->CYCCNT = 0;
|
||||
|
||||
for(;;) {
|
||||
cyc = (pix & mask) ? t1 : t0;
|
||||
start = DWT->CYCCNT;
|
||||
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);
|
||||
while((DWT->CYCCNT - start) < interval);
|
||||
if(!(mask >>= 1)) {
|
||||
if(p >= end) break;
|
||||
pix = *p++;
|
||||
mask = 0x80;
|
||||
}
|
||||
while(DWT->CYCCNT - start < interval); //wait for interval to finish
|
||||
}
|
||||
|
||||
// Enable interrupts again
|
||||
@ -94,3 +98,5 @@ void common_hal_neopixel_write (const digitalio_digitalinout_obj_t* digitalinout
|
||||
next_start_tick_us -= 100;
|
||||
}
|
||||
}
|
||||
|
||||
#pragma GCC pop_options
|
@ -29,7 +29,7 @@
|
||||
#include "tick.h"
|
||||
|
||||
uint64_t common_hal_time_monotonic(void) {
|
||||
return ticks_ms;
|
||||
return supervisor_ticks_ms64();
|
||||
}
|
||||
|
||||
void common_hal_time_delay_ms(uint32_t delay) {
|
||||
|
@ -15,18 +15,59 @@ LONGINT_IMPL = MPZ
|
||||
#Reduced feature set for early port
|
||||
CIRCUITPY_MINIMAL_BUILD = 1
|
||||
|
||||
# The ifndef's allow overriding in mpconfigboard.mk.
|
||||
|
||||
ifndef CIRCUITPY_BOARD
|
||||
CIRCUITPY_BOARD = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_DIGITALIO
|
||||
CIRCUITPY_DIGITALIO = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_ANALOGIO
|
||||
CIRCUITPY_ANALOGIO = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_MICROCONTROLLER
|
||||
CIRCUITPY_MICROCONTROLLER = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_BUSIO
|
||||
CIRCUITPY_BUSIO = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_PULSEIO
|
||||
CIRCUITPY_PULSEIO = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_OS
|
||||
CIRCUITPY_OS = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_STORAGE
|
||||
CIRCUITPY_STORAGE = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_RANDOM
|
||||
CIRCUITPY_RANDOM = 1
|
||||
endif
|
||||
|
||||
ifndef CRICUITPY_USB_HID
|
||||
CIRCUITPY_USB_HID = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_USB_MIDI
|
||||
CIRCUITPY_USB_MIDI = 1
|
||||
endif
|
||||
|
||||
ifndef CIRCUITPY_NEOPIXEL_WRITE
|
||||
CIRCUITPY_NEOPIXEL_WRITE = 1
|
||||
endif
|
||||
|
||||
ifndef
|
||||
CIRCUITPY_DISPLAYIO = 1
|
||||
endif
|
||||
|
||||
#ifeq ($(MCU_SUB_VARIANT), stm32f412zx)
|
||||
#endif
|
||||
|
@ -31,11 +31,13 @@
|
||||
#include "py/mpstate.h"
|
||||
#include "py/gc.h"
|
||||
|
||||
#include "supervisor/shared/tick.h"
|
||||
|
||||
/*------------------------------------------------------------------*/
|
||||
/* 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;
|
||||
while (duration < delay) {
|
||||
#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))) {
|
||||
break;
|
||||
}
|
||||
duration = (ticks_ms - start_tick);
|
||||
duration = (supervisor_ticks_ms64() - start_tick);
|
||||
// TODO(tannewt): Go to sleep for a little while while we wait.
|
||||
}
|
||||
}
|
||||
|
@ -32,10 +32,10 @@
|
||||
|
||||
#include "lib/utils/interrupt_char.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))
|
||||
|
||||
bool mp_hal_stdin_any(void);
|
||||
|
@ -26,37 +26,23 @@
|
||||
|
||||
#include "tick.h"
|
||||
|
||||
#include "supervisor/shared/autoreload.h"
|
||||
#include "supervisor/filesystem.h"
|
||||
#include "shared-module/gamepad/__init__.h"
|
||||
#include "supervisor/shared/tick.h"
|
||||
#include "shared-bindings/microcontroller/Processor.h"
|
||||
|
||||
#include "stm32f4xx.h"
|
||||
|
||||
// Global millisecond tick count
|
||||
volatile uint64_t ticks_ms = 0;
|
||||
|
||||
void SysTick_Handler(void) {
|
||||
// SysTick interrupt handler called when the SysTick timer reaches zero
|
||||
// (every millisecond).
|
||||
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
|
||||
// Do things common to all ports when the tick occurs
|
||||
supervisor_tick();
|
||||
}
|
||||
|
||||
uint32_t HAL_GetTick(void) //override ST HAL
|
||||
{
|
||||
return (uint32_t)ticks_ms;
|
||||
return (uint32_t)supervisor_ticks_ms32();
|
||||
}
|
||||
|
||||
void tick_init() {
|
||||
@ -72,11 +58,11 @@ void tick_init() {
|
||||
void tick_delay(uint32_t us) {
|
||||
uint32_t ticks_per_us = SystemCoreClock / 1000 / 1000;
|
||||
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 (ticks_ms == start_ms) {}
|
||||
while (supervisor_ticks_ms64() == start_ms) {}
|
||||
us -= us_between_ticks;
|
||||
start_ms = ticks_ms;
|
||||
start_ms = supervisor_ticks_ms64();
|
||||
us_between_ticks = 1000;
|
||||
}
|
||||
while (SysTick->VAL > ((us_between_ticks - us) * ticks_per_us)) {}
|
||||
@ -85,11 +71,11 @@ void tick_delay(uint32_t us) {
|
||||
// us counts down!
|
||||
void current_tick(uint64_t* ms, uint32_t* us_until_ms) {
|
||||
uint32_t ticks_per_us = SystemCoreClock / 1000 / 1000;
|
||||
*ms = ticks_ms;
|
||||
*ms = supervisor_ticks_ms32();
|
||||
*us_until_ms = SysTick->VAL / ticks_per_us;
|
||||
}
|
||||
|
||||
void wait_until(uint64_t ms, uint32_t us_until_ms) {
|
||||
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>
|
||||
|
||||
extern volatile uint64_t ticks_ms;
|
||||
|
||||
extern struct timer_descriptor ms_timer;
|
||||
|
||||
void tick_init(void);
|
||||
|
@ -28,11 +28,12 @@
|
||||
// sure that the same feature set and settings are used, such as in atmel-samd
|
||||
// and nrf.
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
#ifndef __INCLUDED_MPCONFIG_CIRCUITPY_H
|
||||
#define __INCLUDED_MPCONFIG_CIRCUITPY_H
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdatomic.h>
|
||||
|
||||
// This is CircuitPython.
|
||||
#define CIRCUITPY 1
|
||||
|
||||
@ -652,17 +653,19 @@ extern const struct _mp_obj_module_t ustack_module;
|
||||
FLASH_ROOT_POINTERS \
|
||||
NETWORK_ROOT_POINTERS \
|
||||
|
||||
void run_background_tasks(void);
|
||||
#define RUN_BACKGROUND_TASKS (run_background_tasks())
|
||||
void supervisor_run_background_tasks_if_tick(void);
|
||||
#define RUN_BACKGROUND_TASKS (supervisor_run_background_tasks_if_tick())
|
||||
|
||||
// TODO: Used in wiznet5k driver, but may not be needed in the long run.
|
||||
#define MICROPY_THREAD_YIELD()
|
||||
|
||||
#define MICROPY_VM_HOOK_LOOP run_background_tasks();
|
||||
#define MICROPY_VM_HOOK_RETURN run_background_tasks();
|
||||
#define MICROPY_VM_HOOK_LOOP RUN_BACKGROUND_TASKS;
|
||||
#define MICROPY_VM_HOOK_RETURN RUN_BACKGROUND_TASKS;
|
||||
|
||||
#define CIRCUITPY_AUTORELOAD_DELAY_MS 500
|
||||
#define CIRCUITPY_FILESYSTEM_FLUSH_INTERVAL_MS 1000
|
||||
#define CIRCUITPY_BOOT_OUTPUT_FILE "/boot_out.txt"
|
||||
|
||||
#define CIRCUITPY_VERBOSE_BLE 0
|
||||
|
||||
#endif // __INCLUDED_MPCONFIG_CIRCUITPY_H
|
||||
|
@ -170,7 +170,7 @@ CIRCUITPY_NEOPIXEL_WRITE = $(CIRCUITPY_DEFAULT_BUILD)
|
||||
endif
|
||||
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
|
||||
CIRCUITPY_NETWORK = 0
|
||||
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]);
|
||||
if (attr == MP_QSTR_bytecode) {
|
||||
*emit_options = MP_EMIT_OPT_BYTECODE;
|
||||
#if MICROPY_EMIT_NATIVE
|
||||
// @micropython.native decorator.
|
||||
} 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;
|
||||
#else
|
||||
return true;
|
||||
#endif
|
||||
#if MICROPY_EMIT_NATIVE
|
||||
// @micropython.viper decorator.
|
||||
} else if (attr == MP_QSTR_viper) {
|
||||
*emit_options = MP_EMIT_OPT_VIPER;
|
||||
#endif
|
||||
#endif
|
||||
#if MICROPY_EMIT_INLINE_ASM
|
||||
// @micropython.asm_thumb decorator.
|
||||
} else if (attr == ASM_DECORATOR_QSTR) {
|
||||
*emit_options = MP_EMIT_OPT_ASM;
|
||||
#endif
|
||||
|
10
py/gc.c
10
py/gc.c
@ -53,9 +53,6 @@
|
||||
// detect untraced object still in use
|
||||
#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
|
||||
// 0b00 = FREE -- free block
|
||||
// 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;
|
||||
}
|
||||
|
||||
// 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
|
||||
#if DEBUG_PRINT
|
||||
#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 "py/mpconfig.h"
|
||||
#include "py/mpstate.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_deinit(void);
|
||||
|
||||
|
@ -126,6 +126,11 @@ mp_obj_t make_obj_long_lived(mp_obj_t obj, uint8_t max_depth){
|
||||
if (obj == NULL) {
|
||||
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)) {
|
||||
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));
|
||||
|
@ -103,14 +103,10 @@ def compute_huffman_coding(translations, qstrs, compression_filename):
|
||||
# go through each qstr and print it out
|
||||
for _, _, qstr in qstrs.values():
|
||||
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)
|
||||
# add other values
|
||||
for i in range(256):
|
||||
if i not in counts:
|
||||
counts[i] = 0
|
||||
cb = huffman.codebook(counts.items())
|
||||
values = bytearray()
|
||||
values = []
|
||||
length_count = {}
|
||||
renumbered = 0
|
||||
last_l = None
|
||||
@ -124,26 +120,27 @@ def compute_huffman_coding(translations, qstrs, compression_filename):
|
||||
if last_l:
|
||||
renumbered <<= (l - last_l)
|
||||
canonical[ch] = '{0:0{width}b}'.format(renumbered, width=l)
|
||||
if chr(ch) in C_ESCAPES:
|
||||
s = C_ESCAPES[chr(ch)]
|
||||
else:
|
||||
s = chr(ch)
|
||||
print("//", ch, s, counts[ch], canonical[ch], renumbered)
|
||||
s = C_ESCAPES.get(ch, ch)
|
||||
print("//", ord(ch), s, counts[ch], canonical[ch], renumbered)
|
||||
renumbered += 1
|
||||
last_l = l
|
||||
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))
|
||||
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)
|
||||
values_type = "uint16_t" if max(ord(u) for u in values) > 255 else "uint8_t"
|
||||
with open(compression_filename, "w") as f:
|
||||
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
|
||||
|
||||
def decompress(encoding_table, length, encoded):
|
||||
values, lengths = encoding_table
|
||||
#print(l, encoded)
|
||||
dec = bytearray(length)
|
||||
dec = []
|
||||
this_byte = 0
|
||||
this_bit = 7
|
||||
b = encoded[this_byte]
|
||||
@ -173,14 +170,14 @@ def decompress(encoding_table, length, encoded):
|
||||
searched_length += lengths[bit_length]
|
||||
|
||||
v = values[searched_length + bits - max_code]
|
||||
dec[i] = v
|
||||
return dec
|
||||
dec.append(v)
|
||||
return ''.join(dec)
|
||||
|
||||
def compress(encoding_table, decompressed):
|
||||
if not isinstance(decompressed, bytes):
|
||||
if not isinstance(decompressed, str):
|
||||
raise TypeError()
|
||||
values, lengths = encoding_table
|
||||
enc = bytearray(len(decompressed) * 2)
|
||||
enc = bytearray(len(decompressed) * 3)
|
||||
#print(decompressed)
|
||||
#print(lengths)
|
||||
current_bit = 7
|
||||
@ -228,7 +225,7 @@ def compress(encoding_table, decompressed):
|
||||
if current_bit != 7:
|
||||
current_byte += 1
|
||||
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]
|
||||
|
||||
def qstr_escape(qst):
|
||||
@ -347,9 +344,9 @@ def print_qstr_data(encoding_table, qcfgs, qstrs, i18ns):
|
||||
total_text_compressed_size = 0
|
||||
for original, translation in i18ns:
|
||||
translation_encoded = translation.encode("utf-8")
|
||||
compressed = compress(encoding_table, translation_encoded)
|
||||
compressed = compress(encoding_table, translation)
|
||||
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:
|
||||
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))
|
||||
|
@ -31,8 +31,6 @@
|
||||
|
||||
#include "extmod/vfs.h"
|
||||
|
||||
// #include "py/mpstate.h"
|
||||
// #include "py/nlr.h"
|
||||
#include "py/parsenum.h"
|
||||
#include "py/compile.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
|
||||
//| 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 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.
|
||||
@ -321,7 +324,7 @@ const mp_obj_property_t bleio_adapter_connections_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.
|
||||
//|
|
||||
@ -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) {
|
||||
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[] = {
|
||||
{ MP_QSTR_address, 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_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)) {
|
||||
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);
|
||||
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);
|
||||
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user