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.

Warnung

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.