Merge remote-tracking branch 'adafruit/master' into ble-pairing
This commit is contained in:
commit
ee518b9141
17
.travis.yml
17
.travis.yml
@ -21,11 +21,11 @@ git:
|
||||
# that SDK is shortest and add it there. In the case of major re-organizations,
|
||||
# just try to make the builds "about equal in run time"
|
||||
env:
|
||||
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="circuitplayground_express mini_sam_m4 grandcentral_m4_express capablerobot_usbhub pygamer pca10056 pca10059 feather_nrf52840_express makerdiary_nrf52840_mdk makerdiary_nrf52840_mdk_usb_dongle particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini electronut_labs_papyr electronut_labs_blip" TRAVIS_SDK=arm:nrf
|
||||
- TRAVIS_TESTS="unix docs translations website" TRAVIS_BOARDS="trinket_m0_haxpress circuitplayground_express mini_sam_m4 grandcentral_m4_express capablerobot_usbhub pygamer pca10056 pca10059 feather_nrf52840_express makerdiary_nrf52840_mdk makerdiary_nrf52840_mdk_usb_dongle particle_boron particle_argon particle_xenon sparkfun_nrf52840_mini electronut_labs_papyr electronut_labs_blip" TRAVIS_SDK=arm:nrf
|
||||
- TRAVIS_BOARDS="metro_m0_express metro_m4_express metro_m4_airlift_lite pirkey_m0 trellis_m4_express trinket_m0 sparkfun_lumidrive sparkfun_redboard_turbo bast_pro_mini_m0 datum_distance pyruler" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow sam32 uchip escornabot_makech pygamer_advance datum_imu" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero pewpew10 kicksat-sprite ugame10 robohatmm1 datum_light" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick pyportal sparkfun_samd21_mini sparkfun_samd21_dev pybadge pybadge_airlift datum_weather" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="cp32-m4 feather_radiofruit_zigbee gemma_m0 hallowing_m0_express itsybitsy_m0_express itsybitsy_m4_express meowmeow sam32 uchip escornabot_makech pygamer_advance datum_imu" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="feather_m0_supersized feather_m0_express_crickit feather_m0_rfm69 feather_m0_rfm9x feather_m4_express arduino_zero arduino_mkr1300 arduino_mkrzero pewpew10 kicksat-sprite ugame10 robohatmm1_m0 robohatmm1_m4 datum_light" TRAVIS_SDK=arm
|
||||
- TRAVIS_BOARDS="datalore_ip_m4 circuitplayground_express_crickit feather_m0_adalogger feather_m0_basic feather_m0_express catwan_usbstick pyportal sparkfun_samd21_mini sparkfun_samd21_dev pybadge pybadge_airlift datum_weather" TRAVIS_SDK=arm
|
||||
|
||||
addons:
|
||||
artifacts:
|
||||
@ -71,7 +71,6 @@ before_script:
|
||||
- function var_search () { case "$1" in *$2*) true;; *) false;; esac; }
|
||||
- sudo dpkg --add-architecture i386
|
||||
|
||||
|
||||
- (! var_search "${TRAVIS_SDK-}" arm || (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))
|
||||
|
||||
# For huzzah builds
|
||||
@ -80,12 +79,16 @@ before_script:
|
||||
|
||||
# For coverage testing (upgrade is used to get latest urllib3 version)
|
||||
- sudo apt-get install -y python3-pip
|
||||
- pip3 install --user sh click
|
||||
- pip3 install --user sh click setuptools
|
||||
- ([[ -z "$TRAVIS_TESTS" ]] || sudo pip install --upgrade cpp-coveralls)
|
||||
- (! var_search "${TRAVIS_TESTS-}" docs || sudo apt-get install -y librsvg2-bin)
|
||||
- (! var_search "${TRAVIS_TESTS-}" docs || pip install --user Sphinx sphinx-rtd-theme recommonmark sphinxcontrib-svg2pdfconverter)
|
||||
- (! var_search "${TRAVIS_TESTS-}" docs || pip3 install --user Sphinx sphinx-rtd-theme recommonmark sphinxcontrib-svg2pdfconverter)
|
||||
- (! var_search "${TRAVIS_TESTS-}" translations || pip3 install --user polib)
|
||||
|
||||
# Check if there's any board missing in TRAVIS_BOARDS
|
||||
- cd tools && python3 -u travis_new_boards_check.py
|
||||
- cd ..
|
||||
|
||||
# report some good version numbers to the build
|
||||
- gcc --version
|
||||
- (! var_search "${TRAVIS_SDK-}" arm || arm-none-eabi-gcc --version)
|
||||
|
20
conf.py
20
conf.py
@ -13,6 +13,7 @@
|
||||
# All configuration values have a default; values that are commented out
|
||||
# serve to show the default.
|
||||
|
||||
import json
|
||||
import sys
|
||||
import os
|
||||
|
||||
@ -24,8 +25,20 @@ from recommonmark.parser import CommonMarkParser
|
||||
sys.path.insert(0, os.path.abspath('docs'))
|
||||
sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
import shared_bindings_matrix
|
||||
|
||||
master_doc = 'docs/index'
|
||||
|
||||
# Grab the JSON values to use while building the module support matrix
|
||||
# in 'shared-bindings/index.rst'
|
||||
|
||||
#modules_support_matrix = shared_bindings_matrix.support_matrix_excluded_boards()
|
||||
modules_support_matrix = shared_bindings_matrix.support_matrix_by_board()
|
||||
|
||||
html_context = {
|
||||
'support_matrix': modules_support_matrix
|
||||
}
|
||||
|
||||
# -- General configuration ------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
@ -40,7 +53,9 @@ extensions = [
|
||||
'sphinxcontrib.rsvgconverter',
|
||||
'sphinx.ext.intersphinx',
|
||||
'sphinx.ext.todo',
|
||||
'sphinx.ext.coverage'
|
||||
'sphinx.ext.coverage',
|
||||
'rstjinja',
|
||||
'c2rst'
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
@ -49,8 +64,7 @@ templates_path = ['templates']
|
||||
# The suffix of source filenames.
|
||||
source_suffix = ['.rst', '.md', '.c', '.h']
|
||||
|
||||
source_parsers = {'.md': CommonMarkParser,
|
||||
'.c': "c2rst.CStrip", '.h': "c2rst.CStrip"}
|
||||
source_parsers = {'.md': CommonMarkParser}
|
||||
|
||||
# The encoding of source files.
|
||||
#source_encoding = 'utf-8-sig'
|
||||
|
@ -1,19 +1,31 @@
|
||||
import sphinx.parsers
|
||||
def c2rst(app, docname, source):
|
||||
""" Pre-parse '.c' & '.h' files that contain rST source.
|
||||
"""
|
||||
# Make sure we're outputting HTML
|
||||
if app.builder.format != 'html':
|
||||
return
|
||||
|
||||
class CStrip(sphinx.parsers.Parser):
|
||||
def __init__(self):
|
||||
self.rst_parser = sphinx.parsers.RSTParser()
|
||||
fname = app.env.doc2path(docname)
|
||||
if (not fname.endswith(".c") and
|
||||
not fname.endswith(".h")):
|
||||
#print("skipping:", fname)
|
||||
return
|
||||
|
||||
def parse(self, inputstring, document):
|
||||
# This setting is missing starting with Sphinx 1.7.1 so we set it ourself.
|
||||
document.settings.tab_width = 4
|
||||
document.settings.character_level_inline_markup = False
|
||||
stripped = []
|
||||
for line in inputstring.split("\n"):
|
||||
line = line.strip()
|
||||
if line == "//|":
|
||||
stripped.append("")
|
||||
elif line.startswith("//| "):
|
||||
stripped.append(line[len("//| "):])
|
||||
stripped = "\r\n".join(stripped)
|
||||
self.rst_parser.parse(stripped, document)
|
||||
src = source[0]
|
||||
|
||||
stripped = []
|
||||
for line in src.split("\n"):
|
||||
line = line.strip()
|
||||
if line == "//|":
|
||||
stripped.append("")
|
||||
elif line.startswith("//| "):
|
||||
stripped.append(line[len("//| "):])
|
||||
stripped = "\r\n".join(stripped)
|
||||
|
||||
rendered = app.builder.templates.render_string(
|
||||
stripped, app.config.html_context
|
||||
)
|
||||
source[0] = rendered
|
||||
|
||||
def setup(app):
|
||||
app.connect("source-read", c2rst)
|
||||
|
@ -5,6 +5,7 @@
|
||||
.. include:: ../templates/unsupported_in_circuitpython.inc
|
||||
|
||||
.. module:: network
|
||||
:noindex:
|
||||
:synopsis: network configuration
|
||||
|
||||
This module provides network drivers and routing configuration. To use this
|
||||
|
24
docs/rstjinja.py
Normal file
24
docs/rstjinja.py
Normal file
@ -0,0 +1,24 @@
|
||||
# Derived from code on Eric Holscher's blog, found at:
|
||||
# https://www.ericholscher.com/blog/2016/jul/25/integrating-jinja-rst-sphinx/
|
||||
|
||||
def rstjinja(app, docname, source):
|
||||
"""
|
||||
Render our pages as a jinja template for fancy templating goodness.
|
||||
"""
|
||||
# Make sure we're outputting HTML
|
||||
if app.builder.format != 'html':
|
||||
return
|
||||
|
||||
# we only want our one jinja template to run through this func
|
||||
if "shared-bindings/support_matrix" not in docname:
|
||||
return
|
||||
|
||||
src = source[0]
|
||||
print(docname)
|
||||
rendered = app.builder.templates.render_string(
|
||||
src, app.config.html_context
|
||||
)
|
||||
source[0] = rendered
|
||||
|
||||
def setup(app):
|
||||
app.connect("source-read", rstjinja)
|
244
docs/shared_bindings_matrix.py
Normal file
244
docs/shared_bindings_matrix.py
Normal file
@ -0,0 +1,244 @@
|
||||
# The MIT License (MIT)
|
||||
#
|
||||
# Copyright (c) 2019 Michael Schroeder
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
import json
|
||||
import os
|
||||
import re
|
||||
|
||||
|
||||
SUPPORTED_PORTS = ["atmel-samd", "nrf"]
|
||||
|
||||
|
||||
def parse_port_config(contents, chip_keyword=None):
|
||||
""" Compile a dictionary of port-wide module configs, which may
|
||||
be categorized by chipset.
|
||||
"""
|
||||
chip_fam = "all"
|
||||
ifeq_found = False
|
||||
port_config_results = {"all": []}
|
||||
|
||||
chip_pattern = ""
|
||||
if chip_keyword:
|
||||
chip_pattern = (
|
||||
re.compile("(?<=ifeq\s\(\$\({}\)\,)(\w+)".format(chip_keyword))
|
||||
)
|
||||
|
||||
for line in contents:
|
||||
if chip_keyword:
|
||||
if not ifeq_found:
|
||||
check_ifeq = chip_pattern.search(line)
|
||||
if check_ifeq:
|
||||
ifeq_found = True
|
||||
chip_fam = check_ifeq.group(1)
|
||||
#print("found chip:", chip_fam)
|
||||
else:
|
||||
ifeq_found = False
|
||||
chip_fam = "all"
|
||||
else:
|
||||
if "endif" in line:
|
||||
ifeq_found = False
|
||||
chip_fam = "all"
|
||||
|
||||
if "CIRCUITPY_" in line:
|
||||
if chip_fam in port_config_results:
|
||||
port_config_results[chip_fam].append(line.rstrip("\n"))
|
||||
else:
|
||||
port_config_results[chip_fam] = [line.rstrip("\n")]
|
||||
|
||||
#print(port_config_results)
|
||||
return port_config_results
|
||||
|
||||
def get_shared_bindings():
|
||||
""" Get a list of modules in shared-bindings based on folder names
|
||||
"""
|
||||
return [item for item in os.listdir("./shared-bindings")]
|
||||
|
||||
|
||||
def read_mpconfig():
|
||||
""" Open 'circuitpy_mpconfig.mk' and return the contents.
|
||||
"""
|
||||
configs = []
|
||||
with open("py/circuitpy_mpconfig.mk") as mpconfig:
|
||||
configs = mpconfig.read()
|
||||
|
||||
return configs
|
||||
|
||||
|
||||
def build_module_map():
|
||||
""" Establish the base of the JSON file, based on the contents from
|
||||
`configs`. Base will contain module names, if they're part of
|
||||
the `FULL_BUILD`, or their default value (0 | 1).
|
||||
|
||||
"""
|
||||
base = dict()
|
||||
modules = get_shared_bindings()
|
||||
configs = read_mpconfig()
|
||||
full_build = False
|
||||
for module in modules:
|
||||
full_name = module
|
||||
search_name = module.lstrip("_")
|
||||
re_pattern = "CIRCUITPY_{}\s=\s(.+)".format(search_name.upper())
|
||||
find_config = re.search(re_pattern, configs)
|
||||
#print(module, "|", find_config)
|
||||
if not find_config:
|
||||
continue
|
||||
full_build = int("FULL_BUILD" in find_config.group(0))
|
||||
#print(find_config[1])
|
||||
if not full_build:
|
||||
default_val = find_config.group(1)
|
||||
else:
|
||||
default_val = "None"
|
||||
base[search_name] = {
|
||||
"name": full_name,
|
||||
"full_build": str(full_build),
|
||||
"default_value": default_val,
|
||||
"excluded": {}
|
||||
}
|
||||
|
||||
return base
|
||||
|
||||
|
||||
def get_excluded_boards(base):
|
||||
""" Cycles through each board's `mpconfigboard.mk` file to determine
|
||||
if each module is included or not. Boards are selected by existence
|
||||
in a port listed in `SUPPORTED_PORTS` (e.g. `/port/nrf/feather_52840`)
|
||||
|
||||
Boards are further categorized by their respective chipset (SAMD21,
|
||||
SAMD51, nRF52840, etc.)
|
||||
"""
|
||||
modules = list(base.keys())
|
||||
|
||||
re_board_chip = None
|
||||
chip_keyword = None
|
||||
for port in SUPPORTED_PORTS:
|
||||
# each port appears to use its own define for the chipset
|
||||
if port in ["atmel-samd"]:
|
||||
re_board_chip = re.compile("CHIP_FAMILY\s=\s(\w+)")
|
||||
chip_keyword = "CHIP_FAMILY"
|
||||
elif port in ["nrf"]:
|
||||
re_board_chip = re.compile("MCU_VARIANT\s=\s(\w+)")
|
||||
|
||||
port_dir = "ports/{}".format(port)
|
||||
|
||||
port_config_contents = ""
|
||||
with open(os.path.join(port_dir, "mpconfigport.mk")) as port_config:
|
||||
port_config_contents = port_config.readlines()
|
||||
port_config = parse_port_config(port_config_contents, chip_keyword)
|
||||
|
||||
for entry in os.scandir(os.path.join(port_dir, "boards")):
|
||||
if not entry.is_dir():
|
||||
continue
|
||||
|
||||
contents = ""
|
||||
board_dir = os.path.join(entry.path, "mpconfigboard.mk")
|
||||
with open(board_dir) as board:
|
||||
contents = board.read()
|
||||
|
||||
board_chip = re_board_chip.search(contents)
|
||||
#print(entry.name, board_chip.group(1))
|
||||
if not board_chip:
|
||||
board_chip = "Unknown Chip"
|
||||
else:
|
||||
board_chip = board_chip.group(1)
|
||||
|
||||
# add port_config results to contents
|
||||
contents += "\n" + "\n".join(port_config["all"])
|
||||
if board_chip in port_config:
|
||||
contents += "\n" + "\n".join(port_config[board_chip])
|
||||
|
||||
for module in modules:
|
||||
board_is_excluded = False
|
||||
# check if board uses `SMALL_BUILD`. if yes, and current
|
||||
# module is marked as `FULL_BUILD`, board is excluded
|
||||
small_build = re.search("CIRCUITPY_SMALL_BUILD = 1", contents)
|
||||
if small_build and base[module]["full_build"] == "1":
|
||||
board_is_excluded = True
|
||||
# check if module is specifically disabled for this board
|
||||
re_pattern = "CIRCUITPY_{}\s=\s(\w)".format(module.upper())
|
||||
find_module = re.search(re_pattern, contents)
|
||||
if not find_module:
|
||||
# check if default inclusion is off ('0'). if the board doesn't
|
||||
# have it explicitly enabled, its excluded.
|
||||
if base[module]["default_value"] == "0":
|
||||
board_is_excluded = True
|
||||
else:
|
||||
if (find_module.group(1) == "0" and
|
||||
find_module.group(1) != base[module]["default_value"]):
|
||||
board_is_excluded = True
|
||||
|
||||
if board_is_excluded:
|
||||
if board_chip in base[module]["excluded"]:
|
||||
base[module]["excluded"][board_chip].append(entry.name)
|
||||
else:
|
||||
base[module]["excluded"][board_chip] = [entry.name]
|
||||
#print(json.dumps(base, indent=2))
|
||||
return base
|
||||
|
||||
|
||||
def support_matrix_excluded_boards():
|
||||
""" Compiles a list of available modules, and which board definitions
|
||||
do not include them.
|
||||
"""
|
||||
base = build_module_map()
|
||||
|
||||
return get_excluded_boards(base)
|
||||
|
||||
def support_matrix_by_board():
|
||||
""" Compiles a list of the available core modules available for each
|
||||
board.
|
||||
"""
|
||||
base = build_module_map()
|
||||
base_with_exclusions = get_excluded_boards(base)
|
||||
|
||||
boards = dict()
|
||||
for port in SUPPORTED_PORTS:
|
||||
port_dir = "ports/{}/boards".format(port)
|
||||
for entry in os.scandir(port_dir):
|
||||
if not entry.is_dir():
|
||||
continue
|
||||
board_modules = []
|
||||
|
||||
board_name = entry.name
|
||||
board_contents = ""
|
||||
with open(os.path.join(entry.path, "mpconfigboard.h")) as get_name:
|
||||
board_contents = get_name.read()
|
||||
board_name_re = re.search("(?<=MICROPY_HW_BOARD_NAME)\s+(.+)",
|
||||
board_contents)
|
||||
if board_name_re:
|
||||
board_name = board_name_re.group(1).strip('"')
|
||||
|
||||
for module in base_with_exclusions.keys():
|
||||
#print(module)
|
||||
board_has_module = True
|
||||
if base_with_exclusions[module]["excluded"]:
|
||||
for port in base_with_exclusions[module]["excluded"].values():
|
||||
#print(port)
|
||||
if entry.name in port:
|
||||
board_has_module = False
|
||||
|
||||
if board_has_module:
|
||||
board_modules.append(base_with_exclusions[module]["name"])
|
||||
boards[board_name] = sorted(board_modules)
|
||||
|
||||
#print(json.dumps(boards, indent=2))
|
||||
return boards
|
45
locale/ID.po
45
locale/ID.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\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"
|
||||
@ -472,11 +472,11 @@ msgstr ""
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Tidak dapat menginisialisasi UART"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr ""
|
||||
|
||||
@ -493,7 +493,7 @@ msgstr "DAC sudah digunakan"
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr ""
|
||||
|
||||
@ -712,6 +712,10 @@ msgstr ""
|
||||
msgid "Function requires lock"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr ""
|
||||
@ -768,7 +772,7 @@ msgstr "Ukuran buffer tidak valid"
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
msgstr ""
|
||||
|
||||
@ -776,11 +780,11 @@ msgstr ""
|
||||
msgid "Invalid direction."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
|
||||
@ -822,11 +826,11 @@ msgstr ""
|
||||
msgid "Invalid run mode."
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid voice count"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr ""
|
||||
|
||||
@ -1071,7 +1075,7 @@ msgstr ""
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr "SDA atau SCL membutuhkan pull up"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr ""
|
||||
|
||||
@ -1143,19 +1147,19 @@ msgid ""
|
||||
"exit safe mode.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
@ -1261,7 +1265,7 @@ msgstr "Baudrate tidak didukung"
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr "Baudrate tidak didukung"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr ""
|
||||
|
||||
@ -1277,7 +1281,7 @@ msgstr ""
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr ""
|
||||
|
||||
@ -1404,7 +1408,7 @@ msgstr ""
|
||||
msgid "bits must be 8"
|
||||
msgstr "bits harus memilki nilai 8"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr ""
|
||||
|
||||
@ -1417,7 +1421,7 @@ msgstr ""
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr ""
|
||||
|
||||
@ -1780,7 +1784,8 @@ msgstr "argumen keyword ekstra telah diberikan"
|
||||
msgid "extra positional arguments given"
|
||||
msgstr "argumen posisi ekstra telah diberikan"
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -2325,7 +2330,7 @@ msgstr ""
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\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"
|
||||
@ -462,11 +462,11 @@ msgstr ""
|
||||
msgid "Could not initialize UART"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr ""
|
||||
|
||||
@ -483,7 +483,7 @@ msgstr ""
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr ""
|
||||
|
||||
@ -697,6 +697,10 @@ msgstr ""
|
||||
msgid "Function requires lock"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr ""
|
||||
@ -753,7 +757,7 @@ msgstr ""
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
msgstr ""
|
||||
|
||||
@ -761,11 +765,11 @@ msgstr ""
|
||||
msgid "Invalid direction."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
|
||||
@ -807,11 +811,11 @@ msgstr ""
|
||||
msgid "Invalid run mode."
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid voice count"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr ""
|
||||
|
||||
@ -1051,7 +1055,7 @@ msgstr ""
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr ""
|
||||
|
||||
@ -1120,19 +1124,19 @@ msgid ""
|
||||
"exit safe mode.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
@ -1237,7 +1241,7 @@ msgstr ""
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr ""
|
||||
|
||||
@ -1253,7 +1257,7 @@ msgstr ""
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr ""
|
||||
|
||||
@ -1371,7 +1375,7 @@ msgstr ""
|
||||
msgid "bits must be 8"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,7 +1388,7 @@ msgstr ""
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr ""
|
||||
|
||||
@ -1746,7 +1750,8 @@ msgstr ""
|
||||
msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -2289,7 +2294,7 @@ msgstr ""
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||
"Last-Translator: Pascal Deneaux\n"
|
||||
"Language-Team: Sebastian Plamauer, Pascal Deneaux\n"
|
||||
@ -466,11 +466,11 @@ msgstr "Konnte ble_uuid nicht decodieren. Status: 0x%04x"
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Konnte UART nicht initialisieren"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr "Konnte first buffer nicht zuteilen"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr "Konnte second buffer nicht zuteilen"
|
||||
|
||||
@ -487,7 +487,7 @@ msgstr "DAC wird schon benutzt"
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr "Data 0 pin muss am Byte ausgerichtet sein"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr ""
|
||||
|
||||
@ -701,6 +701,10 @@ msgstr ""
|
||||
msgid "Function requires lock"
|
||||
msgstr "Die Funktion erwartet, dass der 'lock'-Befehl zuvor ausgeführt wurde"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr "Gruppe voll"
|
||||
@ -759,7 +763,7 @@ msgstr "Ungültige Puffergröße"
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
msgstr "Ungültige Anzahl von Kanälen"
|
||||
|
||||
@ -767,11 +771,11 @@ msgstr "Ungültige Anzahl von Kanälen"
|
||||
msgid "Invalid direction."
|
||||
msgstr "Ungültige Richtung"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr "Ungültige Datei"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Ungültige format chunk size"
|
||||
|
||||
@ -813,11 +817,11 @@ msgstr "Ungültige Polarität"
|
||||
msgid "Invalid run mode."
|
||||
msgstr "Ungültiger Ausführungsmodus"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid voice count"
|
||||
msgstr "Ungültige Anzahl von Stimmen"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Ungültige wave Datei"
|
||||
|
||||
@ -1068,7 +1072,7 @@ msgstr "Sicherheitsmodus aktiv! Gespeicherter Code wird nicht ausgeführt\n"
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr "SDA oder SCL brauchen pull up"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr "Abtastrate muss positiv sein"
|
||||
|
||||
@ -1149,19 +1153,19 @@ msgstr ""
|
||||
"Die Reset-Taste wurde beim Booten von CircuitPython gedrückt. Drücke sie "
|
||||
"erneut um den abgesicherten Modus zu verlassen. \n"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
@ -1268,7 +1272,7 @@ msgstr "Baudrate wird nicht unterstützt"
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr "Nicht unterstützter display bus type"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr "Nicht unterstütztes Format"
|
||||
|
||||
@ -1284,7 +1288,7 @@ msgstr "Nicht unterstützter Pull-Wert"
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr "Viper-Funktionen unterstützen derzeit nicht mehr als 4 Argumente"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr "Voice index zu hoch"
|
||||
|
||||
@ -1411,7 +1415,7 @@ msgstr "bits muss 7, 8 oder 9 sein"
|
||||
msgid "bits must be 8"
|
||||
msgstr "bits müssen 8 sein"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr "Es müssen 8 oder 16 bits_per_sample sein"
|
||||
|
||||
@ -1424,7 +1428,7 @@ msgstr "Zweig ist außerhalb der Reichweite"
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr "buf ist zu klein. brauche %d Bytes"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr "Puffer muss ein bytes-artiges Objekt sein"
|
||||
|
||||
@ -1786,7 +1790,8 @@ msgstr "Es wurden zusätzliche Keyword-Argumente angegeben"
|
||||
msgid "extra positional arguments given"
|
||||
msgstr "Es wurden zusätzliche Argumente ohne Keyword angegeben"
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "Die Datei muss eine im Byte-Modus geöffnete Datei sein"
|
||||
|
||||
@ -2338,7 +2343,7 @@ msgstr ""
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -462,11 +462,11 @@ msgstr ""
|
||||
msgid "Could not initialize UART"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr ""
|
||||
|
||||
@ -483,7 +483,7 @@ msgstr ""
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr ""
|
||||
|
||||
@ -697,6 +697,10 @@ msgstr ""
|
||||
msgid "Function requires lock"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr ""
|
||||
@ -753,7 +757,7 @@ msgstr ""
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
msgstr ""
|
||||
|
||||
@ -761,11 +765,11 @@ msgstr ""
|
||||
msgid "Invalid direction."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
|
||||
@ -807,11 +811,11 @@ msgstr ""
|
||||
msgid "Invalid run mode."
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid voice count"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr ""
|
||||
|
||||
@ -1051,7 +1055,7 @@ msgstr ""
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr ""
|
||||
|
||||
@ -1120,19 +1124,19 @@ msgid ""
|
||||
"exit safe mode.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
@ -1237,7 +1241,7 @@ msgstr ""
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr ""
|
||||
|
||||
@ -1253,7 +1257,7 @@ msgstr ""
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr ""
|
||||
|
||||
@ -1371,7 +1375,7 @@ msgstr ""
|
||||
msgid "bits must be 8"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr ""
|
||||
|
||||
@ -1384,7 +1388,7 @@ msgstr ""
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr ""
|
||||
|
||||
@ -1746,7 +1750,8 @@ msgstr ""
|
||||
msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -2289,7 +2294,7 @@ msgstr ""
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2018-07-27 11:55-0700\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: @sommersoft, @MrCertainly\n"
|
||||
@ -466,11 +466,11 @@ msgstr ""
|
||||
msgid "Could not initialize UART"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr ""
|
||||
|
||||
@ -487,7 +487,7 @@ msgstr ""
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr ""
|
||||
|
||||
@ -701,6 +701,10 @@ msgstr ""
|
||||
msgid "Function requires lock"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr ""
|
||||
@ -757,7 +761,7 @@ msgstr ""
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
msgstr ""
|
||||
|
||||
@ -765,11 +769,11 @@ msgstr ""
|
||||
msgid "Invalid direction."
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
|
||||
@ -811,11 +815,11 @@ msgstr ""
|
||||
msgid "Invalid run mode."
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid voice count"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr ""
|
||||
|
||||
@ -1055,7 +1059,7 @@ msgstr "Runnin' in safe mode! Nay runnin' saved code.\n"
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr ""
|
||||
|
||||
@ -1124,19 +1128,19 @@ msgid ""
|
||||
"exit safe mode.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
@ -1241,7 +1245,7 @@ msgstr ""
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr ""
|
||||
|
||||
@ -1257,7 +1261,7 @@ msgstr ""
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr ""
|
||||
|
||||
@ -1375,7 +1379,7 @@ msgstr ""
|
||||
msgid "bits must be 8"
|
||||
msgstr "pieces must be of 8"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr ""
|
||||
|
||||
@ -1388,7 +1392,7 @@ msgstr ""
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr ""
|
||||
|
||||
@ -1750,7 +1754,8 @@ msgstr ""
|
||||
msgid "extra positional arguments given"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -2293,7 +2298,7 @@ msgstr ""
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
45
locale/es.po
45
locale/es.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2018-08-24 22:56-0500\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -470,11 +470,11 @@ msgstr "No se puede descodificar ble_uuid, err 0x%04x"
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "No se puede inicializar la UART"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr "No se pudo asignar el primer buffer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr "No se pudo asignar el segundo buffer"
|
||||
|
||||
@ -491,7 +491,7 @@ msgstr "DAC ya está siendo utilizado"
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr "El pin Data 0 debe estar alineado a bytes"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr "Trozo de datos debe seguir fmt chunk"
|
||||
|
||||
@ -706,6 +706,10 @@ msgstr "Frecuencia capturada por encima de la capacidad. Captura en pausa."
|
||||
msgid "Function requires lock"
|
||||
msgstr "La función requiere lock"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr "Group lleno"
|
||||
@ -764,7 +768,7 @@ msgstr "Tamaño de buffer inválido"
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr "Inválido periodo de captura. Rango válido: 1 - 500"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
msgstr "Cuenta de canales inválida"
|
||||
|
||||
@ -772,11 +776,11 @@ msgstr "Cuenta de canales inválida"
|
||||
msgid "Invalid direction."
|
||||
msgstr "Dirección inválida."
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr "Archivo inválido"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Formato de fragmento de formato no válido"
|
||||
|
||||
@ -818,11 +822,11 @@ msgstr "Polaridad inválida"
|
||||
msgid "Invalid run mode."
|
||||
msgstr "Modo de ejecución inválido."
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid voice count"
|
||||
msgstr "Cuenta de voces inválida"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Archivo wave inválido"
|
||||
|
||||
@ -1079,7 +1083,7 @@ msgstr "Ejecutando en modo seguro! No se esta ejecutando el código guardado.\n"
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr "SDA o SCL necesitan una pull up"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr "Sample rate debe ser positivo"
|
||||
|
||||
@ -1160,19 +1164,19 @@ msgstr ""
|
||||
"El botón reset fue presionado mientras arrancaba CircuitPython. Presiona "
|
||||
"otra vez para salir del modo seguro.\n"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr "Los bits_per_sample del sample no igualan a los del mixer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr "La cuenta de canales del sample no iguala a las del mixer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr "El sample rate del sample no iguala al del mixer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr "El signo del sample no iguala al del mixer"
|
||||
|
||||
@ -1278,7 +1282,7 @@ msgstr "Baudrate no soportado"
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr "tipo de bitmap no soportado"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr "Formato no soportado"
|
||||
|
||||
@ -1294,7 +1298,7 @@ msgstr "valor pull no soportado."
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr "funciones Viper actualmente no soportan más de 4 argumentos."
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr "Index de voz demasiado alto"
|
||||
|
||||
@ -1420,7 +1424,7 @@ msgstr "bits deben ser 7, 8 ó 9"
|
||||
msgid "bits must be 8"
|
||||
msgstr "bits debe ser 8"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr "bits_per_sample debe ser 8 ó 16"
|
||||
|
||||
@ -1433,7 +1437,7 @@ msgstr "El argumento de chr() no esta en el rango(256)"
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr "buf es demasiado pequeño. necesita %d bytes"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr "buffer debe de ser un objeto bytes-like"
|
||||
|
||||
@ -1802,7 +1806,8 @@ msgstr "argumento(s) por palabra clave adicionales fueron dados"
|
||||
msgid "extra positional arguments given"
|
||||
msgstr "argumento posicional adicional dado"
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "el archivo deberia ser una archivo abierto en modo byte"
|
||||
|
||||
@ -2353,7 +2358,7 @@ msgstr "retorno esperado '%q' pero se obtuvo '%q'"
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr "rsplit(None,n)"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2018-12-20 22:15-0800\n"
|
||||
"Last-Translator: Timothy <me@timothygarcia.ca>\n"
|
||||
"Language-Team: fil\n"
|
||||
@ -471,11 +471,11 @@ msgstr ""
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Hindi ma-initialize ang UART"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr "Hindi ma-iallocate ang first buffer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr "Hindi ma-iallocate ang second buffer"
|
||||
|
||||
@ -493,7 +493,7 @@ msgstr "Ginagamit na ang DAC"
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr "graphic ay dapat 2048 bytes ang haba"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr "Dapat sunurin ng Data chunk ang fmt chunk"
|
||||
|
||||
@ -715,6 +715,10 @@ msgstr ""
|
||||
msgid "Function requires lock"
|
||||
msgstr "Function nangangailangan ng lock"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr "Puno ang group"
|
||||
@ -773,7 +777,7 @@ msgstr "Mali ang buffer size"
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
msgstr "Maling bilang ng channel"
|
||||
|
||||
@ -781,11 +785,11 @@ msgstr "Maling bilang ng channel"
|
||||
msgid "Invalid direction."
|
||||
msgstr "Mali ang direksyon."
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr "Mali ang file"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Mali ang format ng chunk size"
|
||||
|
||||
@ -827,11 +831,11 @@ msgstr "Mali ang polarity"
|
||||
msgid "Invalid run mode."
|
||||
msgstr "Mali ang run mode."
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid voice count"
|
||||
msgstr "Maling bilang ng voice"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr "May hindi tama sa wave file"
|
||||
|
||||
@ -1084,7 +1088,7 @@ msgstr "Tumatakbo sa safe mode! Hindi tumatakbo ang nai-save na code.\n"
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr "Kailangan ng pull up resistors ang SDA o SCL"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr "Sample rate ay dapat positibo"
|
||||
|
||||
@ -1163,19 +1167,19 @@ msgstr ""
|
||||
"Ang reset button ay pinindot habang nag boot ang CircuitPython. Pindutin "
|
||||
"ulit para lumabas sa safe mode.\n"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr "Ang bits_per_sample ng sample ay hindi tugma sa mixer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr "Ang channel count ng sample ay hindi tugma sa mixer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr "Ang sample rate ng sample ay hindi tugma sa mixer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr "Ang signedness ng sample hindi tugma sa mixer"
|
||||
|
||||
@ -1282,7 +1286,7 @@ msgstr "Hindi supportadong baudrate"
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr "Hindi supportadong tipo ng bitmap"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr "Hindi supportadong format"
|
||||
|
||||
@ -1300,7 +1304,7 @@ msgstr ""
|
||||
"Ang mga function ng Viper ay kasalukuyang hindi sumusuporta sa higit sa 4 na "
|
||||
"argumento"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr "Index ng Voice ay masyadong mataas"
|
||||
|
||||
@ -1424,7 +1428,7 @@ msgstr "bits ay dapat 7, 8 o 9"
|
||||
msgid "bits must be 8"
|
||||
msgstr "bits ay dapat walo (8)"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr "bits_per_sample ay dapat 8 o 16"
|
||||
|
||||
@ -1437,7 +1441,7 @@ msgstr "branch wala sa range"
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr "buffer ay dapat bytes-like object"
|
||||
|
||||
@ -1811,7 +1815,8 @@ msgstr "dagdag na keyword argument na ibinigay"
|
||||
msgid "extra positional arguments given"
|
||||
msgstr "dagdag na positional argument na ibinigay"
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "file ay dapat buksan sa byte mode"
|
||||
|
||||
@ -2363,7 +2368,7 @@ msgstr "return umasa ng '%q' pero ang nakuha ay ‘%q’"
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr "rsplit(None,n)"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
45
locale/fr.po
45
locale/fr.po
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: 0.1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2019-04-14 20:05+0100\n"
|
||||
"Last-Translator: Pierrick Couturier <arofarn@arofarn.info>\n"
|
||||
"Language-Team: fr\n"
|
||||
@ -477,11 +477,11 @@ msgstr "Impossible de décoder le 'ble_uuid', err 0x%04x"
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "L'UART n'a pu être initialisé"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr "Impossible d'allouer le 1er tampon"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr "Impossible d'allouer le 2e tampon"
|
||||
|
||||
@ -499,7 +499,7 @@ msgstr "DAC déjà utilisé"
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr "La broche 'Data 0' doit être aligné sur l'octet"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr "Un bloc de données doit suivre un bloc de format"
|
||||
|
||||
@ -720,6 +720,10 @@ msgstr "La fréquence capturée est au delà des capacités. Capture en pause."
|
||||
msgid "Function requires lock"
|
||||
msgstr "La fonction nécessite un verrou"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr "Groupe plein"
|
||||
@ -780,7 +784,7 @@ msgstr "Longueur de tampon invalide"
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr "Période de capture invalide. Gamme valide: 1 à 500"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "Invalid channel count"
|
||||
msgstr "Nombre de canaux invalide"
|
||||
@ -789,11 +793,11 @@ msgstr "Nombre de canaux invalide"
|
||||
msgid "Invalid direction."
|
||||
msgstr "Direction invalide"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr "Fichier invalide"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Taille de bloc de formatage invalide"
|
||||
|
||||
@ -835,12 +839,12 @@ msgstr "Polarité invalide"
|
||||
msgid "Invalid run mode."
|
||||
msgstr "Mode de lancement invalide."
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "Invalid voice count"
|
||||
msgstr "Nombre de voix invalide"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Fichier WAVE invalide"
|
||||
|
||||
@ -1100,7 +1104,7 @@ msgstr "Mode sans-échec! Le code sauvegardé n'est pas éxecuté.\n"
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr "SDA ou SCL a besoin d'une résistance de tirage ('pull up')"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr "Le taux d'échantillonage doit être positif"
|
||||
@ -1183,20 +1187,20 @@ msgstr ""
|
||||
"Le bouton 'reset' a été appuyé pendant le démarrage de CircuitPython. "
|
||||
"Appuyer de nouveau pour quitter de le mode sans-échec.\n"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr ""
|
||||
"Le 'bits_per_sample' de l'échantillon ne correspond pas à celui du mixer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr "Le canal de l'échantillon ne correspond pas à celui du mixer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr "L'échantillonage de l'échantillon ne correspond pas à celui du mixer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr "Le signe de l'échantillon ne correspond pas à celui du mixer"
|
||||
|
||||
@ -1307,7 +1311,7 @@ msgstr "Débit non supporté"
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr "Type de bus d'affichage non supporté"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr "Format non supporté"
|
||||
|
||||
@ -1324,7 +1328,7 @@ msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr ""
|
||||
"les fonctions de Viper ne supportent pas plus de 4 arguments actuellement"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr "Index de la voix trop grand"
|
||||
|
||||
@ -1449,7 +1453,7 @@ msgstr "bits doivent être 7, 8 ou 9"
|
||||
msgid "bits must be 8"
|
||||
msgstr "les bits doivent être 8"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr "'bits_per_sample' doivent être 8 ou 16"
|
||||
@ -1464,7 +1468,7 @@ msgstr "branche hors-bornes"
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr "'buf' est trop petit. Besoin de %d octets"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr "le tampon doit être un objet bytes-like"
|
||||
|
||||
@ -1845,7 +1849,8 @@ msgstr "argument(s) nommé(s) supplémentaire(s) donné(s)"
|
||||
msgid "extra positional arguments given"
|
||||
msgstr "argument(s) positionnel(s) supplémentaire(s) donné(s)"
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "le fichier doit être un fichier ouvert en mode 'byte'"
|
||||
|
||||
@ -2404,7 +2409,7 @@ msgstr "return attendait '%q' mais a reçu '%q'"
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2018-10-02 16:27+0200\n"
|
||||
"Last-Translator: Enrico Paganin <enrico.paganin@mail.com>\n"
|
||||
"Language-Team: \n"
|
||||
@ -472,11 +472,11 @@ msgstr ""
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Impossibile inizializzare l'UART"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr "Impossibile allocare il primo buffer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr "Impossibile allocare il secondo buffer"
|
||||
|
||||
@ -494,7 +494,7 @@ msgstr "DAC già in uso"
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr "graphic deve essere lunga 2048 byte"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr ""
|
||||
|
||||
@ -714,6 +714,10 @@ msgstr ""
|
||||
msgid "Function requires lock"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr "Gruppo pieno"
|
||||
@ -773,7 +777,7 @@ msgstr "lunghezza del buffer non valida"
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr "periodo di cattura invalido. Zona valida: 1 - 500"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "Invalid channel count"
|
||||
msgstr "Argomento non valido"
|
||||
@ -782,11 +786,11 @@ msgstr "Argomento non valido"
|
||||
msgid "Invalid direction."
|
||||
msgstr "Direzione non valida."
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr "File non valido"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr ""
|
||||
|
||||
@ -828,12 +832,12 @@ msgstr "Polarità non valida"
|
||||
msgid "Invalid run mode."
|
||||
msgstr "Modalità di esecuzione non valida."
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "Invalid voice count"
|
||||
msgstr "Tipo di servizio non valido"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr "File wave non valido"
|
||||
|
||||
@ -1088,7 +1092,7 @@ msgstr "Modalità sicura in esecuzione! Codice salvato non in esecuzione.\n"
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr "SDA o SCL necessitano un pull-up"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr "STA deve essere attiva"
|
||||
@ -1162,19 +1166,19 @@ msgid ""
|
||||
"exit safe mode.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
@ -1281,7 +1285,7 @@ msgstr "baudrate non supportato"
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr "tipo di bitmap non supportato"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr "Formato non supportato"
|
||||
|
||||
@ -1297,7 +1301,7 @@ msgstr "Valore di pull non supportato."
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr "Le funzioni Viper non supportano più di 4 argomenti al momento"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr ""
|
||||
|
||||
@ -1418,7 +1422,7 @@ msgstr "i bit devono essere 7, 8 o 9"
|
||||
msgid "bits must be 8"
|
||||
msgstr "i bit devono essere 8"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr "i bit devono essere 7, 8 o 9"
|
||||
@ -1433,7 +1437,7 @@ msgstr "argomento di chr() non è in range(256)"
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr ""
|
||||
|
||||
@ -1803,7 +1807,8 @@ msgstr "argomento nominato aggiuntivo fornito"
|
||||
msgid "extra positional arguments given"
|
||||
msgstr "argomenti posizonali extra dati"
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -2361,7 +2366,7 @@ msgstr "return aspettava '%q' ma ha ottenuto '%q'"
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
45
locale/pl.po
45
locale/pl.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: \n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2019-03-19 18:37-0700\n"
|
||||
"Last-Translator: Radomir Dopieralski <circuitpython@sheep.art.pl>\n"
|
||||
"Language-Team: pl\n"
|
||||
@ -465,11 +465,11 @@ msgstr "Nie można zdekodować ble_uuid, błąd 0x%04x"
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Ustawienie UART nie powiodło się"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr "Nie udała się alokacja pierwszego bufora"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr "Nie udała się alokacja drugiego bufora"
|
||||
|
||||
@ -486,7 +486,7 @@ msgstr "DAC w użyciu"
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr "Nóżka data 0 musi być wyrównana do bajtu"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr "Fragment danych musi następować po fragmencie fmt"
|
||||
|
||||
@ -700,6 +700,10 @@ msgstr "Uzyskana częstotliwość jest niemożliwa. Spauzowano."
|
||||
msgid "Function requires lock"
|
||||
msgstr "Funkcja wymaga blokady"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr "Grupa pełna"
|
||||
@ -758,7 +762,7 @@ msgstr "Zła wielkość bufora"
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr "Zły okres. Poprawny zakres to: 1 - 500"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
msgstr "Zła liczba kanałów"
|
||||
|
||||
@ -766,11 +770,11 @@ msgstr "Zła liczba kanałów"
|
||||
msgid "Invalid direction."
|
||||
msgstr "Zły tryb"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr "Zły plik"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Zła wielkość fragmentu formatu"
|
||||
|
||||
@ -812,11 +816,11 @@ msgstr "Zła polaryzacja"
|
||||
msgid "Invalid run mode."
|
||||
msgstr "Zły tryb uruchomienia"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid voice count"
|
||||
msgstr "Zła liczba głosów"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Zły plik wave"
|
||||
|
||||
@ -1061,7 +1065,7 @@ msgstr "Uruchomiony tryb bezpieczeństwa! Zapisany kod nie jest uruchamiany.\n"
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr "SDA lub SCL wymagają podciągnięcia"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr "Częstotliwość próbkowania musi być dodatnia"
|
||||
|
||||
@ -1140,19 +1144,19 @@ msgstr ""
|
||||
"Przycisk reset został wciśnięty podczas startu CircuitPythona. Wciśnij go "
|
||||
"ponownie aby wyjść z trybu bezpieczeństwa.\n"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr "Wartość bits_per_sample nie pasuje do miksera"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr "Liczba kanałów nie pasuje do miksera "
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr "Sample rate nie pasuje do miksera"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr "Znak nie pasuje do miksera"
|
||||
|
||||
@ -1257,7 +1261,7 @@ msgstr "Zła szybkość transmisji"
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr "Zły typ magistrali wyświetlaczy"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr "Zły format"
|
||||
|
||||
@ -1273,7 +1277,7 @@ msgstr "Zła wartość podciągnięcia."
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr "Funkcje Viper nie obsługują obecnie więcej niż 4 argumentów"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr "Zbyt wysoki indeks głosu"
|
||||
|
||||
@ -1395,7 +1399,7 @@ msgstr "bits musi być 7, 8 lub 9"
|
||||
msgid "bits must be 8"
|
||||
msgstr "bits musi być 8"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr "bits_per_sample musi być 8 lub 16"
|
||||
|
||||
@ -1408,7 +1412,7 @@ msgstr "skok poza zakres"
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr "buf zbyt mały. Wymagane %d bajtów"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr "bufor mysi być typu bytes"
|
||||
|
||||
@ -1771,7 +1775,8 @@ msgstr "nadmiarowe argumenty nazwane"
|
||||
msgid "extra positional arguments given"
|
||||
msgstr "nadmiarowe argumenty pozycyjne"
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "file musi być otwarte w trybie bajtowym"
|
||||
|
||||
@ -2315,7 +2320,7 @@ msgstr "return oczekiwał '%q', a jest '%q'"
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr "rsplit(None,n)"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
@ -8,7 +8,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2018-10-02 21:14-0000\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: \n"
|
||||
@ -468,11 +468,11 @@ msgstr ""
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Não foi possível inicializar o UART"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr "Não pôde alocar primeiro buffer"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr "Não pôde alocar segundo buffer"
|
||||
|
||||
@ -489,7 +489,7 @@ msgstr "DAC em uso"
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr "Pedaço de dados deve seguir o pedaço de cortes"
|
||||
|
||||
@ -709,6 +709,10 @@ msgstr ""
|
||||
msgid "Function requires lock"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr "Grupo cheio"
|
||||
@ -766,7 +770,7 @@ msgstr "Arquivo inválido"
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "Invalid channel count"
|
||||
msgstr "certificado inválido"
|
||||
@ -775,11 +779,11 @@ msgstr "certificado inválido"
|
||||
msgid "Invalid direction."
|
||||
msgstr "Direção inválida"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr "Arquivo inválido"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Tamanho do pedaço de formato inválido"
|
||||
|
||||
@ -821,12 +825,12 @@ msgstr ""
|
||||
msgid "Invalid run mode."
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "Invalid voice count"
|
||||
msgstr "certificado inválido"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Aqruivo de ondas inválido"
|
||||
|
||||
@ -1071,7 +1075,7 @@ msgstr "Rodando em modo seguro! Não está executando o código salvo.\n"
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr "SDA ou SCL precisa de um pull up"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr ""
|
||||
|
||||
@ -1140,19 +1144,19 @@ msgid ""
|
||||
"exit safe mode.\n"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr ""
|
||||
|
||||
@ -1258,7 +1262,7 @@ msgstr "Taxa de transmissão não suportada"
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr "Taxa de transmissão não suportada"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr "Formato não suportado"
|
||||
|
||||
@ -1274,7 +1278,7 @@ msgstr ""
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr ""
|
||||
|
||||
@ -1392,7 +1396,7 @@ msgstr ""
|
||||
msgid "bits must be 8"
|
||||
msgstr "bits devem ser 8"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
#, fuzzy
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr "bits devem ser 8"
|
||||
@ -1407,7 +1411,7 @@ msgstr "Calibração está fora do intervalo"
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr ""
|
||||
|
||||
@ -1771,7 +1775,8 @@ msgstr "argumentos extras de palavras-chave passados"
|
||||
msgid "extra positional arguments given"
|
||||
msgstr "argumentos extra posicionais passados"
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr ""
|
||||
|
||||
@ -2316,7 +2321,7 @@ msgstr ""
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
|
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: circuitpython-cn\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2019-07-19 16:10-0700\n"
|
||||
"POT-Creation-Date: 2019-07-25 22:48-0700\n"
|
||||
"PO-Revision-Date: 2019-04-13 10:10-0700\n"
|
||||
"Last-Translator: hexthat\n"
|
||||
"Language-Team: Chinese Hanyu Pinyin\n"
|
||||
@ -349,7 +349,7 @@ msgstr "Zì jié bìxū jiè yú 0 dào 255 zhī jiān."
|
||||
|
||||
#: py/objtype.c
|
||||
msgid "Call super().__init__() before accessing native object."
|
||||
msgstr ""
|
||||
msgstr "Zài fǎngwèn běn jī wùjiàn zhīqián diàoyòng super().__init__()"
|
||||
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
#, c-format
|
||||
@ -358,7 +358,7 @@ msgstr "Wúfǎ yǔ dotstar yīqǐ shǐyòng %s"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
msgid "Can't set CCCD for local Characteristic"
|
||||
msgstr ""
|
||||
msgstr "Wúfǎ wéi běndì tèzhēng shèzhì CCCD"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c shared-bindings/pulseio/PulseIn.c
|
||||
msgid "Cannot delete values"
|
||||
@ -443,7 +443,7 @@ msgstr "Liè tiáomù bìxū shì digitalio.DigitalInOut"
|
||||
|
||||
#: shared-bindings/displayio/I2CDisplay.c
|
||||
msgid "Command must be 0-255"
|
||||
msgstr ""
|
||||
msgstr "Mìnglìng bìxū wèi 0-255"
|
||||
|
||||
#: shared-bindings/displayio/FourWire.c shared-bindings/displayio/ParallelBus.c
|
||||
msgid "Command must be an int between 0 and 255"
|
||||
@ -451,11 +451,11 @@ msgstr "Mìnglìng bìxū shì 0 dào 255 zhī jiān de int"
|
||||
|
||||
#: py/persistentcode.c
|
||||
msgid "Corrupt .mpy file"
|
||||
msgstr ""
|
||||
msgstr "Fǔbài de .mpy wénjiàn"
|
||||
|
||||
#: py/emitglue.c
|
||||
msgid "Corrupt raw code"
|
||||
msgstr ""
|
||||
msgstr "Sǔnhuài de yuánshǐ dàimǎ"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/UUID.c
|
||||
#, c-format
|
||||
@ -466,11 +466,11 @@ msgstr "Wúfǎ jiěmǎ kě dú_uuid, err 0x%04x"
|
||||
msgid "Could not initialize UART"
|
||||
msgstr "Wúfǎ chūshǐhuà UART"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate first buffer"
|
||||
msgstr "Wúfǎ fēnpèi dì yī gè huǎnchōng qū"
|
||||
|
||||
#: shared-module/audioio/Mixer.c shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/Mixer.c shared-module/audiocore/WaveFile.c
|
||||
msgid "Couldn't allocate second buffer"
|
||||
msgstr "Wúfǎ fēnpèi dì èr gè huǎnchōng qū"
|
||||
|
||||
@ -487,7 +487,7 @@ msgstr "Fā yuán huì yǐjīng shǐyòng"
|
||||
msgid "Data 0 pin must be byte aligned"
|
||||
msgstr "Shùjù 0 de yǐn jiǎo bìxū shì zì jié duìqí"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Data chunk must follow fmt chunk"
|
||||
msgstr "Shùjù kuài bìxū zūnxún fmt qū kuài"
|
||||
|
||||
@ -534,7 +534,7 @@ msgstr "Yùqí UUID"
|
||||
|
||||
#: shared-bindings/bleio/Central.c
|
||||
msgid "Expected an Address"
|
||||
msgstr ""
|
||||
msgstr "Qídài yīgè dìzhǐ"
|
||||
|
||||
#: shared-module/_pixelbuf/PixelBuf.c
|
||||
#, c-format
|
||||
@ -543,7 +543,7 @@ msgstr "Qīwàng de chángdù wèi %d de yuán zǔ, dédào %d"
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Failed sending command."
|
||||
msgstr ""
|
||||
msgstr "Fāsòng mìnglìng shībài."
|
||||
|
||||
#: ports/nrf/sd_mutex.c
|
||||
#, c-format
|
||||
@ -577,11 +577,11 @@ msgstr "Gēnggǎi ruǎn shèbèi zhuàngtài shībài"
|
||||
#: ports/nrf/common-hal/bleio/Peripheral.c
|
||||
#, c-format
|
||||
msgid "Failed to configure advertising, err 0x%04x"
|
||||
msgstr ""
|
||||
msgstr "Wúfǎ pèizhì guǎnggào, cuòwù 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Central.c
|
||||
msgid "Failed to connect: timeout"
|
||||
msgstr ""
|
||||
msgstr "Liánjiē shībài: Chāoshí"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Scanner.c
|
||||
#, c-format
|
||||
@ -633,7 +633,7 @@ msgstr "Wúfǎ shìfàng mutex, err 0x%04x"
|
||||
#: ports/nrf/common-hal/bleio/Peripheral.c
|
||||
#, c-format
|
||||
msgid "Failed to set device name, err 0x%04x"
|
||||
msgstr ""
|
||||
msgstr "Wúfǎ shèzhì shèbèi míngchēng, cuòwù 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Peripheral.c
|
||||
#, c-format
|
||||
@ -643,7 +643,7 @@ msgstr "Qǐdòng guǎnggào shībài, err 0x%04x"
|
||||
#: ports/nrf/common-hal/bleio/Central.c
|
||||
#, c-format
|
||||
msgid "Failed to start connecting, error 0x%04x"
|
||||
msgstr ""
|
||||
msgstr "Wúfǎ kāishǐ liánjiē, cuòwù 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Scanner.c
|
||||
#, c-format
|
||||
@ -658,7 +658,7 @@ msgstr "Wúfǎ tíngzhǐ guǎnggào, err 0x%04x"
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#, c-format
|
||||
msgid "Failed to write CCCD, err 0x%04x"
|
||||
msgstr ""
|
||||
msgstr "Wúfǎ xiě rù CCCD, cuòwù 0x%04x"
|
||||
|
||||
#: ports/nrf/common-hal/bleio/Characteristic.c
|
||||
#, c-format
|
||||
@ -701,6 +701,10 @@ msgstr "Pínlǜ bǔhuò gāo yú nénglì. Bǔhuò zàntíng."
|
||||
msgid "Function requires lock"
|
||||
msgstr "Hánshù xūyào suǒdìng"
|
||||
|
||||
#: shared-bindings/displayio/Display.c
|
||||
msgid "Group already used"
|
||||
msgstr ""
|
||||
|
||||
#: shared-module/displayio/Group.c
|
||||
msgid "Group full"
|
||||
msgstr "Fēnzǔ yǐ mǎn"
|
||||
@ -759,7 +763,7 @@ msgstr "Wúxiào de huǎnchōng qū dàxiǎo"
|
||||
msgid "Invalid capture period. Valid range: 1 - 500"
|
||||
msgstr "Wúxiào de bǔhuò zhōuqí. Yǒuxiào fànwéi: 1-500"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid channel count"
|
||||
msgstr "Wúxiào de tōngdào jìshù"
|
||||
|
||||
@ -767,11 +771,11 @@ msgstr "Wúxiào de tōngdào jìshù"
|
||||
msgid "Invalid direction."
|
||||
msgstr "Wúxiào de fāngxiàng."
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid file"
|
||||
msgstr "Wúxiào de wénjiàn"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid format chunk size"
|
||||
msgstr "Géshì kuài dàxiǎo wúxiào"
|
||||
|
||||
@ -813,11 +817,11 @@ msgstr "Wúxiào liǎng jí zhí"
|
||||
msgid "Invalid run mode."
|
||||
msgstr "Wúxiào de yùnxíng móshì."
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Invalid voice count"
|
||||
msgstr "Wúxiào de yǔyīn jìshù"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Invalid wave file"
|
||||
msgstr "Wúxiào de làng làngcháo wénjiàn"
|
||||
|
||||
@ -1012,7 +1016,7 @@ msgstr "Zài wénjiàn xìtǒng shàng tiānjiā rènhé mókuài\n"
|
||||
|
||||
#: shared-bindings/ps2io/Ps2.c
|
||||
msgid "Pop from an empty Ps2 buffer"
|
||||
msgstr ""
|
||||
msgstr "Cóng kōng de Ps2 huǎnchōng qū dànchū"
|
||||
|
||||
#: main.c
|
||||
msgid "Press any key to enter the REPL. Use CTRL-D to reload."
|
||||
@ -1066,7 +1070,7 @@ msgstr "Zài ānquán móshì xià yùnxíng! Bù yùnxíng yǐ bǎocún de dài
|
||||
msgid "SDA or SCL needs a pull up"
|
||||
msgstr "SDA huò SCL xūyào lādòng"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "Sample rate must be positive"
|
||||
msgstr "Cǎiyàng lǜ bìxū wèi zhèng shù"
|
||||
|
||||
@ -1124,7 +1128,8 @@ msgstr ""
|
||||
msgid ""
|
||||
"The `microcontroller` module was used to boot into safe mode. Press reset to "
|
||||
"exit safe mode.\n"
|
||||
msgstr ""
|
||||
msgstr "“Wēi kòngzhì qì” mókuài yòng yú qǐdòng ānquán móshì. Àn chóng zhì kě "
|
||||
"tuìchū ānquán móshì.\n"
|
||||
|
||||
#: supervisor/shared/safe_mode.c
|
||||
msgid ""
|
||||
@ -1145,19 +1150,19 @@ msgstr ""
|
||||
"Qǐdòng CircuitPython shí, chóng zhì ànniǔ bèi àn xià. Zàicì àn xià yǐ tuìchū "
|
||||
"ānquán móshì\n"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's bits_per_sample does not match the mixer's"
|
||||
msgstr "Yàngběn de bits_per_sample yǔ hǔn yīn qì bù pǐpèi"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's channel count does not match the mixer's"
|
||||
msgstr "Yàngběn de píndào jìshù yǔ hǔn yīn qì bù xiāngfú"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's sample rate does not match the mixer's"
|
||||
msgstr "Yàngběn de yàngběn sùdù yǔ hǔn yīn qì de xiāngchà bù pǐpèi"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "The sample's signedness does not match the mixer's"
|
||||
msgstr "Yàngběn de qiānmíng yǔ hǔn yīn qì de qiānmíng bù pǐpèi"
|
||||
|
||||
@ -1208,7 +1213,7 @@ msgstr "USB Cuòwù"
|
||||
|
||||
#: shared-bindings/bleio/UUID.c
|
||||
msgid "UUID integer value must be 0-0xffff"
|
||||
msgstr ""
|
||||
msgstr "UUID zhěngshù zhí bìxū wèi 0-0xffff"
|
||||
|
||||
#: shared-bindings/bleio/UUID.c
|
||||
msgid "UUID string not 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'"
|
||||
@ -1226,7 +1231,7 @@ msgstr "Wúfǎ fēnpèi huǎnchōng qū yòng yú qiānmíng zhuǎnhuàn"
|
||||
#: shared-module/displayio/I2CDisplay.c
|
||||
#, c-format
|
||||
msgid "Unable to find I2C Display at %x"
|
||||
msgstr ""
|
||||
msgstr "Wúfǎ zài%x zhǎodào I2C xiǎnshìqì"
|
||||
|
||||
#: ports/atmel-samd/common-hal/audiobusio/I2SOut.c
|
||||
#: ports/atmel-samd/common-hal/audiobusio/PDMIn.c
|
||||
@ -1262,7 +1267,7 @@ msgstr "Bù zhīchí de baudrate"
|
||||
msgid "Unsupported display bus type"
|
||||
msgstr "Bù zhīchí de gōnggòng qìchē lèixíng"
|
||||
|
||||
#: shared-module/audioio/WaveFile.c
|
||||
#: shared-module/audiocore/WaveFile.c
|
||||
msgid "Unsupported format"
|
||||
msgstr "Bù zhīchí de géshì"
|
||||
|
||||
@ -1278,7 +1283,7 @@ msgstr "Bù zhīchí de lādòng zhí."
|
||||
msgid "Viper functions don't currently support more than 4 arguments"
|
||||
msgstr "Viper hánshù mùqián bù zhīchí chāoguò 4 gè cānshù"
|
||||
|
||||
#: shared-module/audioio/Mixer.c
|
||||
#: shared-module/audiocore/Mixer.c
|
||||
msgid "Voice index too high"
|
||||
msgstr "Yǔyīn suǒyǐn tài gāo"
|
||||
|
||||
@ -1403,7 +1408,7 @@ msgstr "bǐtè bìxū shì 7,8 huò 9"
|
||||
msgid "bits must be 8"
|
||||
msgstr "bǐtè bìxū shì 8"
|
||||
|
||||
#: shared-bindings/audioio/Mixer.c
|
||||
#: shared-bindings/audiocore/Mixer.c
|
||||
msgid "bits_per_sample must be 8 or 16"
|
||||
msgstr "měi jiàn yàngběn bìxū wèi 8 huò 16"
|
||||
|
||||
@ -1416,7 +1421,7 @@ msgstr "fēnzhī bùzài fànwéi nèi"
|
||||
msgid "buf is too small. need %d bytes"
|
||||
msgstr "huǎnchōng tài xiǎo. Xūyào%d zì jié"
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid "buffer must be a bytes-like object"
|
||||
msgstr "huǎnchōng qū bìxū shì zì jié lèi duìxiàng"
|
||||
|
||||
@ -1781,7 +1786,8 @@ msgstr "éwài de guānjiàn cí cānshù"
|
||||
msgid "extra positional arguments given"
|
||||
msgstr "gěi chūle éwài de wèizhì cānshù"
|
||||
|
||||
#: shared-bindings/audioio/WaveFile.c shared-bindings/displayio/OnDiskBitmap.c
|
||||
#: shared-bindings/audiocore/WaveFile.c
|
||||
#: shared-bindings/displayio/OnDiskBitmap.c
|
||||
msgid "file must be a file opened in byte mode"
|
||||
msgstr "wénjiàn bìxū shì zài zì jié móshì xià dǎkāi de wénjiàn"
|
||||
|
||||
@ -1913,7 +1919,7 @@ msgstr "xūyào zhěngshù"
|
||||
#: shared-bindings/bleio/Peripheral.c shared-bindings/bleio/Scanner.c
|
||||
#, c-format
|
||||
msgid "interval must be in range %s-%s"
|
||||
msgstr ""
|
||||
msgstr "Jiàngé bìxū zài %s-%s fànwéi nèi"
|
||||
|
||||
#: extmod/machine_i2c.c
|
||||
msgid "invalid I2C peripheral"
|
||||
@ -2326,7 +2332,7 @@ msgstr "fǎnhuí yùqí de '%q' dàn huòdéle '%q'"
|
||||
msgid "rsplit(None,n)"
|
||||
msgstr ""
|
||||
|
||||
#: shared-bindings/audioio/RawSample.c
|
||||
#: shared-bindings/audiocore/RawSample.c
|
||||
msgid ""
|
||||
"sample_source buffer must be a bytearray or array of type 'h', 'H', 'b' or "
|
||||
"'B'"
|
||||
@ -2606,7 +2612,7 @@ msgstr "bù zhīchí de lèixíng wèi %q: '%s', '%s'"
|
||||
#: py/objint.c
|
||||
#, c-format
|
||||
msgid "value must fit in %d byte(s)"
|
||||
msgstr ""
|
||||
msgstr "Zhí bìxū fúhé %d zì jié"
|
||||
|
||||
#: shared-bindings/displayio/Bitmap.c
|
||||
msgid "value_count must be > 0"
|
||||
@ -2614,7 +2620,7 @@ msgstr "zhí jìshù bìxū wèi > 0"
|
||||
|
||||
#: shared-bindings/bleio/Scanner.c
|
||||
msgid "window must be <= interval"
|
||||
msgstr ""
|
||||
msgstr "Chuāngkǒu bìxū shì <= jiàngé"
|
||||
|
||||
#: shared-bindings/_pixelbuf/PixelBuf.c
|
||||
msgid "write_args must be a list, tuple, or None"
|
||||
|
@ -11,3 +11,6 @@ SPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = "S25FL064L"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CFLAGS_INLINE_LIMIT = 60
|
||||
SUPEROPT_GC = 0
|
||||
|
@ -93,6 +93,8 @@ void board_init(void) {
|
||||
16, // Color depth
|
||||
false, // Grayscale
|
||||
false, // Pixels in a byte share a row. Only used for depth < 8
|
||||
1, // bytes per cell. Only valid for depths < 8
|
||||
false, // reverse_pixels_in_byte. Only valid for depths < 8
|
||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
||||
|
@ -95,6 +95,8 @@ void board_init(void) {
|
||||
16, // Color depth
|
||||
false, // grayscale
|
||||
false, // pixels in byte share row. only used for depth < 8
|
||||
1, // bytes per cell. Only valid for depths < 8
|
||||
false, // reverse_pixels_in_byte. Only valid for depths < 8
|
||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
||||
|
@ -73,6 +73,8 @@ void board_init(void) {
|
||||
16, // Color depth
|
||||
false, // grayscale
|
||||
false, // pixels in byte share row. Only used for depth < 8
|
||||
1, // bytes per cell. Only valid for depths < 8
|
||||
false, // reverse_pixels_in_byte. Only valid for depths < 8
|
||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
||||
|
@ -95,6 +95,8 @@ void board_init(void) {
|
||||
16, // Color depth
|
||||
false, // Grayscale
|
||||
false, // pixels in a byte share a row. Only valid for depths < 8
|
||||
1, // bytes per cell. Only valid for depths < 8
|
||||
false, // reverse_pixels_in_byte. Only valid for depths < 8
|
||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
||||
|
@ -73,6 +73,8 @@ void board_init(void) {
|
||||
16, // Color depth
|
||||
false, // Grayscale
|
||||
false, // pixels in a byte share a row. Only valid for depths < 8
|
||||
1, // bytes per cell. Only valid for depths < 8
|
||||
false, // reverse_pixels_in_byte. Only valid for depths < 8
|
||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
||||
|
@ -85,6 +85,8 @@ void board_init(void) {
|
||||
16, // Color depth
|
||||
false, // grayscale
|
||||
false, // pixels_in_byte_share_row (unused for depths > 8)
|
||||
1, // bytes per cell. Only valid for depths < 8
|
||||
false, // reverse_pixels_in_byte. Only valid for depths < 8
|
||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
||||
|
@ -1,88 +0,0 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
// SERVO Pins
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO1), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO2), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO3), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO4), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO5), MP_ROM_PTR(&pin_PA11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO6), MP_ROM_PTR(&pin_PA10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO7), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO8), MP_ROM_PTR(&pin_PA08) },
|
||||
|
||||
// RC_CH Pins
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCH1), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCH2), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCH3), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCH4), MP_ROM_PTR(&pin_PA04) },
|
||||
|
||||
// Special Function
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_OFF), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_ENABLE), MP_ROM_PTR(&pin_PA28) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PA20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB23) },
|
||||
|
||||
// UART on SERCOM0
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_TX), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_RX), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_CTS), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_RTS), MP_ROM_PTR(&pin_PA07) },
|
||||
|
||||
// SPI Flash on SERCOM2
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_SCK), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_MISO), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_MOSI), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_CS), MP_ROM_PTR(&pin_PA15) },
|
||||
|
||||
// I2C on SERCOM3
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C_SDA), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C_SCL), MP_ROM_PTR(&pin_PA01) },
|
||||
|
||||
// SPI on SERCOM4
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_SCK), MP_ROM_PTR(&pin_PB11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_MISO), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_MOSI), MP_ROM_PTR(&pin_PB10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI_SS), MP_ROM_PTR(&pin_PB09) },
|
||||
|
||||
// GPS on SERCOM5
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_TX), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_RX), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_SDA), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_SCL), MP_ROM_PTR(&pin_PA01) },
|
||||
|
||||
// Raspberry Pi
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_GP25), MP_ROM_PTR(&pin_PA30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_GP24), MP_ROM_PTR(&pin_PA31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_GP5), MP_ROM_PTR(&pin_PA27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_RX), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_TX), MP_ROM_PTR(&pin_PB23) },
|
||||
|
||||
// SIGNAL / Digital pins (for reference)
|
||||
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PB23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D2), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D3), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D4), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D5), MP_ROM_PTR(&pin_PA01) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D6), MP_ROM_PTR(&pin_PA28) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D7), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D8), MP_ROM_PTR(&pin_PA20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D9), MP_ROM_PTR(&pin_PB11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D10), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PB10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PA03) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -1,7 +1,7 @@
|
||||
#define MICROPY_HW_BOARD_NAME "Robo HAT MM1"
|
||||
#define MICROPY_HW_MCU_NAME "samd21g18"
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PA21)
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PB22)
|
||||
|
||||
// Salae reads 12mhz which is the limit even though we set it to the safer 8mhz.
|
||||
#define SPI_FLASH_BAUDRATE (8000000)
|
||||
@ -24,23 +24,19 @@
|
||||
|
||||
#define BOARD_FLASH_SIZE (0x00040000 - 0x2000 - CIRCUITPY_INTERNAL_NVM_SIZE)
|
||||
|
||||
//#define BOARD_HAS_CRYSTAL 0
|
||||
#define CALIBRATE_CRYSTALLESS 1
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_PB11)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PB10)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_PB08)
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_PB10)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PB08)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_PB11)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB23)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB22)
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB03)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB02)
|
||||
|
||||
// USB is always used internally so skip the pin objects for it.
|
||||
#define IGNORE_PIN_PA24 1
|
||||
#define IGNORE_PIN_PA25 1
|
||||
|
||||
//#define CIRCUITPY_I2CSLAVE
|
||||
//#define CIRCUITPY_DISPLAYIO (0)
|
||||
|
@ -7,27 +7,23 @@ USB_MANUFACTURER = "Robotics Masters"
|
||||
CHIP_VARIANT = SAMD21G18A
|
||||
CHIP_FAMILY = samd21
|
||||
|
||||
# Non-Flash Edition
|
||||
#INTERNAL_FLASH_FILESYSTEM = 1
|
||||
#LONGINT_IMPL = NONE
|
||||
#SUPEROPT_GC = 0
|
||||
|
||||
# SPI-Flash Edition
|
||||
SPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ"
|
||||
LONGINT_IMPL = MPZ
|
||||
# Make room for frozen Libraries
|
||||
|
||||
# Non-Flash Edition
|
||||
#INTERNAL_FLASH_FILESYSTEM = 1
|
||||
#LONGINT_IMPL = NONE
|
||||
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
|
||||
CFLAGS_INLINE_LIMIT = 55
|
||||
CFLAGS_INLINE_LIMIT = 60
|
||||
SUPEROPT_GC = 0
|
||||
|
||||
# Include these Python libraries in firmware.
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
#FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_INA219
|
||||
#FROZEN_MPY_DIRS += $(TOP)/frozen/RoboticsMasters_CircuitPython_MPU9250
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
#FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Crickit
|
||||
#FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_Motor
|
||||
#FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_seesaw
|
88
ports/atmel-samd/boards/robohatmm1_m0/pins.c
Normal file
88
ports/atmel-samd/boards/robohatmm1_m0/pins.c
Normal file
@ -0,0 +1,88 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
// SERVO Pins
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO1), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO2), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO3), MP_ROM_PTR(&pin_PA20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO4), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO5), MP_ROM_PTR(&pin_PA11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO6), MP_ROM_PTR(&pin_PA10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO7), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO8), MP_ROM_PTR(&pin_PA08) },
|
||||
|
||||
// RCC Pins
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCC1), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCC2), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCC3), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCC4), MP_ROM_PTR(&pin_PA04) },
|
||||
|
||||
// Special Function
|
||||
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_OFF), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_DISABLE), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_ON), MP_ROM_PTR(&pin_PA27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_ENABLE), MP_ROM_PTR(&pin_PA27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA27) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PB23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB03) },
|
||||
|
||||
// GROVE on SERCOM0
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_SCL), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_SDA), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_RX), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_TX), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_D1), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_D0), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_A1), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_A0), MP_ROM_PTR(&pin_PA08) },
|
||||
|
||||
// UART on SERCOM0
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_TX), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_RX), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_CTS), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_RTS), MP_ROM_PTR(&pin_PA07) },
|
||||
|
||||
// SPI Flash on SERCOM2
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_SCK), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_MISO), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_MOSI), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_CS), MP_ROM_PTR(&pin_PA15) },
|
||||
|
||||
// I2C on SERCOM3
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA1), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL1), MP_ROM_PTR(&pin_PA01) },
|
||||
|
||||
// SPI on SERCOM4
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SS), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB11) },
|
||||
|
||||
// GPS on SERCOM5
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_TX), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_RX), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_SDA), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_SCL), MP_ROM_PTR(&pin_PA01) },
|
||||
|
||||
// Raspberry Pi
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_GP25), MP_ROM_PTR(&pin_PA30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SWCLK), MP_ROM_PTR(&pin_PA30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_GP24), MP_ROM_PTR(&pin_PA31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SWDIO), MP_ROM_PTR(&pin_PA31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX1), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_TX), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX1), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_RX), MP_ROM_PTR(&pin_PA17) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
39
ports/atmel-samd/boards/robohatmm1_m4/board.c
Normal file
39
ports/atmel-samd/boards/robohatmm1_m4/board.c
Normal file
@ -0,0 +1,39 @@
|
||||
/*
|
||||
* 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"
|
||||
#include "mpconfigboard.h"
|
||||
#include "hal/include/hal_gpio.h"
|
||||
|
||||
void board_init(void) {
|
||||
}
|
||||
|
||||
bool board_requests_safe_mode(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
void reset_board(void) {
|
||||
}
|
44
ports/atmel-samd/boards/robohatmm1_m4/mpconfigboard.h
Normal file
44
ports/atmel-samd/boards/robohatmm1_m4/mpconfigboard.h
Normal file
@ -0,0 +1,44 @@
|
||||
#define MICROPY_HW_BOARD_NAME "Robo HAT MM1"
|
||||
#define MICROPY_HW_MCU_NAME "samd51g19"
|
||||
|
||||
#define CIRCUITPY_MCU_FAMILY samd51
|
||||
|
||||
#define MICROPY_HW_LED_STATUS (&pin_PB22)
|
||||
|
||||
// Salae reads 12mhz which is the limit even though we set it to the safer 8mhz.
|
||||
#define SPI_FLASH_BAUDRATE (8000000)
|
||||
|
||||
// On-board flash
|
||||
#define SPI_FLASH_MOSI_PIN &pin_PA12
|
||||
#define SPI_FLASH_MISO_PIN &pin_PA14
|
||||
#define SPI_FLASH_SCK_PIN &pin_PA13
|
||||
#define SPI_FLASH_CS_PIN &pin_PA15
|
||||
|
||||
// These are pins not to reset.
|
||||
// SPI Data pins
|
||||
#define MICROPY_PORT_A (0)
|
||||
#define MICROPY_PORT_B (0)
|
||||
#define MICROPY_PORT_C (0)
|
||||
#define MICROPY_PORT_D (0)
|
||||
|
||||
#define AUTORESET_DELAY_MS 500
|
||||
|
||||
// If you change this, then make sure to update the linker scripts as well to
|
||||
// make sure you don't overwrite code
|
||||
#define CIRCUITPY_INTERNAL_NVM_SIZE 8192
|
||||
|
||||
#define BOARD_FLASH_SIZE (FLASH_SIZE - 0x4000 - CIRCUITPY_INTERNAL_NVM_SIZE)
|
||||
|
||||
#define DEFAULT_I2C_BUS_SCL (&pin_PA23)
|
||||
#define DEFAULT_I2C_BUS_SDA (&pin_PA22)
|
||||
|
||||
#define DEFAULT_SPI_BUS_SCK (&pin_PB10)
|
||||
#define DEFAULT_SPI_BUS_MOSI (&pin_PB08)
|
||||
#define DEFAULT_SPI_BUS_MISO (&pin_PB11)
|
||||
|
||||
#define DEFAULT_UART_BUS_RX (&pin_PB03)
|
||||
#define DEFAULT_UART_BUS_TX (&pin_PB02)
|
||||
|
||||
// USB is always used internally so skip the pin objects for it.
|
||||
#define IGNORE_PIN_PA24 1
|
||||
#define IGNORE_PIN_PA25 1
|
31
ports/atmel-samd/boards/robohatmm1_m4/mpconfigboard.mk
Normal file
31
ports/atmel-samd/boards/robohatmm1_m4/mpconfigboard.mk
Normal file
@ -0,0 +1,31 @@
|
||||
LD_FILE = boards/samd51x19-bootloader-external-flash.ld
|
||||
USB_VID = 0x1209
|
||||
USB_PID = 0x4D43
|
||||
USB_PRODUCT = "Robo HAT MM1"
|
||||
USB_MANUFACTURER = "Robotics Masters"
|
||||
|
||||
CHIP_VARIANT = SAMD51G19A
|
||||
CHIP_FAMILY = samd51
|
||||
|
||||
#QSPI_FLASH_FILESYSTEM = 0
|
||||
|
||||
SPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = "W25Q64JV_IQ"
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
CIRCUITPY_PS2IO = 1
|
||||
# No I2S on SAMD51G
|
||||
CIRCUITPY_AUDIOBUSIO = 0
|
||||
# No touch on SAMD51 yet
|
||||
CIRCUITPY_TOUCHIO = 0
|
||||
# Make room for more stuff
|
||||
CIRCUITPY_DISPLAYIO = 0
|
||||
CIRCUITPY_FREQUENCYIO = 0
|
||||
|
||||
# Include these Python libraries in firmware.
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_BusDevice
|
||||
FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_NeoPixel
|
||||
#FROZEN_MPY_DIRS += $(TOP)/frozen/Adafruit_CircuitPython_INA219
|
||||
#FROZEN_MPY_DIRS += $(TOP)/frozen/RoboticsMasters_CircuitPython_MPU9250
|
||||
|
89
ports/atmel-samd/boards/robohatmm1_m4/pins.c
Normal file
89
ports/atmel-samd/boards/robohatmm1_m4/pins.c
Normal file
@ -0,0 +1,89 @@
|
||||
#include "shared-bindings/board/__init__.h"
|
||||
|
||||
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
|
||||
// SERVO Pins
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO1), MP_ROM_PTR(&pin_PA18) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO2), MP_ROM_PTR(&pin_PA19) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO3), MP_ROM_PTR(&pin_PA20) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO4), MP_ROM_PTR(&pin_PA21) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO5), MP_ROM_PTR(&pin_PA11) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO6), MP_ROM_PTR(&pin_PA10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO7), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SERVO8), MP_ROM_PTR(&pin_PA08) },
|
||||
|
||||
// RCC Pins
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCC1), MP_ROM_PTR(&pin_PA07) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCC2), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCC3), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RCC4), MP_ROM_PTR(&pin_PA04) },
|
||||
|
||||
// Special Function
|
||||
{ MP_ROM_QSTR(MP_QSTR_VOLTAGE_MONITOR), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BATTERY), MP_ROM_PTR(&pin_PA02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_OFF), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_DISABLE), MP_ROM_PTR(&pin_PA03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_ON), MP_ROM_PTR(&pin_PA27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_POWER_ENABLE), MP_ROM_PTR(&pin_PA27) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_BUTTON), MP_ROM_PTR(&pin_PA27) },
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_NEOPIXEL), MP_ROM_PTR(&pin_PB23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_LED), MP_ROM_PTR(&pin_PB22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB03) },
|
||||
|
||||
// GROVE on SERCOM0
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_SCL), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_SDA), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_RX), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_TX), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_D1), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_D0), MP_ROM_PTR(&pin_PA08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_A1), MP_ROM_PTR(&pin_PA09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GROVE_A0), MP_ROM_PTR(&pin_PA08) },
|
||||
|
||||
// UART on SERCOM0
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_TX), MP_ROM_PTR(&pin_PA04) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_RX), MP_ROM_PTR(&pin_PA05) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_CTS), MP_ROM_PTR(&pin_PA06) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART_RTS), MP_ROM_PTR(&pin_PA07) },
|
||||
|
||||
// SPI Flash on SERCOM2
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_SCK), MP_ROM_PTR(&pin_PA13) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_MISO), MP_ROM_PTR(&pin_PA14) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_MOSI), MP_ROM_PTR(&pin_PA12) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_FLASH_CS), MP_ROM_PTR(&pin_PA15) },
|
||||
|
||||
// I2C on SERCOM3
|
||||
{ MP_ROM_QSTR(MP_QSTR_SDA1), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCL1), MP_ROM_PTR(&pin_PA01) },
|
||||
|
||||
// SPI on SERCOM4
|
||||
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PB08) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SS), MP_ROM_PTR(&pin_PB09) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PB10) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PB11) },
|
||||
|
||||
// GPS on SERCOM5
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_TX), MP_ROM_PTR(&pin_PB02) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_RX), MP_ROM_PTR(&pin_PB03) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_SDA), MP_ROM_PTR(&pin_PA00) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_GPS_SCL), MP_ROM_PTR(&pin_PA01) },
|
||||
|
||||
// Raspberry Pi
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_GP25), MP_ROM_PTR(&pin_PA30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SWCLK), MP_ROM_PTR(&pin_PA30) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_GP24), MP_ROM_PTR(&pin_PA31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SWDIO), MP_ROM_PTR(&pin_PA31) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_TX1), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_TX), MP_ROM_PTR(&pin_PA16) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_RX1), MP_ROM_PTR(&pin_PA17) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_PI_RX), MP_ROM_PTR(&pin_PA17) },
|
||||
|
||||
|
||||
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
|
||||
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
|
||||
};
|
||||
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
|
@ -11,3 +11,5 @@ SPI_FLASH_FILESYSTEM = 1
|
||||
EXTERNAL_FLASH_DEVICE_COUNT = 1
|
||||
EXTERNAL_FLASH_DEVICES = W25Q32BV
|
||||
LONGINT_IMPL = MPZ
|
||||
|
||||
SUPEROPT_GC = 0
|
||||
|
@ -93,6 +93,8 @@ void board_init(void) {
|
||||
16, // Color depth
|
||||
false, // grayscale
|
||||
false, // pixels in byte share row. Only used with depth < 8
|
||||
1, // bytes per cell. Only valid for depths < 8
|
||||
false, // reverse_pixels_in_byte. Only valid for depths < 8
|
||||
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
|
||||
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
|
||||
MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
|
||||
|
@ -71,7 +71,7 @@
|
||||
//| serv = bleio.Service(bleio.UUID(0x180f), [chara])
|
||||
//|
|
||||
//| # Create a peripheral and start it up.
|
||||
//| periph = bleio.Peripheral([service])
|
||||
//| periph = bleio.Peripheral([serv])
|
||||
//| adv = ServerAdvertisement(periph)
|
||||
//| periph.start_advertising(adv.advertising_data_bytes, adv.scan_response_bytes)
|
||||
//|
|
||||
|
@ -51,7 +51,7 @@
|
||||
//| Most people should not use this class directly. Use a specific display driver instead that will
|
||||
//| contain the initialization sequence at minimum.
|
||||
//|
|
||||
//| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, grayscale=False, pixels_in_byte_share_row=True, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None, brightness_command=None, brightness=1.0, auto_brightness=False, single_byte_bounds=False, data_as_commands=False)
|
||||
//| .. class:: Display(display_bus, init_sequence, *, width, height, colstart=0, rowstart=0, rotation=0, color_depth=16, grayscale=False, pixels_in_byte_share_row=True, bytes_per_cell=1, reverse_pixels_in_byte=False, set_column_command=0x2a, set_row_command=0x2b, write_ram_command=0x2c, set_vertical_scroll=0, backlight_pin=None, brightness_command=None, brightness=1.0, auto_brightness=False, single_byte_bounds=False, data_as_commands=False)
|
||||
//|
|
||||
//| Create a Display object on the given display bus (`displayio.FourWire` or `displayio.ParallelBus`).
|
||||
//|
|
||||
@ -90,6 +90,8 @@
|
||||
//| support 18 bit but 16 is easier to transmit. The last bit is extrapolated.)
|
||||
//| :param bool grayscale: True if the display only shows a single color.
|
||||
//| :param bool pixels_in_byte_share_row: True when pixels are less than a byte and a byte includes pixels from the same row of the display. When False, pixels share a column.
|
||||
//| :param int bytes_per_cell: Number of bytes per addressable memory location when color_depth < 8. When greater than one, bytes share a row or column according to pixels_in_byte_share_row.
|
||||
//| :param bool reverse_pixels_in_byte: Reverses the pixel order within each byte when color_depth < 8. Does not apply across multiple bytes even if there is more than one byte per cell (bytes_per_cell.)
|
||||
//| :param int set_column_command: Command used to set the start and end columns to update
|
||||
//| :param int set_row_command: Command used so set the start and end rows to update
|
||||
//| :param int write_ram_command: Command used to write pixels values into the update region. Ignored if data_as_commands is set.
|
||||
@ -102,7 +104,7 @@
|
||||
//| :param bool data_as_commands: Treat all init and boundary data as SPI commands. Certain displays require this.
|
||||
//|
|
||||
STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
|
||||
enum { ARG_display_bus, ARG_init_sequence, ARG_width, ARG_height, ARG_colstart, ARG_rowstart, ARG_rotation, ARG_color_depth, ARG_grayscale, ARG_pixels_in_byte_share_row, ARG_set_column_command, ARG_set_row_command, ARG_write_ram_command, ARG_set_vertical_scroll, ARG_backlight_pin, ARG_brightness_command, ARG_brightness, ARG_auto_brightness, ARG_single_byte_bounds, ARG_data_as_commands };
|
||||
enum { ARG_display_bus, ARG_init_sequence, ARG_width, ARG_height, ARG_colstart, ARG_rowstart, ARG_rotation, ARG_color_depth, ARG_grayscale, ARG_pixels_in_byte_share_row, ARG_bytes_per_cell, ARG_reverse_pixels_in_byte, ARG_set_column_command, ARG_set_row_command, ARG_write_ram_command, ARG_set_vertical_scroll, ARG_backlight_pin, ARG_brightness_command, ARG_brightness, ARG_auto_brightness, ARG_single_byte_bounds, ARG_data_as_commands };
|
||||
static const mp_arg_t allowed_args[] = {
|
||||
{ MP_QSTR_display_bus, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||
{ MP_QSTR_init_sequence, MP_ARG_REQUIRED | MP_ARG_OBJ },
|
||||
@ -114,6 +116,8 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
|
||||
{ MP_QSTR_color_depth, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 16} },
|
||||
{ MP_QSTR_grayscale, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} },
|
||||
{ MP_QSTR_pixels_in_byte_share_row, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = true} },
|
||||
{ MP_QSTR_bytes_per_cell, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 1} },
|
||||
{ MP_QSTR_reverse_pixels_in_byte, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} },
|
||||
{ MP_QSTR_set_column_command, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0x2a} },
|
||||
{ MP_QSTR_set_row_command, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0x2b} },
|
||||
{ MP_QSTR_write_ram_command, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 0x2c} },
|
||||
@ -163,7 +167,8 @@ STATIC mp_obj_t displayio_display_make_new(const mp_obj_type_t *type, size_t n_a
|
||||
common_hal_displayio_display_construct(
|
||||
self,
|
||||
display_bus, args[ARG_width].u_int, args[ARG_height].u_int, args[ARG_colstart].u_int, args[ARG_rowstart].u_int, rotation,
|
||||
args[ARG_color_depth].u_int, args[ARG_grayscale].u_bool, args[ARG_pixels_in_byte_share_row].u_bool,
|
||||
args[ARG_color_depth].u_int, args[ARG_grayscale].u_bool,
|
||||
args[ARG_pixels_in_byte_share_row].u_bool, args[ARG_bytes_per_cell].u_bool, args[ARG_reverse_pixels_in_byte].u_bool,
|
||||
args[ARG_set_column_command].u_int, args[ARG_set_row_command].u_int,
|
||||
args[ARG_write_ram_command].u_int,
|
||||
args[ARG_set_vertical_scroll].u_int,
|
||||
@ -199,7 +204,10 @@ STATIC mp_obj_t displayio_display_obj_show(mp_obj_t self_in, mp_obj_t group_in)
|
||||
group = MP_OBJ_TO_PTR(native_group(group_in));
|
||||
}
|
||||
|
||||
common_hal_displayio_display_show(self, group);
|
||||
bool ok = common_hal_displayio_display_show(self, group);
|
||||
if (!ok) {
|
||||
mp_raise_ValueError(translate("Group already used"));
|
||||
}
|
||||
return mp_const_none;
|
||||
}
|
||||
MP_DEFINE_CONST_FUN_OBJ_2(displayio_display_show_obj, displayio_display_obj_show);
|
||||
|
@ -40,7 +40,8 @@ extern const mp_obj_type_t displayio_display_type;
|
||||
|
||||
void common_hal_displayio_display_construct(displayio_display_obj_t* self,
|
||||
mp_obj_t bus, uint16_t width, uint16_t height,
|
||||
int16_t colstart, int16_t rowstart, uint16_t rotation, uint16_t color_depth, bool grayscale, bool pixels_in_byte_share_row,
|
||||
int16_t colstart, int16_t rowstart, uint16_t rotation, uint16_t color_depth, bool grayscale,
|
||||
bool pixels_in_byte_share_row, uint8_t bytes_per_cell, bool reverse_pixels_in_byte,
|
||||
uint8_t set_column_command, uint8_t set_row_command, uint8_t write_ram_command, uint8_t set_vertical_scroll,
|
||||
uint8_t* init_sequence, uint16_t init_sequence_len, const mcu_pin_obj_t* backlight_pin, uint16_t brightness_command,
|
||||
mp_float_t brightness, bool auto_brightness,
|
||||
@ -48,7 +49,7 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self,
|
||||
|
||||
int32_t common_hal_displayio_display_wait_for_frame(displayio_display_obj_t* self);
|
||||
|
||||
void common_hal_displayio_display_show(displayio_display_obj_t* self, displayio_group_t* root_group);
|
||||
bool common_hal_displayio_display_show(displayio_display_obj_t* self, displayio_group_t* root_group);
|
||||
|
||||
void common_hal_displayio_display_refresh_soon(displayio_display_obj_t* self);
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
Core Modules
|
||||
========================================
|
||||
|
||||
These core modules are intended on being consistent across ports. Currently
|
||||
they are only implemented in the SAMD21 and ESP8266 ports. A module may not exist
|
||||
in a port if no underlying hardware support is present or if flash space is
|
||||
limited. For example, a microcontroller without analog features will not have
|
||||
`analogio`.
|
||||
These core modules are intended on being consistent across ports and boards.
|
||||
A module may not exist on a port/board if no underlying hardware support is
|
||||
present or if flash space is limited. For example, a microcontroller without
|
||||
analog features will not have `analogio`. See the `support_matrix` page for
|
||||
a list of modules supported on each board.
|
||||
|
||||
Modules
|
||||
---------
|
||||
@ -14,56 +14,6 @@ Modules
|
||||
:glob:
|
||||
:maxdepth: 3
|
||||
|
||||
support_matrix
|
||||
*/__init__
|
||||
help
|
||||
|
||||
.. _module-support-matrix:
|
||||
|
||||
Support Matrix
|
||||
---------------
|
||||
NOTE 1: **All Supported** means the following ports are supported: SAMD21, SAMD21 Express,
|
||||
SAMD51, SAMD51 Express, and ESP8266.
|
||||
|
||||
NOTE 2: **SAMD** and/or **SAMD Express** without additional numbers, means both SAMD21 & SAMD51 versions
|
||||
are supported.
|
||||
|
||||
NOTE 3: The `pIRkey SAMD21 board <https://www.adafruit.com/product/3364>`_ is specialized and may not
|
||||
have modules as listed below.
|
||||
|
||||
================= ==============================
|
||||
Module Supported Ports
|
||||
================= ==============================
|
||||
`analogio` **All Supported**
|
||||
`audiobusio` **SAMD/SAMD Express**
|
||||
`audioio` **SAMD Express**
|
||||
`audiocore` **All with audioio**
|
||||
`binascii` **ESP8266**
|
||||
`bitbangio` **SAMD Express, ESP8266**
|
||||
`board` **All Supported**
|
||||
`bleio` **nRF**
|
||||
`busio` **All Supported**
|
||||
`digitalio` **All Supported**
|
||||
`frequencyio` **SAMD51**
|
||||
`gamepad` **SAMD Express, nRF**
|
||||
`hashlib` **ESP8266**
|
||||
`i2cslave` **SAMD Express**
|
||||
`math` **All Supported**
|
||||
`microcontroller` **All Supported**
|
||||
`multiterminal` **ESP8266**
|
||||
`neopixel_write` **All Supported**
|
||||
`nvm` **SAMD Express**
|
||||
`os` **All Supported**
|
||||
`pulseio` **SAMD/SAMD Express**
|
||||
`ps2io` **SAMD/SAMD Express**
|
||||
`random` **All Supported**
|
||||
`rotaryio` **SAMD51, SAMD Express**
|
||||
`storage` **All Supported**
|
||||
`struct` **All Supported**
|
||||
`supervisor` **SAMD/SAMD Express**
|
||||
`time` **All Supported**
|
||||
`touchio` **SAMD/SAMD Express**
|
||||
`uheap` **Debug (All)**
|
||||
`usb_hid` **SAMD/SAMD Express**
|
||||
`_pixelbuf` **SAMD Express**
|
||||
`_stage` **SAMD/SAMD Express**
|
||||
================= ==============================
|
||||
|
16
shared-bindings/support_matrix.rst
Normal file
16
shared-bindings/support_matrix.rst
Normal file
@ -0,0 +1,16 @@
|
||||
.. _module-support-matrix:
|
||||
|
||||
Support Matrix
|
||||
===============
|
||||
|
||||
The following table lists the available built-in modules for each CircuitPython
|
||||
capable board.
|
||||
|
||||
.. csv-table::
|
||||
:header-rows: 1
|
||||
:widths: 7, 50
|
||||
|
||||
"Board", "Modules Available"
|
||||
{% for key, value in support_matrix|dictsort -%}
|
||||
"{{ key }}", "{{ '`' ~ value|join("`, `") ~ '`' }}"
|
||||
{% endfor -%}
|
@ -44,7 +44,7 @@
|
||||
|
||||
void common_hal_displayio_display_construct(displayio_display_obj_t* self,
|
||||
mp_obj_t bus, uint16_t width, uint16_t height, int16_t colstart, int16_t rowstart, uint16_t rotation,
|
||||
uint16_t color_depth, bool grayscale, bool pixels_in_byte_share_row,
|
||||
uint16_t color_depth, bool grayscale, bool pixels_in_byte_share_row, uint8_t bytes_per_cell, bool reverse_pixels_in_byte,
|
||||
uint8_t set_column_command, uint8_t set_row_command,
|
||||
uint8_t write_ram_command, uint8_t set_vertical_scroll, uint8_t* init_sequence, uint16_t init_sequence_len,
|
||||
const mcu_pin_obj_t* backlight_pin, uint16_t brightness_command, mp_float_t brightness, bool auto_brightness,
|
||||
@ -52,6 +52,8 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self,
|
||||
self->colorspace.depth = color_depth;
|
||||
self->colorspace.grayscale = grayscale;
|
||||
self->colorspace.pixels_in_byte_share_row = pixels_in_byte_share_row;
|
||||
self->colorspace.bytes_per_cell = bytes_per_cell;
|
||||
self->colorspace.reverse_pixels_in_byte = reverse_pixels_in_byte;
|
||||
self->set_column_command = set_column_command;
|
||||
self->set_row_command = set_row_command;
|
||||
self->write_ram_command = write_ram_command;
|
||||
@ -195,17 +197,25 @@ void common_hal_displayio_display_construct(displayio_display_obj_t* self,
|
||||
common_hal_displayio_display_show(self, &circuitpython_splash);
|
||||
}
|
||||
|
||||
void common_hal_displayio_display_show(displayio_display_obj_t* self, displayio_group_t* root_group) {
|
||||
bool common_hal_displayio_display_show(displayio_display_obj_t* self, displayio_group_t* root_group) {
|
||||
if (root_group == NULL) {
|
||||
root_group = &circuitpython_splash;
|
||||
}
|
||||
if (root_group == self->current_group) {
|
||||
return;
|
||||
return true;
|
||||
}
|
||||
if (root_group->in_group) {
|
||||
return false;
|
||||
}
|
||||
if (self->current_group != NULL) {
|
||||
self->current_group->in_group = false;
|
||||
}
|
||||
displayio_group_update_transform(root_group, &self->transform);
|
||||
root_group->in_group = true;
|
||||
self->current_group = root_group;
|
||||
self->full_refresh = true;
|
||||
common_hal_displayio_display_refresh_soon(self);
|
||||
return true;
|
||||
}
|
||||
|
||||
void common_hal_displayio_display_refresh_soon(displayio_display_obj_t* self) {
|
||||
@ -299,11 +309,11 @@ void displayio_display_set_region_to_update(displayio_display_obj_t* self, displ
|
||||
if (self->colorspace.depth < 8) {
|
||||
uint8_t pixels_per_byte = 8 / self->colorspace.depth;
|
||||
if (self->colorspace.pixels_in_byte_share_row) {
|
||||
x1 /= pixels_per_byte;
|
||||
x2 /= pixels_per_byte;
|
||||
x1 /= pixels_per_byte * self->colorspace.bytes_per_cell;
|
||||
x2 /= pixels_per_byte * self->colorspace.bytes_per_cell;
|
||||
} else {
|
||||
y1 /= pixels_per_byte;
|
||||
y2 /= pixels_per_byte;
|
||||
y1 /= pixels_per_byte * self->colorspace.bytes_per_cell;
|
||||
y2 /= pixels_per_byte * self->colorspace.bytes_per_cell;
|
||||
}
|
||||
}
|
||||
|
||||
@ -318,7 +328,6 @@ void displayio_display_set_region_to_update(displayio_display_obj_t* self, displ
|
||||
if (self->single_byte_bounds) {
|
||||
data[data_length++] = x1 + self->colstart;
|
||||
data[data_length++] = x2 - 1 + self->colstart;
|
||||
data_length += 2;
|
||||
} else {
|
||||
x1 += self->colstart;
|
||||
x2 += self->colstart - 1;
|
||||
@ -413,7 +422,7 @@ bool displayio_display_clip_area(displayio_display_obj_t *self, const displayio_
|
||||
// Expand the area if we have multiple pixels per byte and we need to byte
|
||||
// align the bounds.
|
||||
if (self->colorspace.depth < 8) {
|
||||
uint8_t pixels_per_byte = 8 / self->colorspace.depth;
|
||||
uint8_t pixels_per_byte = 8 / self->colorspace.depth * self->colorspace.bytes_per_cell;
|
||||
if (self->colorspace.pixels_in_byte_share_row) {
|
||||
if (clipped->x1 % pixels_per_byte != 0) {
|
||||
clipped->x1 -= clipped->x1 % pixels_per_byte;
|
||||
|
@ -36,6 +36,8 @@ typedef struct {
|
||||
uint8_t depth;
|
||||
bool grayscale;
|
||||
bool pixels_in_byte_share_row;
|
||||
uint8_t bytes_per_cell;
|
||||
bool reverse_pixels_in_byte;
|
||||
uint8_t hue;
|
||||
} _displayio_colorspace_t;
|
||||
|
||||
|
@ -436,7 +436,11 @@ bool displayio_tilegrid_fill_area(displayio_tilegrid_t *self, const _displayio_c
|
||||
// asm("bkpt");
|
||||
// }
|
||||
}
|
||||
((uint8_t*)buffer)[offset / pixels_per_byte] |= pixel << ((offset % pixels_per_byte) * colorspace->depth);
|
||||
uint8_t shift = (offset % pixels_per_byte) * colorspace->depth;
|
||||
if (colorspace->reverse_pixels_in_byte) {
|
||||
shift = (pixels_per_byte - 1) * colorspace->depth - shift;
|
||||
}
|
||||
((uint8_t*)buffer)[offset / pixels_per_byte] |= pixel << shift;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -209,35 +209,35 @@ void reset_displays(void) {
|
||||
}
|
||||
}
|
||||
} else if (displays[i].i2cdisplay_bus.base.type == &displayio_i2cdisplay_type) {
|
||||
displayio_i2cdisplay_obj_t* i2c = &displays[i].i2cdisplay_bus;
|
||||
if (((uint32_t) i2c->bus) < ((uint32_t) &displays) ||
|
||||
((uint32_t) i2c->bus) > ((uint32_t) &displays + CIRCUITPY_DISPLAY_LIMIT)) {
|
||||
busio_i2c_obj_t* original_i2c = i2c->bus;
|
||||
#if BOARD_I2C
|
||||
// We don't need to move original_i2c if it is the board.SPI object because it is
|
||||
// statically allocated already. (Doing so would also make it impossible to reference in
|
||||
// a subsequent VM run.)
|
||||
if (original_i2c == common_hal_board_get_i2c()) {
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
memcpy(&i2c->inline_bus, original_i2c, sizeof(busio_i2c_obj_t));
|
||||
i2c->bus = &i2c->inline_bus;
|
||||
// Check for other displays that use the same i2c bus and swap them too.
|
||||
for (uint8_t j = i + 1; j < CIRCUITPY_DISPLAY_LIMIT; j++) {
|
||||
if (displays[i].i2cdisplay_bus.base.type == &displayio_i2cdisplay_type &&
|
||||
displays[i].i2cdisplay_bus.bus == original_i2c) {
|
||||
displays[i].i2cdisplay_bus.bus = &i2c->inline_bus;
|
||||
}
|
||||
displayio_i2cdisplay_obj_t* i2c = &displays[i].i2cdisplay_bus;
|
||||
if (((uint32_t) i2c->bus) < ((uint32_t) &displays) ||
|
||||
((uint32_t) i2c->bus) > ((uint32_t) &displays + CIRCUITPY_DISPLAY_LIMIT)) {
|
||||
busio_i2c_obj_t* original_i2c = i2c->bus;
|
||||
#if BOARD_I2C
|
||||
// We don't need to move original_i2c if it is the board.SPI object because it is
|
||||
// statically allocated already. (Doing so would also make it impossible to reference in
|
||||
// a subsequent VM run.)
|
||||
if (original_i2c == common_hal_board_get_i2c()) {
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
memcpy(&i2c->inline_bus, original_i2c, sizeof(busio_i2c_obj_t));
|
||||
i2c->bus = &i2c->inline_bus;
|
||||
// Check for other displays that use the same i2c bus and swap them too.
|
||||
for (uint8_t j = i + 1; j < CIRCUITPY_DISPLAY_LIMIT; j++) {
|
||||
if (displays[i].i2cdisplay_bus.base.type == &displayio_i2cdisplay_type &&
|
||||
displays[i].i2cdisplay_bus.bus == original_i2c) {
|
||||
displays[i].i2cdisplay_bus.bus = &i2c->inline_bus;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (uint8_t i = 0; i < CIRCUITPY_DISPLAY_LIMIT; i++) {
|
||||
if (displays[i].display.base.type == NULL) {
|
||||
} else {
|
||||
// Not an active display.
|
||||
continue;
|
||||
}
|
||||
|
||||
// Reset the displayed group. Only the first will get the terminal but
|
||||
// that's ok.
|
||||
displayio_display_obj_t* display = &displays[i].display;
|
||||
display->auto_brightness = true;
|
||||
common_hal_displayio_display_show(display, &circuitpython_splash);
|
||||
|
@ -229,5 +229,6 @@ displayio_group_t circuitpython_splash = {
|
||||
.size = 2,
|
||||
.max_size = 2,
|
||||
.children = splash_children,
|
||||
.item_removed = false
|
||||
.item_removed = false,
|
||||
.in_group = false
|
||||
};
|
||||
|
51
tools/travis_new_boards_check.py
Normal file
51
tools/travis_new_boards_check.py
Normal file
@ -0,0 +1,51 @@
|
||||
#! /usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import os
|
||||
import json
|
||||
|
||||
import build_board_info
|
||||
|
||||
# Get boards in json format
|
||||
boards_info_json = build_board_info.get_board_mapping()
|
||||
|
||||
# Get all the boards out of the json format
|
||||
info_boards = [board for board in boards_info_json.keys() if not boards_info_json[board].get("alias", False)]
|
||||
|
||||
# We need to know the path of the .travis.yml file
|
||||
base_path = os.path.dirname(__file__)
|
||||
travis_path = os.path.abspath(os.path.join(base_path, '..', '.travis.yml'))
|
||||
|
||||
# Loading board list based on TRAVIS_BOARDS env variable on .travis.yml
|
||||
travis_boards = []
|
||||
with open(travis_path, 'r') as travis:
|
||||
|
||||
# Get all lines that contain the substring 'TRAVIS_BOARDS'
|
||||
for line in travis:
|
||||
|
||||
# Get the lines with TRAVIS_BOARDS= in it
|
||||
if line.find('TRAVIS_BOARDS=') is not -1:
|
||||
# Store all the boards names into travis_boards
|
||||
begin_of_names = line.find('TRAVIS_BOARDS=') + len('TRAVIS_BOARDS=') + 1
|
||||
end_of_names = line.rfind('"')
|
||||
boards = line[begin_of_names:end_of_names]
|
||||
boards = boards.split(' ')
|
||||
travis_boards.extend(boards)
|
||||
|
||||
# We've reached the end of the env: section
|
||||
elif 'addons' in line:
|
||||
break
|
||||
else:
|
||||
pass
|
||||
|
||||
# All the travis_boards elements must be on info_boards
|
||||
info_boards.sort()
|
||||
travis_boards.sort()
|
||||
|
||||
missing_boards = set(info_boards) - set(travis_boards)
|
||||
|
||||
if missing_boards:
|
||||
print('Boards missing in TRAVIS_BOARDS:')
|
||||
for board in missing_boards:
|
||||
print(board)
|
||||
sys.exit(1)
|
Loading…
Reference in New Issue
Block a user