Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions TODO.inc
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@
- IQ modulation/demodulation
- Simple Lock-In amplifier

Interfacing with C and Python:
Interfacing with C++ and Python:

- Creating an FPGA register
- Reading and writing from registers
Expand Down Expand Up @@ -220,7 +220,7 @@
It all depends on the board you're capturing on. If you're using a 125-14 board, you need to divide the values ​​by 8192.
If the resolution is different, divide accordingly. Keep in mind that the RAW data is likely uncalibrated.

##. Simple lessons on Data acquisition and generation - C & Python API commands.
##. Simple lessons on Data acquisition and generation - C++ & Python API commands.

##. Move the code examples to GitHub and only link them in the documentation - much easier maintenance.

Expand Down
2 changes: 1 addition & 1 deletion appsFeatures/appsFeatures.rst
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ For additional resources, please see the :ref:`Developer Guide <developer_guide>
* **Applications** - Guides for oscilloscope, spectrum analyzer, Bode analyzer, streaming, and community applications
* **System Tools** - Network configuration, OS updates, calibration, and system information management
* **Multiboard Synchronisation** - Create multi-channel systems with Click Shield or X-Channel configurations
* **Programming & Remote Control** - SCPI commands, Python/C APIs, MATLAB, LabVIEW, JupyterLab, and Deep Memory Mode
* **Programming & Remote Control** - SCPI commands, Python/C++ APIs, MATLAB, LabVIEW, JupyterLab, and Deep Memory Mode
* **Command Line Tools** - Terminal utilities for scripting and automation
* **Supported Features by Model** - Compatibility information for different Red Pitaya board models

Expand Down
18 changes: 9 additions & 9 deletions appsFeatures/introAcqGen.rst
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Ordered from simplest to most complex:

* `Oscilloscope and other applications`_.
* `SCPI commands`_.
* `API commands (C, Python)`_.
* `API commands (C++, Python)`_.
* `Deep Memory Acquisition (DMA)`_.
* `Streaming application`_.
* `Custom acquisition and generation (FPGA)`_.
Expand Down Expand Up @@ -52,7 +52,7 @@ SCPI commands
To remotely control the Red Pitaya from a Python, MATLAB or LabVIEW program running on your computer, and to acquire data from the Red Pitaya
to your computer for further processing, use the SCPI commands. The code is executed on a computer and string commands are sent between
Red Pitaya and your computer via |wiki-network-socket|. Once the SCPI commands reach Red Pitaya,
they are interpreted and an appropriate C API function is executed in the background.
they are interpreted and an appropriate C++ API function is executed in the background.

.. note::

Expand Down Expand Up @@ -317,29 +317,29 @@ More information about the SCPI server can be found here:
* :ref:`SCPI examples<examples>`.


API commands (C, Python)
API commands (C++, Python)
==========================

Another way to control the Red Pitaya is to use the C and Python API commands that run on the Red Pitaya's Linux OS. The advantage over
Another way to control the Red Pitaya is to use the C++ and Python API commands that run on the Red Pitaya's Linux OS. The advantage over
the SCPI commands is that the API commands are faster because there is no need to convert the data into strings, send it over the Ethernet
and then reconstruct it. In addition, you have full access to the Linux operating system, which means you can configure programs to run
directly at boot time, customise data interpretation, or write your own drivers to enhance the existing code. Finally, you have direct
access to the FPGA's registry space, making it much easier to write your own software.

The Python API commands are the same as the C API commands, as they are simply a Python front-end to the C commands. You can run Python
The Python API commands are the same as the C++ API commands, as they are simply a Python front-end to the C++ commands. You can run Python
code directly on Red Pitaya starting with Red Pitaya 2.00-30 OS (out of the box).

The overall functionality is exactly the same as with the SCPI commands, with the exception of using functions instead of string commands
and the fact that there are more commands available that have not yet received their SCPI versions.

One thing to note here is that deep memory acquisition of long sequences of data can be speeded up by using a C or Python program to
One thing to note here is that deep memory acquisition of long sequences of data can be speeded up by using a C++ or Python program to
acquire the data and then establishing a TCP connection to the computer to achieve a much faster transfer than using the SCPI commands.
This requires custom code to establish the connection, transmit the data to the computer, and receive the data from a program such as
MATLAB, where it can be processed.

All information about running C and Python programs can be found here:
All information about running C++ and Python programs can be found here:

* :ref:`C & Python API commands <API_commands>`.
* :ref:`C++ & Python API commands <API_commands>`.
* :rp-github:`GitHub API source code <RedPitaya/tree/master/rp-api>`.

|
Expand Down Expand Up @@ -378,7 +378,7 @@ of DDR for proper operation of the Linux OS. Deep memory acquisition is based on
`AXI protocol (AXI DMA and AXI4-Stream) <https://adaptivesupport.amd.com/s/article/1053914?language=en_US>`_ (double the acronym for double the meaning).

Once the acquisition is complete, Red Pitaya needs some time to transfer the entire file to the computer (RAM needs to be cleared) before the acquisition can be reset.
DMA can be configured using SCPI, Python API and C API commands. The triggering options are also the same.
DMA can be configured using SCPI, Python API and C++ API commands. The triggering options are also the same.

To increase the speed of transferring the DMA data to the computer with SCPI, the data should be acquired in binary format (``ACQ:DATA:FORMAT BIN``).

Expand Down
2 changes: 1 addition & 1 deletion appsFeatures/multichannel/multichannel.rst
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ How can I control synchronised boards?
======================================

* :ref:`SCPI commands <scpi_commands>`.
* :ref:`C & Python API commands <API_commands>` (harder to configure as a program must be executed on each board separately).
* :ref:`C++ & Python API commands <API_commands>` (harder to configure as a program must be executed on each board separately).
* :ref:`Streaming application <streaming_top>` (either :ref:`Desktop client application <stream_desktop_app>` or :ref:`command line client <stream_command_client>`).

.. note::
Expand Down
8 changes: 4 additions & 4 deletions appsFeatures/remoteControl/API_scripts.rst
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
.. _API_commands:

##########################
C and Python Applications
##########################
############################
C++ and Python Applications
############################

.. include:: ../../developerGuide/software/app_development/C_and_Python_API.inc


4 changes: 2 additions & 2 deletions appsFeatures/remoteControl/command_list.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
List of supported SCPI & API commands
********************************************

Here is a list of all available SCPI, API, and JupyterLab commands. The commands are organized into tables by functionality. Each table row represents the same command in SCPI, Python API, C API, and JupyterLAB.
Here is a list of all available SCPI, API, and JupyterLab commands. The commands are organized into tables by functionality. Each table row represents the same command in SCPI, Python API, C++ API, and JupyterLAB.
The Jupyter commands are identical to Python API commands, so please refer to them. In the final two columns is a command description and ecosystem version in which the command first appeared.

At the beginning of each table are all command parameter options and available macros.

For API commands you can find a detailed description in these C header files:
For API commands you can find a detailed description in these C++ header files:

* `Red Pitaya GitHub API header files <https://github.com/RedPitaya/RedPitaya/tree/master/rp-api/api/include>`_.

Expand Down
Loading