Skip to content
This repository was archived by the owner on Dec 21, 2023. It is now read-only.

Commit 6d8c5a0

Browse files
Merge pull request #45 from InfinityGhost/wiki/development/configurations
Add basic Configurations documentation
2 parents dc1555c + 0a45a4e commit 6d8c5a0

2 files changed

Lines changed: 343 additions & 0 deletions

File tree

Lines changed: 334 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,334 @@
1+
@{
2+
ViewBag.Title = "Configurations";
3+
string repoUrl = "https://github.com/OpenTabletDriver/OpenTabletDriver";
4+
}
5+
6+
<h3 class="wiki-nav-item pb-2" id="general">
7+
Device Information
8+
</h3>
9+
<div class="ms-3">
10+
<p>
11+
Generic device identification information is required for OpenTabletDriver in order for it to be able
12+
to differentiate tablets.
13+
</p>
14+
15+
<table class="table table-hover text-center">
16+
<thead>
17+
<tr>
18+
<th>Property Name</th>
19+
<th>Value Type</th>
20+
<th class="text-start w-75">Description</th>
21+
</tr>
22+
</thead>
23+
24+
<tr>
25+
<td>Name</td>
26+
<td>
27+
<code>string</code>
28+
</td>
29+
<td class="text-start">
30+
The name of the device. This is always the device manufacturer's name followed by the device's
31+
model number or product name when not applicable.
32+
</td>
33+
</tr>
34+
</table>
35+
</div>
36+
37+
<hr/>
38+
39+
<h3 class="wiki-nav-item pb-2" id="specifications">
40+
Specifications
41+
</h3>
42+
<div class="ms-3">
43+
<p>
44+
Tablet configuration specifications provide OpenTabletDriver with information it needs in order to
45+
correctly and accurately handle the data the tablet device outputs.
46+
</p>
47+
48+
<h4 id="specifications-digitizer">Digitizer</h4>
49+
<div class="ms-3">
50+
<p>
51+
This refers to the graphics tablet's digitizer, which provides coordinates of where the tool is
52+
positioned. This is always required for the device to function.
53+
</p>
54+
55+
<table class="table table-hover text-center">
56+
<thead>
57+
<tr>
58+
<th>Property Name</th>
59+
<th>Value Type</th>
60+
<th>Units</th>
61+
<th class="text-start w-50">Description</th>
62+
</tr>
63+
</thead>
64+
65+
<tr>
66+
<td>Width</td>
67+
<td>
68+
<code>double</code>
69+
</td>
70+
<td>mm</td>
71+
<td class="text-start">
72+
The physical width of the digitizer in millimeters.
73+
</td>
74+
</tr>
75+
<tr>
76+
<td>Height</td>
77+
<td>
78+
<code>double</code>
79+
</td>
80+
<td>mm</td>
81+
<td class="text-start">
82+
The physical height of the digitizer in millimeters.
83+
</td>
84+
</tr>
85+
<tr>
86+
<td>Horizontal Resolution</td>
87+
<td>
88+
<code>double</code>
89+
</td>
90+
<td>Device Units</td>
91+
<td class="text-start">
92+
The horizontal resolution of the digitizer in device units.
93+
</td>
94+
</tr>
95+
<tr>
96+
<td>Vertical Resolution</td>
97+
<td>
98+
<code>double</code>
99+
</td>
100+
<td>Device Units</td>
101+
<td class="text-start">
102+
The vertical resolution of the digitizer in device units.
103+
</td>
104+
</tr>
105+
</table>
106+
</div>
107+
108+
<h4>Pen</h4>
109+
<div class="ms-3">
110+
<p>
111+
This refers to the pen tool for the graphics tablet. It is the source of position and typically the
112+
source of pressure data. This is almost always required.
113+
</p>
114+
115+
<table class="table table-hover text-center">
116+
<thead>
117+
<tr>
118+
<th>Property Name</th>
119+
<th>Value Type</th>
120+
<th class="text-start w-75">Description</th>
121+
</tr>
122+
</thead>
123+
124+
<tr>
125+
<td>Max Pressure</td>
126+
<td>
127+
<code>uint</code>
128+
</td>
129+
<td class="text-start">
130+
The maximum pressure reported by the pen in device pressure units. This is used to calculate a
131+
percentage of pressure. If there are more than pens supported by this tablet, the pen with the
132+
highest pressure value is used.
133+
</td>
134+
</tr>
135+
<tr>
136+
<td>Button Count</td>
137+
<td>
138+
<code>uint</code>
139+
</td>
140+
<td class="text-start">
141+
The amount of buttons on the pen. This does not include the eraser, if applicable. If there are more
142+
than one pens supported by this tablet, use the number of buttons on the pen with the most.
143+
</td>
144+
</tr>
145+
</table>
146+
</div>
147+
148+
<h4 id="specifications-auxiliary-buttons">Auxiliary Buttons</h4>
149+
<div class="ms-3">
150+
<p>
151+
This refers to any buttons located on the graphics tablet pad. This should only be enabled if there
152+
are any auxililary buttons.
153+
</p>
154+
155+
<table class="table table-hover text-center">
156+
<thead>
157+
<tr>
158+
<th>Property Name</th>
159+
<th>Value Type</th>
160+
<th class="text-start w-75">Description</th>
161+
</tr>
162+
</thead>
163+
164+
<tr>
165+
<td>Button Count</td>
166+
<td>
167+
<code>uint</code>
168+
</td>
169+
<td class="text-start">
170+
The amount of buttons.
171+
</td>
172+
</tr>
173+
</table>
174+
</div>
175+
176+
<h4>Touch</h4>
177+
<div class="ms-3">
178+
<p>
179+
This refers to the touch digitizer, which may be built into the pen digitizer. This exists as the
180+
resolution of the touch digitizer can be different than the pen digitizer. This should only be
181+
enabled if the graphics tablet supports touch input.
182+
</p>
183+
<p>
184+
This has the same properties as the <a href="#specifications-digitizer">digitizer</a>.
185+
</p>
186+
</div>
187+
188+
<h4>Mouse</h4>
189+
<div class="ms-3">
190+
<p>
191+
This refers to an absolute positioning mouse tool. This should only be enabled if the graphics
192+
tablet supports a mouse.
193+
</p>
194+
<p>
195+
This has the same properties as the
196+
<a href="#specifications-auxiliary-buttons">auxiliary buttons</a>.
197+
</p>
198+
</div>
199+
</div>
200+
201+
<hr/>
202+
203+
<h3 class="wiki-nav-item pb-2" id="identifiers">
204+
Identifiers
205+
</h3>
206+
<div class="ms-3">
207+
<p>
208+
Device identifiers are what actually detect the tablet. Anything defined here is used in the
209+
detection process to pinpoint devices.
210+
</p>
211+
212+
<table class="table table-hover text-center">
213+
<thead>
214+
<tr>
215+
<th class="w-25">Property Name</th>
216+
<th>Value Type</th>
217+
<th class="text-start w-75">Description</th>
218+
</tr>
219+
</thead>
220+
221+
<tr>
222+
<td>Vendor ID</td>
223+
<td>
224+
<code>ushort</code>
225+
</td>
226+
<td class="text-start">
227+
A USB-IF defined identifier that defines which vendor the device is produced by.
228+
Since this is assigned by the USB-IF it can be quite reliable for determining
229+
the manufacturer.
230+
</td>
231+
</tr>
232+
<tr>
233+
<td>Product ID</td>
234+
<td>
235+
<code>ushort</code>
236+
</td>
237+
<td class="text-start">
238+
A vendor-defined identifier for the device. This can be used to identify a device,
239+
however this can be unreliable as it depends on the vendor defining it different
240+
for all of their devices.
241+
</td>
242+
</tr>
243+
<tr>
244+
<td>Input Report Length</td>
245+
<td>
246+
<code>ushort</code>
247+
</td>
248+
<td class="text-start">
249+
The length of input reports from the device. This is always required as report parsers
250+
expect a specific report length.
251+
</td>
252+
</tr>
253+
<tr>
254+
<td>Output Report Length</td>
255+
<td>
256+
<code>ushort</code>
257+
</td>
258+
<td class="text-start">
259+
The length of output reports to the device endpoint. This is not always required,
260+
however it does help make the detection more precise.
261+
</td>
262+
</tr>
263+
<tr>
264+
<td>Report Parser</td>
265+
<td>
266+
<code>string</code>
267+
</td>
268+
<td class="text-start">
269+
The parser that will read and convert all tablet report data into a format that
270+
OpenTabletDriver understands. This is the full namespace and the class name.
271+
<br/>
272+
<small class="text-muted ms-3">
273+
Note: All supported vendor-specific report parsers can be found
274+
<a class="link-light" href="@repoUrl/tree/HEAD/OpenTabletDriver.Configurations/Parsers">here</a>
275+
</small>
276+
</td>
277+
</tr>
278+
<tr>
279+
<td>Feature Initialization Report</td>
280+
<td>
281+
<code>List&lt;byte[]&gt;</code>
282+
</td>
283+
<td class="text-start">
284+
A list of feature reports to be sent to the device to perform the device's initialization sequence.
285+
</td>
286+
</tr>
287+
<tr>
288+
<td>Output Initialization Report</td>
289+
<td>
290+
<code>List&lt;byte[]&gt;</code>
291+
</td>
292+
<td class="text-start">
293+
A list of output reports to be sent to the device to perform the device's initialization sequence.
294+
</td>
295+
</tr>
296+
<tr>
297+
<td>Device Strings</td>
298+
<td>
299+
<code>Dictionary&lt;byte, string&gt;</code>
300+
</td>
301+
<td class="text-start">
302+
A list of regular expressions to be matched against specific indexes of strings contained within the
303+
device's firmware. They can be retrieved via the device string reader. This is optional, however it is
304+
commonly used to improve detection precision.
305+
</td>
306+
</tr>
307+
<tr>
308+
<td>Initialization String Indexes</td>
309+
<td>
310+
<code>byte[]</code>
311+
</td>
312+
<td class="text-start">
313+
A list of indexes to be retrieved from the device as part of the device's initialization sequence.
314+
This is optional, and very infrequently used.
315+
</td>
316+
</tr>
317+
</table>
318+
319+
<p>
320+
<small class="text-muted ms-3">
321+
Note: Byte arrays (<code>byte[]</code>) are serialized as Base64 in JSON.NET, the library that
322+
serializes and deserializes configurations.
323+
</small>
324+
</p>
325+
</div>
326+
327+
<h3 class="wiki-nav-item pb-2">
328+
Attributes
329+
</h3>
330+
<div class="ms-3">
331+
<p>
332+
Attributes are used as platform specific properties to be used within utilties or tools.
333+
</p>
334+
</div>

OpenTabletDriver.Web/Views/Wiki/Index.cshtml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,4 +74,13 @@
7474
</li>
7575
</ul>
7676
</div>
77+
78+
<div class="mb-3">
79+
<h3>Development</h3>
80+
<ul>
81+
<li>
82+
<a class="link-light" href="Wiki/Development/Configurations">Writing OpenTabletDriver Configurations</a>
83+
</li>
84+
</ul>
85+
</div>
7786
</div>

0 commit comments

Comments
 (0)