Merge branch 'develop' of https://github.com/ivankravets/platformio into feature/pyserial-3.0

This commit is contained in:
Ivan Kravets
2015-10-10 14:26:21 +01:00
13 changed files with 139 additions and 50 deletions

View File

@ -4,6 +4,12 @@ Release History
PlatformIO 2.0 PlatformIO 2.0
-------------- --------------
2.3.4 (2015-10-??)
~~~~~~~~~~~~~~~~~~
* Added support for ubIQio Ardhat board
(`pull #302 <https://github.com/platformio/platformio/pull/302>`_)
2.3.3 (2015-10-02) 2.3.3 (2015-10-02)
~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~

View File

@ -31,12 +31,13 @@ PlatformIO
`Home & Demo <http://platformio.org>`_ | `Home & Demo <http://platformio.org>`_ |
`Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_ | `Project Examples <https://github.com/platformio/platformio/tree/develop/examples>`_ |
`Code <https://github.com/platformio/platformio>`_ | `Source Code <https://github.com/platformio>`_ |
`Documentation <http://docs.platformio.org>`_ || `Documentation <http://docs.platformio.org>`_ ||
`Blog <http://www.ikravets.com/category/computer-life/platformio>`_ | `Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
`Reddit <http://www.reddit.com/r/platformio/>`_ | `Twitter <https://twitter.com/PlatformIO_Org>`_ |
`Hackaday <https://hackaday.io/project/7980-platformio>`_ |
`Facebook <https://www.facebook.com/platformio>`_ | `Facebook <https://www.facebook.com/platformio>`_ |
`Twitter <https://twitter.com/PlatformIO_Org>`_ `Reddit <http://www.reddit.com/r/platformio/>`_
.. image:: https://raw.githubusercontent.com/platformio/platformio/develop/docs/_static/platformio-logo.png .. image:: https://raw.githubusercontent.com/platformio/platformio/develop/docs/_static/platformio-logo.png
:target: http://platformio.org :target: http://platformio.org

View File

@ -24,13 +24,14 @@ between team members, regardless of operating system they prefer to work with.
Beyond that, PlatformIO can be run not only on commonly used desktops/laptops Beyond that, PlatformIO can be run not only on commonly used desktops/laptops
but also on the servers without X Window System. While PlatformIO itself is a but also on the servers without X Window System. While PlatformIO itself is a
console application, it can be used in combination with one's favorite console application, it can be used in combination with one's favorite
:ref:`ide` or text editor such as :ref:`ide_arduino`, :ref:`ide_eclipse`, :ref:`ide` or text editor such as :ref:`ide_arduino`, :ref:`ide_atom`,
:ref:`ide_visualstudio`, :ref:`ide_vim`, :ref:`ide_sublimetext`, etc. :ref:`ide_clion`, :ref:`ide_eclipse`, :ref:`ide_qtcreator`,
:ref:`ide_sublimetext`, :ref:`ide_vim`, :ref:`ide_visualstudio`, etc.
Alright, so PlatformIO can run on different operating systems. But more Alright, so PlatformIO can run on different operating systems. But more
importantly, from development perspective at least, is a list of supported importantly, from development perspective at least, is a list of supported
boards and MCUs. To keep things short: PlatformIO supports over 100 boards and MCUs. To keep things short: PlatformIO supports over 150+
:ref:`Embedded Boards <platforms>` and all major `Embedded Boards <http://platformio.org/#!/boards>`_ and all major
:ref:`Development Platforms <platforms>`. :ref:`Development Platforms <platforms>`.
PlatformIO allows users to: PlatformIO allows users to:
@ -55,6 +56,19 @@ the project developed using PlatformIO is as follows:
* Users develop code and PlatformIO makes sure that it is compiled, prepared * Users develop code and PlatformIO makes sure that it is compiled, prepared
and uploaded to all the boards of interest. and uploaded to all the boards of interest.
Commands completion in Terminal
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Bash completion
'''''''''''''''
Bash completion support will complete subcommands and parameters. To enable
Bash completion for `platformio` subcommands you need to put into your `.bashrc`:
.. code-block:: bash
eval "$(_PLATFORMIO_COMPLETE=source platformio)"
.. _faq_troubleshooting: .. _faq_troubleshooting:
Troubleshooting Troubleshooting

View File

@ -476,7 +476,7 @@ Espressif
* - ``esp01`` * - ``esp01``
- `Espressif ESP8266 board <https://nurdspace.nl/ESP8266>`_ - `Espressif ESP8266 board <https://nurdspace.nl/ESP8266>`_
- ESP8266 - ESP8266
- 80 MHz - 40 MHz
- 512 Kb - 512 Kb
- 32 Kb - 32 Kb
@ -976,3 +976,23 @@ Wicked Device
- 16 MHz - 16 MHz
- 128 Kb - 128 Kb
- 16 Kb - 16 Kb
ubIQio
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``ardhat``
- `ubIQio Ardhat <http://ardhat.com>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
- 2 Kb

View File

@ -18,9 +18,10 @@ libOpenCM3, etc.*
* `Source Code <https://github.com/platformio/platformio>`_ | * `Source Code <https://github.com/platformio/platformio>`_ |
`Issues <https://github.com/platformio/platformio/issues>`_ `Issues <https://github.com/platformio/platformio/issues>`_
* `Blog <http://www.ikravets.com/category/computer-life/platformio>`_ | * `Blog <http://www.ikravets.com/category/computer-life/platformio>`_ |
`Reddit <http://www.reddit.com/r/platformio/>`_ | `Twitter <https://twitter.com/PlatformIO_Org>`_ |
`Hackaday <https://hackaday.io/project/7980-platformio>`_ |
`Facebook <https://www.facebook.com/platformio>`_ | `Facebook <https://www.facebook.com/platformio>`_ |
`Twitter <https://twitter.com/PlatformIO_Org>`_ `Reddit <http://www.reddit.com/r/platformio/>`_
You have **no need** to install any *IDE* or compile any tool chains. *PlatformIO* You have **no need** to install any *IDE* or compile any tool chains. *PlatformIO*
has pre-built different development platforms and pre-configured settings for has pre-built different development platforms and pre-configured settings for

View File

@ -872,3 +872,23 @@ Wicked Device
- 16 MHz - 16 MHz
- 128 Kb - 128 Kb
- 16 Kb - 16 Kb
ubIQio
~~~~~~
.. list-table::
:header-rows: 1
* - Type ``board``
- Name
- Microcontroller
- Frequency
- Flash
- RAM
* - ``ardhat``
- `ubIQio Ardhat <http://ardhat.com>`_
- ATMEGA328P
- 16 MHz
- 32 Kb
- 2 Kb

View File

@ -77,6 +77,6 @@ Espressif
* - ``esp01`` * - ``esp01``
- `Espressif ESP8266 board <https://nurdspace.nl/ESP8266>`_ - `Espressif ESP8266 board <https://nurdspace.nl/ESP8266>`_
- ESP8266 - ESP8266
- 80 MHz - 40 MHz
- 512 Kb - 512 Kb
- 32 Kb - 32 Kb

View File

@ -1,7 +1,7 @@
# Copyright (C) Ivan Kravets <me@ikravets.com> # Copyright (C) Ivan Kravets <me@ikravets.com>
# See LICENSE for details. # See LICENSE for details.
VERSION = (2, 3, 3) VERSION = (2, 3, "4.dev1")
__version__ = ".".join([str(s) for s in VERSION]) __version__ = ".".join([str(s) for s in VERSION])
__title__ = "platformio" __title__ = "platformio"

View File

@ -1,4 +1,26 @@
{ {
"ardhat": {
"build": {
"core": "arduino",
"extra_flags": "-DARDUINO_ARCH_AVR -DAVR_ARDHAT",
"f_cpu": "16000000L",
"mcu": "atmega328p",
"variant": "standard"
},
"frameworks": ["arduino"],
"name": "ubIQio Ardhat",
"platform": "atmelavr",
"upload": {
"maximum_ram_size": 2048,
"maximum_size": 32256,
"protocol": "arduino",
"require_upload_port" : true,
"speed": 115200
},
"url": "http://ardhat.com",
"vendor": "ubIQio"
},
"raspduino": { "raspduino": {
"build": { "build": {
"core": "arduino", "core": "arduino",

View File

@ -36,13 +36,19 @@ def cli(ctx, environment, target, upload_port, # pylint: disable=R0913,R0914
if not config.sections(): if not config.sections():
raise exception.ProjectEnvsNotAvailable() raise exception.ProjectEnvsNotAvailable()
unknown = set(environment) - set([s[4:] for s in config.sections()]) known = set([s[4:] for s in config.sections()
if s.startswith("env:")])
unknown = set(environment) - known
if unknown: if unknown:
raise exception.UnknownEnvNames(", ".join(unknown)) raise exception.UnknownEnvNames(
", ".join(unknown), ", ".join(known))
# clean obsolete .pioenvs dir # clean obsolete .pioenvs dir
if not disable_auto_clean: if not disable_auto_clean:
_clean_pioenvs_dir() try:
_clean_pioenvs_dir(util.get_pioenvs_dir())
except Exception:
raise exception.CleanPioenvsDirError(util.get_pioenvs_dir())
results = [] results = []
for section in config.sections(): for section in config.sections():
@ -221,8 +227,7 @@ def _autoinstall_libs(ctx, libids_list):
ctx.invoke(cmd_lib_install, libid=not_intalled_libs) ctx.invoke(cmd_lib_install, libid=not_intalled_libs)
def _clean_pioenvs_dir(): def _clean_pioenvs_dir(pioenvs_dir):
pioenvs_dir = util.get_pioenvs_dir()
structhash_file = join(pioenvs_dir, "structure.hash") structhash_file = join(pioenvs_dir, "structure.hash")
proj_hash = calculate_project_hash() proj_hash = calculate_project_hash()

View File

@ -33,14 +33,14 @@ class UnknownPlatform(PlatformioException):
class PlatformNotInstalledYet(PlatformioException): class PlatformNotInstalledYet(PlatformioException):
MESSAGE = ("The platform '%s' has not been installed yet. " MESSAGE = "The platform '%s' has not been installed yet. "\
"Use `platformio platforms install` command") "Use `platformio platforms install` command"
class UnknownCLICommand(PlatformioException): class UnknownCLICommand(PlatformioException):
MESSAGE = ("Unknown command '%s'. Please use `platformio --help`" MESSAGE = "Unknown command '%s'. Please use `platformio --help`"\
" to see all available commands") " to see all available commands"
class UnknownBoard(PlatformioException): class UnknownBoard(PlatformioException):
@ -75,14 +75,14 @@ class FDUnrecognizedStatusCode(PlatformioException):
class FDSizeMismatch(PlatformioException): class FDSizeMismatch(PlatformioException):
MESSAGE = ("The size (%d bytes) of downloaded file '%s' " MESSAGE = "The size (%d bytes) of downloaded file '%s' "\
"is not equal to remote size (%d bytes)") "is not equal to remote size (%d bytes)"
class FDSHASumMismatch(PlatformioException): class FDSHASumMismatch(PlatformioException):
MESSAGE = ("The 'sha1' sum '%s' of downloaded file '%s' " MESSAGE = "The 'sha1' sum '%s' of downloaded file '%s' "\
"is not equal to remote '%s'") "is not equal to remote '%s'"
class NotPlatformProject(PlatformioException): class NotPlatformProject(PlatformioException):
@ -104,17 +104,23 @@ class UnsupportedArchiveType(PlatformioException):
class ProjectEnvsNotAvailable(PlatformioException): class ProjectEnvsNotAvailable(PlatformioException):
MESSAGE = "Please setup environments in `platformio.ini` file." MESSAGE = "Please setup environments in `platformio.ini` file"
class InvalidEnvName(PlatformioException): class InvalidEnvName(PlatformioException):
MESSAGE = "Invalid environment '%s'. The name must start " "with 'env:'." MESSAGE = "Invalid environment '%s'. The name must start with 'env:'"
class UnknownEnvNames(PlatformioException): class UnknownEnvNames(PlatformioException):
MESSAGE = "Unknown environment names '%s'." MESSAGE = "Unknown environment names '%s'. Valid names are '%s'"
class CleanPioenvsDirError(PlatformioException):
MESSAGE = "Can not remove temporary directory `%s`. "\
"Please remove it manually"
class GetSerialPortsError(PlatformioException): class GetSerialPortsError(PlatformioException):
@ -124,7 +130,7 @@ class GetSerialPortsError(PlatformioException):
class GetLatestVersionError(PlatformioException): class GetLatestVersionError(PlatformioException):
MESSAGE = "Can't retrieve the latest PlatformIO version" MESSAGE = "Can not retrieve the latest PlatformIO version"
class APIRequestError(PlatformioException): class APIRequestError(PlatformioException):
@ -173,36 +179,28 @@ class UpgraderFailed(PlatformioException):
class CIBuildEnvsEmpty(PlatformioException): class CIBuildEnvsEmpty(PlatformioException):
MESSAGE = ( MESSAGE = "Can't find PlatformIO build environments.\n"\
"Can't find PlatformIO build environments.\nPlease specify `--board` " "Please specify `--board` or path to `platformio.ini` with "\
"or path to `platformio.ini` with predefined environments using " "predefined environments using `--project-conf` option"
"`--project-conf` option"
)
class SConsNotInstalled(PlatformioException): class SConsNotInstalled(PlatformioException):
MESSAGE = ( MESSAGE = "The PlatformIO and `scons` aren't installed properly. "\
"The PlatformIO and `scons` aren't installed properly. " "More details in FAQ/Troubleshooting section: "\
"More details in FAQ/Troubleshooting section: "
"http://docs.platformio.org/en/latest/faq.html" "http://docs.platformio.org/en/latest/faq.html"
)
class PlatformioUpgradeError(PlatformioException): class PlatformioUpgradeError(PlatformioException):
MESSAGE = ( MESSAGE = "%s \n\n"\
"%s \n\n" "1. Please report this issue here: "\
"1. Please report this issue here: " "https://github.com/platformio/platformio/issues \n"\
"https://github.com/platformio/platformio/issues \n" "2. Try different installation/upgrading steps: "\
"2. Try different installation/upgrading steps: "
"http://docs.platformio.org/en/latest/installation.html" "http://docs.platformio.org/en/latest/installation.html"
)
class CygwinEnvDetected(PlatformioException): class CygwinEnvDetected(PlatformioException):
MESSAGE = ( MESSAGE = "PlatformIO does not work within Cygwin environment. "\
"PlatformIO does not work within Cygwin environment. "
"Use native Terminal instead." "Use native Terminal instead."
)

View File

@ -184,10 +184,12 @@ def check_platformio_upgrade():
click.echo("") click.echo("")
click.echo("*" * terminal_width) click.echo("*" * terminal_width)
click.secho("There is a new version %s of PlatformIO available.\n" click.secho("There is a new version %s of PlatformIO available.\n"
"Please upgrade it via " % latest_version, "Please upgrade it via `" % latest_version,
fg="yellow", nl=False) fg="yellow", nl=False)
click.secho("platformio upgrade", fg="cyan", nl=False) click.secho("platformio upgrade", fg="cyan", nl=False)
click.secho(" command.\nChanges: ", fg="yellow", nl=False) click.secho("` or `", fg="yellow", nl=False)
click.secho("pip install -U platformio", fg="cyan", nl=False)
click.secho("` command.\nChanges: ", fg="yellow", nl=False)
click.secho("http://docs.platformio.org/en/latest/history.html", click.secho("http://docs.platformio.org/en/latest/history.html",
fg="cyan") fg="cyan")
click.echo("*" * terminal_width) click.echo("*" * terminal_width)

View File

@ -3,5 +3,5 @@ click==5.1
colorama==0.3.3 colorama==0.3.3
lockfile==0.10.2 lockfile==0.10.2
pyserial==2.7 pyserial==2.7
requests==2.7.0 requests==2.8.0
scons==2.3.6 scons==2.3.6