Software

Die Software ist für sämtliche Versionen von Service USB identisch. Je nach Interface stehen mehr oder unterschiedliche Ein- und Ausgänge zur Verfügung.

Schichtenmodell Service USB Interfaces

 

Installation und Inbetriebnahme

Von der beiliegenden CD-ROM das Installationsprogramm „SERVICE USB.pkg" starten. Dieses installiert das Service USB Framework und das AppleScript OSAX, also sämtliche Komponenten, die das Betriebssystem im Auslieferungszustand benötigt.

Software

Zuerst den Treiber installieren

Die Installation muss auf dem aktiven System erfolgen. Für die Installation wird das Administratorpasswort benötigt. Nach erfolgreicher Installation muß die grüne LED „USB Betriebsbereit" am Interface leuchten.

Je nachdem mit welchem Programmiersystem Sie arbeiten möchten, kopieren Sie die weiteren Ordner der CD auf Ihre Festplatte. Für die ersten Gehversuche sind die Programme „SERVICE Test RB X" bzw. „PlusTest" aus dem Ordner „Testprogramme" geeignet.

Software

Die mitgelieferte Software

 

Programmroutinen

Sämtliche Programmierbeispiele basieren auf Grundbefehlen, die in den verschiedenen Programmen und Umgebungen (AppleScript, Adobe Director, 4th Dimension, Runtime Revolution, MaxMSP, RealBasic, u.s.w.) Verwendung finden.

Die Programmierbeispiele für FileMaker, RagTime und Numbers verwenden AppleScript. In den grafischen Umgebungen Scratch und MaxMSP ist die Ansteuerung den Programmen adäquat angepasst.

Die Grundbefehle liefert ein Framework, welches sich in dem Pfad /Library/Frameworks/Service USB Driver.framework befindet.

Basierend auf diesem Framework arbeitet die Unterstützung für AppleScript. Diese befindet sich in dem Pfad:
/Library/ScriptingAdditions/SERVICE USB.osax.

Die Erweiterungen für RealBasic, Java, 4th Dimension, Runtime Revolution, MaxMSP, Scratch, Director und TCP/IP greifen ebenfalls auf dieses Framework zu.

 

 

Befehlssyntax

Je nach Programmierumgebung lauten die Befehle systembedingt etwas unterschiedlich. Die Art der Parameterübergabe ist ebenfalls ein kleines bisschen unterschiedlich. Am Beispiel eines Befehls zur Ausgabe wird die grundsätzliche Handhabung erklärt.

Der Beispielbefehl gibt ein Byte an das Interface und setzt die Ausgänge entsprechend. Sie können also an Hand der Leuchtdioden auf dem Interface sofort erkennen, ob alles richtig ausgegeben worden ist. Die Befehlssyntax für den Befehl set SERVICE output value, der die digitalen Ausgänge ansteuert, lautet in:

Runtime Revolution:
ServiceUSBSetOutputValue value, DeviceID

4th Dimension:
err:=Service SetOutputValue (myOutputValue;deviceid)

Adobe Director:
SERVICEUSBSetOutputValue myOutputValue, deviceid, timeout

Apple Script:
set SERVICE output value 85 device id 0 timeout 0

RealBasic:
SERVICEUSBSetOutputValue(Value as Integer, DeviceID as Inte-
ger, Timeout as Integer) as Integer

MaxMSP:
setOutputValue value DeviceID

C,C++, ObjectiveC Framework (Xcode):
OSErr SetOutputValue(UInt8 inValue,DeviceIdentifierRef inDeviceIdentifier=kUseDefaultDeviceIdentifier,UInt32 inTimeout=kDefaultTimeout);

Java:
public int ServiceUSB_SetOutputValue(int value, int inDeviceIdentifier, long timeout)

UnixShell (Service USB Tool)
SERVICE_USB_Tool -c set_output -v value [-d deviceID]

TCP/IP (SUSBServer)
set_output value [deviceID]

Diesen Ausgabebefehlen sind die Variablen value, DeviceID und timeout gemeinsam. Bei einigen Programmierumgebungen wird zusätzlich ein Fehlercode zurückgeliefert. Dieser ist normalerweise 0, wenn der Befehl ordnungsgemäß ausgeführt wurde. Die genaue Fehlerbeschreibung der von 0 abweichenden Werte befindet sich in
/Library/Frameworks/Service USB Driver.framework/Headers/ServiceUSBToolbox.h.

Value ist der Ausgabewert im Bereich von 0-65535, wobei je nach Interface zur Zeit nur die unteren 1,4,8 oder 12 bits genutzt werden.

DeviceID gibt an, welches Service USB gemeint ist. Bei nur einem angeschlossenen Service USB setzen Sie die DeviceID auf 0. Bei mehreren angeschlossenen Service USB bestimmt die DeviceID für welches Service USB der Befehl gilt. Die DeviceID ist vierstellig, entspricht der Seriennummer und ist je nach Interface aufgeklebt oder eingeschlagen. Z.B. 5001, 1487 oder 2516. Anstelle einer Hartkodierung können die DeviceIDs auch automatisch ermittelt werden. Programmierbeispiele befinden sich auf der CD-ROM.

Timeout ist meistens auf 0 zu setzen. In Runtime Revolution, AppleScript, MaxMSP und RealBasic können timeout und, wenn nur ein Interface angeschlossen ist, auch die deviceID entfallen.

Beispiel: Um die acht Ausgänge abwechselnd auf 0 und 1 zu setzen, lautet der zugehörige Dezimalwert 01010101 = 85. In diesem konkreten Fall lauten die Befehle:

Runtime Revolution:
SERVICEUSBSetOutputValue 85

4th Dimension:
err:=Service SetOutputValue (85;0)

Macromedia Director:
SERVICEUSBSetOutputValue 85, 0, 0

Apple Script:
set SERVICE output value 85

Real Basic:
dim errorCode as integer
errorCode = SERVICEUSBSetOutputValue(85, 0, 0)

MaxMSP:
setOutputValue 85

C,C++ Framework (Xcode):
SetOutputValue (85,(DeviceIdentifierRef)0,0);

UnixShell
./SERVICE_USB_TOOL -c set_output -v 85

TCP/IP
set_output 85