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

Commit 71b1745

Browse files
committed
Add basic Configurations documentation
1 parent dc1555c commit 71b1745

2 files changed

Lines changed: 333 additions & 0 deletions

File tree

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