author | František Kučera <franta-hg@frantovo.cz> |
Thu, 30 Jul 2020 02:13:42 +0200 | |
branch | v_0 |
changeset 142 | de98ccaff37f |
parent 137 | 8e583c8df660 |
permissions | -rw-r--r-- |
136
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
1 |
<stránka |
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
2 |
xmlns="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/strana" |
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
3 |
xmlns:m="https://trac.frantovo.cz/xml-web-generator/wiki/xmlns/makro"> |
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
4 |
|
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
5 |
<nadpis>Spacenav Hack</nadpis> |
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
6 |
<perex>An LD_PRELOAD hack that translates socket messages to the X11 events.</perex> |
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
7 |
<pořadí>050</pořadí> |
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
8 |
|
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
9 |
<text xmlns="http://www.w3.org/1999/xhtml"> |
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
10 |
<p> |
137
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
11 |
There are two ways how the <a href="http://spacenav.sourceforge.net/">Spacenav</a> client (e.g. Blender, OpenSCAD or FreeCAD) and the Spacenav server (Spacenav daemon connected to the 6DoF 3D mouse or our simulator) |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
12 |
can reach each other: |
136
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
13 |
</p> |
137
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
14 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
15 |
<ul> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
16 |
<li>unix domain socket</li> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
17 |
<li>X11</li> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
18 |
</ul> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
19 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
20 |
<p> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
21 |
The client might be compiled with both options (like X11 with fallback to socket interface) or only with one (like X11 only). |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
22 |
The server can be configured to provide both interfaces (it needs the <code>~/.Xauthority</code> X11 magic cookie) |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
23 |
or only the socket interface (if the cookie is missing). |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
24 |
</p> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
25 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
26 |
<p> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
27 |
If we have socket-only server and X11-only client, we can of course recompile the client or reconfigure the server. |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
28 |
Or we can have some fun, hack it in the <code>LD_PRELOAD</code> fashion and translate the socket interface to the X11 one. |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
29 |
So we make X11 client talking to the socket server. |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
30 |
</p> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
31 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
32 |
<m:img src="img/spacenavHack-freecad-v0.1.png"/> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
33 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
34 |
<h2>Build and installation</h2> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
35 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
36 |
<p>We use the CMake build system, so the steps are basically:</p> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
37 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
38 |
<pre><![CDATA[mkdir build && cd build && cmake .. && make]]></pre> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
39 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
40 |
<p>Required libraries:</p> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
41 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
42 |
<ul> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
43 |
<li>spnav</li> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
44 |
</ul> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
45 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
46 |
<h2>Usage</h2> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
47 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
48 |
<p>We just run our favourite CAD with our hackish library preloaded:</p> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
49 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
50 |
<pre>LD_PRELOAD="./libspnav-lib-hack.so" freecad</pre> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
51 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
52 |
<p>and it translates the X11 API calls to the socket ones.</p> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
53 |
|
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
54 |
<h2>3DConnexion SpaceMouse Wireless</h2> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
55 |
<p>Our software works with this mouse:</p> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
56 |
<m:img src="img/3DConnexion-SpaceMouse-1.jpeg"/> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
57 |
<m:usb-id/> |
8e583c8df660
cadMousePro, Spacenav Demo, Spacenav Simulator, Spacenav Hack
František Kučera <franta-hg@frantovo.cz>
parents:
136
diff
changeset
|
58 |
|
136
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
59 |
</text> |
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
60 |
|
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
61 |
</stránka> |
025ec3d898c4
mouse.globalcode.info – website skeleton
František Kučera <franta-hg@frantovo.cz>
parents:
diff
changeset
|
62 |