1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
|
/**
* @page dmx_cpp_client_tutorial C++ DMX Client API Tutorial
* @brief Send and Receive DMX512 data using the C++ API.
*
* [TOC]
*
* @section dmx_cpp_client_Overview Overview
* This page introduces the OLA Client API, and provides sample programs to
* send and receive DMX512 data from olad. For information on how to use more
* advanced features of the API, see \ref cpp_client_tutorial.
*
* OLA comes with two C++ clients. The ola::client::StreamingClient is a
* simplified client that is limited to sending DMX512 data.
* ola::client::OlaClient is a full featured client that can both send and
* receive data, as well as control all aspects of OLA, like patching ports,
* configuring devices etc.
*
* @section dmx_cpp_client_Building Building
* Once OLA is installed on your system, the examples can be built with:
*
* g++ example.cpp $(pkg-config --cflags --libs libola)
*
* @section dmx_cpp_client_StreamingClient Streaming Client DMX512 Transmit
*
* The quickest way to get started is by using ola::client::StreamingClient
* The program below sends 100 frames of DMX data to the olad server on universe
* number 1. The frames are sent 25ms apart which gives a frame rate of 40 fps.
*
* Each frame consists of 512 DMX data slots. The first slot is incremented by
* one each frame, the other slots are always 0. This produces the following
* sequence of DMX frames:
*
* ~~~~~~~~~~~~~~~~~~~~~
* Time (ms) DMX Data
* 0 0,0,0,0,.....
* 25 1,0,0,0,.....
* 50 2,0,0,0,.....
* 75 3,0,0,0,.....
* ....
* 2475 100,0,0,0,.....
* ~~~~~~~~~~~~~~~~~~~~~
*
* @snippet streaming_client.cpp Tutorial Example
*
* @section dmx_cpp_client_OLAClient_TX OLA Client DMX512 Transmit
*
* While ola::client::StreamingClient is easy to use, it has the drawback that
* it can only send DMX512 data. It's not possible to receive DMX512, use RDM or
* control the behavior of olad with the StreamingClient. To do that we need
* to use ola::client::OlaClient.
*
* ola::client::OlaClient provides a much richer interface for interacting
* with the server and uses a @ref event_driven "Event Driven" programming
* model. This makes it more complicated to use. For more examples showing the
* non-DMX512 aspects of OlaClient, see the @ref cpp_client_tutorial.
*
* The following code uses ola::client::OlaClient and behaves the same as the
* \ref dmx_cpp_client_StreamingClient example above.
*
* @snippet callback_client_transmit.cpp Tutorial Example
*
* @section dmx_cpp_client_OLAClient_RX DMX512 Receive
*
* Receiving DMX involves setting up a callback handler and then instructing the
* OlaClient to call the handler when new DMX512 data is received. The example
* below will print a line for each DMX512 frame received on universe 1.
*
* @snippet receiver.cpp Tutorial Example
*
*/
|