File: dmx-cpp-client.dox

package info (click to toggle)
ola 0.10.7.nojsmin-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 16,252 kB
  • sloc: cpp: 131,729; python: 13,127; sh: 4,590; ansic: 2,179; java: 518; xml: 253; makefile: 142
file content (70 lines) | stat: -rw-r--r-- 2,889 bytes parent folder | download | duplicates (6)
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
 *
 */