System Examples (Blocking API)
==============================

Overview
~~~~~~~~

The blocking System examples are available for both C and C++:

- C: ``examples/blocking_api/system/c/``
- C++: ``examples/blocking_api/system/cpp/``

These examples are intended for both **Supernova** and **Pulsar** USB host adapters.

Hardware Setup
~~~~~~~~~~~~~~

Required hardware:

1. One Binho **Supernova** or **Pulsar**

What The System Examples Do
~~~~~~~~~~~~~~~~~~~~~~~~~~~

The C and C++ examples implement the same workflow:

1. Create/connect the SDK client to the adapter.
2. Read and print device information (manufacturer, product name, serial number, FW, HW).
3. Send the system command to enter boot mode.
4. Clean up SDK resources.

Boot Mode Note
~~~~~~~~~~~~~~

After the boot mode command is accepted, the adapter transitions out of normal runtime mode.
At that point, normal application-level communication is not expected to continue.

Build and Run (System C/C++)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

System example directories build binaries with the following names:

- C (``examples/blocking_api/system/c/``):
    - ``example_c_dynamic``
    - ``example_c_static``
- C++ (``examples/blocking_api/system/cpp/``):
    - ``example_dynamic``
    - ``example_static``

See also:

- C API reference: :doc:`../../api/c/cosmicsdk_api_c`
- C++ blocking API reference: :doc:`../../api/cpp_blocking/cosmicsdk`
