-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathindex.html
304 lines (283 loc) · 12.7 KB
/
index.html
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<title>Real-Time Tracking Protocol</title>
<link rel="icon" href="img/tab5.bmp"/>
<!-- Bootstrap Core CSS -->
<link href="vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<!-- Theme CSS -->
<link href="css/clean-blog.min.css" rel="stylesheet">
<!-- Custom Fonts -->
<link href="vendor/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css">
<link href='https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
<link href='https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800' rel='stylesheet' type='text/css'>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body>
<!-- Navigation -->
<nav class="navbar navbar-default navbar-custom navbar-fixed-top">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header page-scroll">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
<span class="sr-only">Toggle navigation</span>
Menu <i class="fa fa-bars"></i>
</button>
<div class="navbar-brand" href="index.html">Version 2.4.2.0</div>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right">
<li>
<a href="index.html">Home</a>
</li>
<li id="rttrpmdropdown" class="dropdown">
<a>RTTrPM<span class="caret"/></a>
<ul class="dropdown-menu" id="RTTrPM-Menu">
<li>
<a href="RTTrPM.html">Packet Specification</a>
</li>
<li>
<a href="Euler-Order.html">Euler Order</a>
</li>
</ul>
</li>
<li>
<a href="RTTrPL.html">RTTrPL</a>
</li>
<li>
<a href="Systems.html">Systems and Applications</a>
</li>
<li>
<a href="Contact.html">Contact</a>
</li>
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container -->
</nav>
<!-- Page Header -->
<!-- Set your background image for this header on the line below. -->
<header class="intro-header" style="background-image: url('img/home-bg-black.png')">
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<div class="site-heading1">
<center><img id="logo" src="img/rttrp_4_resize.png" width="80%"></center>
</div>
</div>
</div>
</div>
</header>
<!-- Main Content -->
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<h2>Information</h2>
<p>The Real Time Tracking Protocol (RTTrP) is a suite of protocols developed to transmit tracked motion information between systems.</p>
<p>RTTrP is comprised of two separate protocols which share a common header:</p>
<ul>
<li>
<a href="RTTrPM.html" style="color:#666666"><u><b>RTTrPM</b> (Real-Time Tracking Protocol - Motion)</u></a>
</li>
<li>
<a href="RTTrPL.html" style="color:#666666"><u><b>RTTrPL</b> (Real-Time Tracking Protocol - Lighting)</u></a>
</li>
</ul>
<p><b>Note</b>: As of August 19th, 2014, Tracking Protocol is renamed to RTTrPM, On-the-Fly Merging (OTFM) is renamed to RTTrPL and common elements shared between the protocols are now named RTTrP.</p>
<h3>Data Structures</h3>
<p>RTTrP is simply a packet header, which encapsulates RTTrPL, and RTTrPM packets. An RTTrP Packet contains any number of packet modules, either Output modules (RTTrPL) or Trackable modules (RTTrPM), but not both. Each type contains other packet modules nested within, which contain further information.</p>
<p>For RTTrPL, Output modules contain a number of nested modules which contain information about specific DMX universes and the channels being controlled. Whereas for RTTrPM, Trackable modules contain other modules which provide information about the motion of a specific tracked object.</p>
<center><img src="img/RTTrP.PNG" width="110%"></center>
<br>
<h3>General Information</h3>
<div class="col-sm-12 col-sm-offset-1">
<h4>Real-Time Tracking Protocol - Motion</h4>
<p>RTTrPM is the protocol that is used to stream to third party listeners that are interested in the position and orientation of a tracking point, relative to the origin of the coordinate system (as defined by the user). The RTTrPM protocol should be sent at a fixed rate. However, if there is no motion data available, then RTTrPM should stop sending (unless a form of heartbeat is implemented). </p>
<p>Likewise, the Zone Collision Detection module should only
send Zones that the Trackable is actively colliding (inside)
with. If a Zone is not sent, it is assumed the collision is
not happening and the Trackable is outside of the Zone.</p>
<h4>Real-Time Tracking Protocol - Lighting</h4>
<p>RTTrPL is used to stream lighting fixture and DMX information to third parties interested in overwriting fixture DMX values sent from a lighting console, for control over said fixtures. RTTrPL output should be triggered by motion data, DMX input, show starting/stopping, and third party requests. As such, it should not send at a fixed rate like the RTTrPM protocol.</p>
</div>
<p>The Integer Signature field is always one of two values to define Endianness of the integer type fields in a packet. To distinguish an RTTrPL packet from an RTTrPM packet, the Floating Point Signature Fields should be set to the following:</p>
<ul>
<li>
<b>RTTrPM</b>: Big Endian - 0x4334, Little Endian - 0x3443
</li>
<li>
<b>RTTrPL</b>: Big Endian - 0x4434, Little Endian - 0x3444
</li>
</ul>
<p>Lastly, the context field is a user definable field that can be used for any purpose.</p>
<h3>Downloads</h3>
<p>The <a href="https://github.com/RTTrP/RTTrP-v1.8.7.0" style="color:#666666"><u>RTTrP Repository</u></a> has stub code available which contains packet definitions of both RTTrPM and RTTrPL. Please visit the following for Python and C++ code
respectively:</p>
<ul>
<li>
<a href="https://github.com/RTTrP/RTTrP-v1.8.7.0/tree/master/Python" style="color:#666666"><u>RTTrPM and RTTrPL Python Code</u></a>
</li>
<li>
<a href="https://github.com/RTTrP/RTTrP-v1.8.7.0/tree/master/C++" style="color:#666666"><u>RTTrPM and RTTrPL C++ Code</u></a>
</li>
</ul>
</div>
</div>
<hr>
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<h2>Modules and Packet Structure</h2>
<div class="col-sm-12 col-sm-offset-1">
<h3>Real-Time Tracking Protocol (RTTrP) Header</h3>
<table class="table-bordered table-striped table-hover" style="width:125%">
<tr>
<th>Field</th>
<th>Name</th>
<th>Type</th>
<th>Size (bytes)</th>
<th>Description</th>
</tr>
<tr>
<td>0</td>
<td>Header / Integer Signature</td>
<td>UInt16</td>
<td>2</td>
<td>Big Endian: 0x4154, Little Endian: 0x5441</td>
</tr>
<tr>
<td>1</td>
<td>Header / Float Signature</td>
<td>UInt16</td>
<td>2</td>
<td>Big Endian: 0x4434 (RTTrPL) / 0x4334 (RTTrPM), Little Endian: 0x3444 (RTTrPL) / 0x3443 (RTTrPM)</td>
</tr>
<tr>
<td>2</td>
<td>Header Version </td>
<td>UInt16</td>
<td>2</td>
<td>Value = 0x0002, will increase if header changes</td>
</tr>
<tr>
<td>3</td>
<td>Packet ID</td>
<td>UInt32</td>
<td>4</td>
<td>Packet sequence number</td>
</tr>
<tr>
<td>4</td>
<td>Packet Format</td>
<td>UInt8</td>
<td>1</td>
<td>Value = 0x00 (Raw), 0x01 (Protobuf), 0x02 (Thrift)</td>
</tr>
<tr>
<td>5</td>
<td>Size</td>
<td>UInt16</td>
<td>2</td>
<td>Size of packet in bytes including header</td>
</tr>
<tr>
<td>6</td>
<td>Context</td>
<td>UInt32</td>
<td>4</td>
<td>User definable</td>
</tr>
<tr>
<td>7</td>
<td>Number of Packet Modules </td>
<td>UInt8</td>
<td>1</td>
<td></td>
</tr>
<tr>
<td>8</td>
<td>Packet Module 0</td>
<td>Packet Module</td>
<td>Variable</td>
<td></td>
</tr>
<tr>
<td>9</td>
<td>Packet Module 1</td>
<td>Packet Module</td>
<td>Variable</td>
<td></td>
</tr>
<tr>
<td>...</td>
<td>...</td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<h2>Versions and Backwards Compatibility</h2>
<p>A protocol version number is included in the RTTrP packet header. Users of previous versions of the protocol should always check the “type” field of modules, and ignore new or unrecognized module types. There can be multiple levels of modules within modules and the order of module types within a module is not guaranteed.</p>
<h2>Systems and Applications</h2>
<p>For application specific use cases and systems which have implemented RTTrP, please visit the <a href="Systems.html" style="color:#666666"><u>Systems and Applications</u></a> page.</p>
<p>If you have written to RTTrP and would like to have a description of your implementation included under the Systems and Applications section of this website, please submit the <a href="https://castsoftwareservices.typeform.com/to/C1JkzE">RTTrP Implementation Form</a>.</p>
<h2>Tools and Resources</h2>
<ul>
<li>
<a href="http://www.h-schmidt.net/FloatConverter/IEEE754.html" style="color:#666666"><u>IEE 754 Converter</u></a>
</li>
<li>
<a href="http://r12a.github.io/apps/conversion/" style="color:#666666"><u>UTF-8 Converter</u></a>
</li>
</ul>
<h2>Contact</h2>
<p>If you have any questions about the protocol or any information on this site, please send an e-mail using the <a href="Contact.html" style="color:#666666"><u>contact form</u></a>.</p>
</div>
</div>
</div>
<hr>
<!-- Footer -->
<footer>
<div class="container">
<div class="row">
<div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
<ul class="list-inline text-center">
<li>
<a href="https://github.com/RTTrP/RTTrP-v1.8.7.0">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-github fa-stack-1x fa-inverse"></i>
</span>
</a>
</li>
</ul>
<p class="copyright text-muted">Theme by <a href="https://startbootstrap.com/template-overviews/clean-blog/" style="color:#666666"><u>Blackrock Digital</u></a>, Powered by <a href="https://pages.github.com/" style="color:#666666"><u>GitHub Pages</u></a></p>
<p class="copyright text-muted">Copyright © 2019</p>
</div>
</div>
</div>
</footer>
<!-- jQuery -->
<script src="vendor/jquery/jquery.min.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="vendor/bootstrap/js/bootstrap.min.js"></script>
<!-- Theme JavaScript -->
<script src="js/clean-blog.min.js"></script>
</body>
</html>