
.. DO NOT EDIT.
.. THIS FILE WAS AUTOMATICALLY GENERATED BY SPHINX-GALLERY.
.. TO MAKE CHANGES, EDIT THE SOURCE PYTHON FILE:
.. "gallery/client_node/1_basics.py"
.. LINE NUMBERS ARE GIVEN BELOW.

.. only:: html

    .. note::
        :class: sphx-glr-download-link-note

        :ref:`Go to the end <sphx_glr_download_gallery_client_node_1_basics.py>`
        to download the full example code.

.. rst-class:: sphx-glr-example-title

.. _sphx_glr_gallery_client_node_1_basics.py:


Nodes basics
============

Showcases the basic :py:class:`pyaseba.client.Node` interface.

.. GENERATED FROM PYTHON SOURCE LINES 7-10

.. code-block:: Python


    from pyaseba.client import Node








.. GENERATED FROM PYTHON SOURCE LINES 11-14

:py:class:`pyaseba.client.Node` are stateful objects linked to a
specific remote Aseba node connected through a :py:class:`pyaseba.client.Client`.


.. GENERATED FROM PYTHON SOURCE LINES 14-19

.. code-block:: Python


    node = Node(cached=False)
    node.connect(target="tcp:port=33333")
    node





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    <Node 0 on tcp:port=33333>



.. GENERATED FROM PYTHON SOURCE LINES 20-23

While most :py:class:`pyaseba.client.Client` methods require selecting a ``node_id``,
:py:class:`pyaseba.client.Node` methods keep a reference to the node ID and network,
which can be used to, for example, set and get variables.

.. GENERATED FROM PYTHON SOURCE LINES 23-27

.. code-block:: Python


    node.set("value", 1)
    node.get("value")





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    1



.. GENERATED FROM PYTHON SOURCE LINES 28-29

Nodes keep an optional cache of Aseba variables values.

.. GENERATED FROM PYTHON SOURCE LINES 29-32

.. code-block:: Python


    node.get("value", cached=True)





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    1



.. GENERATED FROM PYTHON SOURCE LINES 33-35

.. code-block:: Python

    node.set("value", 2, cached=True)








.. GENERATED FROM PYTHON SOURCE LINES 36-37

When caching, modified values are not sent to the remote node.

.. GENERATED FROM PYTHON SOURCE LINES 37-40

.. code-block:: Python


    node.get("value", cached=False)





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    1



.. GENERATED FROM PYTHON SOURCE LINES 41-42

Until calling :py:meth:`pyaseba.client.sync`

.. GENERATED FROM PYTHON SOURCE LINES 42-45

.. code-block:: Python

    node.sync()
    node.get("value", cached=False)





.. rst-class:: sphx-glr-script-out

 .. code-block:: none


    2



.. GENERATED FROM PYTHON SOURCE LINES 46-47

Closing the node will also close the client.

.. GENERATED FROM PYTHON SOURCE LINES 47-48

.. code-block:: Python

    node.close(reset=True)








.. rst-class:: sphx-glr-timing

   **Total running time of the script:** (0 minutes 1.014 seconds)


.. _sphx_glr_download_gallery_client_node_1_basics.py:

.. only:: html

  .. container:: sphx-glr-footer sphx-glr-footer-example

    .. container:: sphx-glr-download sphx-glr-download-jupyter

      :download:`Download Jupyter notebook: 1_basics.ipynb <1_basics.ipynb>`

    .. container:: sphx-glr-download sphx-glr-download-python

      :download:`Download Python source code: 1_basics.py <1_basics.py>`

    .. container:: sphx-glr-download sphx-glr-download-zip

      :download:`Download zipped: 1_basics.zip <1_basics.zip>`


.. only:: html

 .. rst-class:: sphx-glr-signature

    `Gallery generated by Sphinx-Gallery <https://sphinx-gallery.github.io>`_
