1. Beschreibung
Shuttle ist eine Nicht-Echtzeit-HAL-Komponente, die Schnittstellen Contour Design’s ShuttleXpress, ShuttlePRO, und ShuttlePRO2 Geräte mit LinuxCNC’s HAL.
Wenn der Treiber ohne Befehlszeilenargumente gestartet wird, sucht er in allen /dev/hidraw*-Gerätedateien nach Shuttle-Geräten und verwendet alle gefundenen Geräte. Wenn er mit Befehlszeilenargumenten gestartet wird, prüft er nur die angegebenen Geräte.
Das ShuttleXpress verfügt über fünf Taster, ein Jogwheel mit 10 Zählern/Umdrehung und ein federbelastetes Außenrad mit 15 Positionen, das beim Loslassen in die Mitte zurückkehrt.
Das ShuttlePRO verfügt über 13 Tasten, ein Jogwheel mit 10 Zählern/Umdrehung und ein federbelastetes Außenrad mit 15 Positionen, das beim Loslassen in die Mitte zurückkehrt.
Das ShuttlePRO2 verfügt über 15 Drucktasten, ein Jogwheel mit 10 Zählern/Umdrehung und ein federbelastetes Außenrad mit 15 Positionen, das beim Loslassen in die Mitte zurückkehrt.
|
Warning
|
Die Shuttle-Geräte verfügen über einen internen 8-Bit-Zähler für die aktuelle Jog-Wheel-Position. Der Shuttle-Treiber kann diesen Wert nicht kennen, bis das Shuttle-Gerät sein erstes Ereignis sendet. Wenn das erste Ereignis beim Treiber eingeht, verwendet der Treiber die vom Gerät gemeldete Jogwheel-Position, um den Zähler auf 0 zu initialisieren. Das heißt, wenn das erste Ereignis durch eine Jogwheel-Bewegung erzeugt wird, geht diese erste Bewegung verloren. Jede Benutzerinteraktion mit dem Shuttle-Gerät erzeugt ein Ereignis, das den Fahrer über die Position des Jogwheels informiert. Wenn Sie also (zum Beispiel) beim Start eine der Tasten drücken, funktioniert das Jog-Wheel einwandfrei und bemerkt den ersten Klick. |
2. Einrichtung
Der Shuttle-Treiber benötigt Leserechte für die Gerätedateien /dev/hidraw*. Dies kann durch Hinzufügen einer Datei /etc/udev/rules.d/99-shuttle.rules mit dem folgenden Inhalt erreicht werden:
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0020", MODE="0444"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="05f3", ATTRS{idProduct}=="0240", MODE="0444"
SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0b33", ATTRS{idProduct}=="0030", MODE="0444"
Das LinuxCNC Debian-Paket installiert eine entsprechende udev-Datei automatisch, aber wenn Sie LinuxCNC aus dem Quellcode bauen und nicht das Debian-Paket verwenden, müssen Sie diese Datei von Hand installieren. Wenn Sie die Datei von Hand installieren, müssen Sie udev anweisen, seine Regeldateien neu zu laden, indem Sie udevadm control --reload-rules ausführen.
3. Pins
Allen HAL-Pin-Namen wird das Präfix "shuttle" vorangestellt, gefolgt vom Index des Geräts (die Reihenfolge, in der sie vom Treiber gefunden wurden), z. B. shuttle.0 oder shuttle.2.
- <Prefix>`.button-<ButtonNumber>` (bit out)
-
Diese Pins sind wahr (1) wenn die Schaltfläche gedrückt wird.
- <Prefix>`.button-<ButtonNumber>-not` (bit out)
-
Diese Pins haben den umgekehrten Zustand des Buttons, also sind sie True (1) wenn der Button nicht gedrückt wird.
- <Prefix>`.counts` (s32 out)
-
Kumulierte Zählungen des Jogwheels (das innere Rad).
- <Prefix>`.spring-wheel-s32` (s32 out)
-
Die aktuelle Auslenkung des Federrads (des äußeren Rads). Im Ruhezustand ist er 0 und reicht von -7 am äußersten Ende gegen den Uhrzeigersinn bis +7 am äußersten Ende im Uhrzeigersinn.
- <Prefix>`.spring-wheel-f` (float out)
-
Die aktuelle Auslenkung des Federrads (des äußeren Rads). Sie beträgt 0,0 im Ruhezustand, -1,0 im extremen Gegenuhrzeigersinn und +1,0 im extremen Uhrzeigersinn. Die Shuttle-Geräte melden die Position des Federrads als Ganzzahl von -7 bis +7, so dass dieser Pin nur 15 diskrete Werte in seinem Bereich meldet.