Open Lighting Architecture 0.10.9
Loading...
Searching...
No Matches
RDMFrame.h
1/*
2 * This library is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU Lesser General Public
4 * License as published by the Free Software Foundation; either
5 * version 2.1 of the License, or (at your option) any later version.
6 *
7 * This library is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
11 *
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15 *
16 * RDMFrame.h
17 * Represents the raw contents of an RDM frame.
18 * Copyright (C) 2010 Simon Newton
19 */
20
21#ifndef INCLUDE_OLA_RDM_RDMFRAME_H_
22#define INCLUDE_OLA_RDM_RDMFRAME_H_
23
24#include <stdint.h>
25#include <ola/io/ByteString.h>
26#include <string>
27#include <vector>
28
29namespace ola {
30namespace rdm {
31
40class RDMFrame {
41 public:
42 struct Options {
43 public:
44 Options() : prepend_start_code(false) {}
45
46 explicit Options(bool _prepend_start_code)
47 : prepend_start_code(_prepend_start_code) {
48 }
49
54 };
55
62 RDMFrame(const uint8_t *data, unsigned int length,
63 const Options &options = Options());
64
71 explicit RDMFrame(const ola::io::ByteString &data,
72 const Options &options = Options());
73
80 bool operator==(const RDMFrame &other) const;
81
85 ola::io::ByteString data;
86
94 struct {
99 uint32_t response_time;
100
101 uint32_t break_time;
102 uint32_t mark_time;
106 uint32_t data_time;
108};
109
113typedef std::vector<RDMFrame> RDMFrames;
114
115} // namespace rdm
116} // namespace ola
117#endif // INCLUDE_OLA_RDM_RDMFRAME_H_
The raw data for a RDM message and its associated timing information.
Definition RDMFrame.h:40
bool operator==(const RDMFrame &other) const
Test for equality.
Definition RDMFrame.cpp:48
RDMFrame(const uint8_t *data, unsigned int length, const Options &options=Options())
Create an RDMFrame from a uint8_t pointer.
Definition RDMFrame.cpp:30
struct ola::rdm::RDMFrame::@9 timing
The timing measurements for an RDM Frame.
ola::io::ByteString data
The raw RDM data, including the RDM start code.
Definition RDMFrame.h:85
uint32_t mark_time
The duration of the mark-after-break.
Definition RDMFrame.h:102
uint32_t response_time
The time between the end of the last byte of the request to the start of the response.
Definition RDMFrame.h:99
uint32_t data_time
The time between the first and last byte of the data.
Definition RDMFrame.h:106
uint32_t break_time
The duration of the break.
Definition RDMFrame.h:101
std::vector< RDMFrame > RDMFrames
A vector of RDMFrames.
Definition RDMFrame.h:113
The namespace containing all OLA symbols.
Definition Credentials.cpp:44
Definition RDMFrame.h:42
bool prepend_start_code
True if the source data does not include a start code.
Definition RDMFrame.h:53