Auf der CD-ROM befindet sich der Service-USB Treiber für Macintosh OSX 10.3 - 10.8, Quicktime-Filme von fischertechnik® Modellen und umfangreiche Software für
AppleScript, RealBasic, Xcode (C, C++, Cocoa, Java, AppleScript Studio), FileMaker, Director, Java mit BlueJ, MaxMSP, Ragtime, Runtime Revolution, Scratch, 4th Dimension, Numbers, ein TCP/IP Server, um Service USB mit oder ohne Bonjour im Netzwerk zu nutzen, diverse Beispielprogramm für Pulsbreitenmodulation und die RS232 Schnittstelle.
Außerdem eigenständige Programme für verschiedene fischertechnik®-Baukästen in RealBasic, sowie Ansteuerungsbeispiele für Kassenschublade, Kassenbondrucker und LCD-Kundenanzeige. Eine Demo-Version von directKasse, dem Kassenprogramm mit kleinem Warenwirtschaftssystem für den Einzelhandel ist ebenfalls enthalten.
Das Installationsprogramm „SERVICE USB.pkg"
Dieses Programm installiert den Treiber. Im Einzelnen handelt es sich um folgende Komponenten:
/Library/Frameworks/Service USB Driver.framework
Enthält das Frameworks, welches sämtliche Ansteuerroutinen für Service USB enthält.
/Library/ScriptingAdditions/SERVICE USB.osax
Enthält die AppleScript-Unterstützung.
/Library/Receipts/SERVICE USB.pkg
Enthält das Installationsprogramm. Der Ordner „Receipts" dient der Übersicht, welche Erweiterungen auf dem Rechner schon installiert wurden.
/Library/StartupItems/SERVICE_USB_FirmwareLoader
Sorgt dafür, dass ein Hintergrundprozess (Daemon) gestartet wird, der im Bedarfsfall die Firmware in das Interface lädt.
/System/Library/Extensions/SERVICEUSBClassicSeize.kext
Diese Kernel Extension führt keinen Programmcode aus. Sie besteht lediglich aus einer sogenannten „plist". Diese „plist" weist die Classic Umgebung auf PowerPC an, nicht auf das Interface Service USB zuzugreifen.
Der Ordner „Runtime Revolution"
Dieser Ordner enthält das External "SUSBrevolution.bundle". Damit die Revolution-Programmierung das External benutzen kann, muss der Pfad des Externals im Stack-Inspector gesetzt werden. Danach den Stack sichern, Revolution schließen und erneut öffnen. In dem Programmierbeispiel „Service USB Plus.rev" sind Beispiele für alle Ein- und Ausgabefunktionen und die Programmierung eines Schrittmotors. Eine Textdatei mit dem Namen „SERVICE USB Revolution Befehle" enthält sämtliche Revolution Befehlserweitungen in ihrer Anwendungssyntax. Die Befehle können mit Kopieren und Einsetzen schnell in eigenen Programmierungen verwendet werden. Die jeweils aktuellste Version von Revolution gibt es bei Runtime Revolution unter http://www.runrev.com.
Der Ordner „Fischertechnik"
Für die Modellbaukästen Industry Robots, Pneumatic Robots, Computing Starter Pack und den Cornelsen Experimenta Baukasten ist jeweils ein Beispielprojekt vorhanden, das die Quelltexte für RealBasic enthält. Die damit fertig erzeugten Programme sind im Ordner „Testprogramme" abgelegt, und ein Quicktime Film mit den einzelnen Modellen in Funktion befindet sich im Ordner „Screenshots und Filme".
Insbesondere folgende Modelle der Baukästen werden unterstützt:
Industry Robots II
Schweißroboter einachsig, Schweißroboter zweiachsig, 3-Achs Roboter
Industry Robots
Schwenkroboter, Schweißroboter, Säulenroboter, Knickarmroboter
Pneumatic Robots
Pneumatische Tür, Sortieranlage, Greifer, Bearbeitungszentrum
Bionic Robots
4 laufende Roboter, mit 6 und 4 Beinen
Baukasten Computing Starter
Motorsteuerung, Händetrockner, Ampel, Schiebetür, Temperaturregelung, Stanzmaschine, Parkhausschranke, Schweißroboter
Cornelsen Experimenta
Tasterleiste, Verkehrsampel, Motorwinde, Schildkröte, Materialaufzug, Werkzeugmaschine, Gebläse, Waschmaschine, Sortieranlage, Automatische Tür, Computerauge, Roboterarm, Lagersteuerung, Antennenrotor, Teach in Roboter
Trainingsroboter
• Zum Ansteuern des älteren fischertechnik®-Modells „Trainingsroboter" ist diese Programmierung vorhanden.
Der Ordner „RealBasic"
Hier enthalten ist ein Testprogramm für das reine Interface Service USB. Sämtliche Ein- Ausgabefunktionen und ein kleines Oszillographenprogramm zum Auftragen von Spannungsänderungen über die Zeit sind implementiert. Eine Textdatei mit dem Namen „Befehle RealBasic-ServiceUSB" enthält sämtliche RealBasic Befehlserweitungen in ihrer Anwendungssyntax. Die Befehle können mit Kopieren und Einsetzen schnell in eigenen Programmierungen verwendet werden.
Für eigene RealBasic Programmierungen müssen Sie entsprechend der RealBasic Anleitung die Datei „SERVICE USB Plugin X" in den Plugin Ordner von RealBasic kopieren.
Die jeweils aktuellste Version finden Sie beim Deutschen Vertrieb von RealBasic unter http://www.application-systems.de.
Der Ordner „4th Dimension"
Hier enthalten ist das Plugin und ein Testprogramm für den Betrieb von Service USB unter der Datenbankentwicklungsumgebung 4th Dimension. Sämtliche Ein- Ausgabefunktionen sind implementiert. Das beiliegende Beispiel ermöglicht insbesondere eine Langzeitmessung der Messwerte. Unterstützt werden die 4D-Versionen 6.8, 2003 2004, V11 und V13.
Die jeweils aktuellste Version von 4th Dimension gibt es beim Deutschen Vertrieb von 4D unter http://www.de.4d.com.
Der Ordner „Director"
Hier enthalten ist das Xtra und ein Testprogramm für den Betrieb von Service USB unter der Multimedia-Entwicklungsumgebung Adobe Director. Sämtliche Ein- Ausgabefunktionen sind implementiert.
Die jeweils aktuellste Version von Director gibt es bei Adobe unter http://www.adobe.com/de/products/director.
Der Ordner „AppleScript"
Die Datei „Service USB alle Befehle" enthält eine Liste sämtlicher Befehle in ihrer korrekten Schreibweise. Für die ersten Versuche reicht es, einzelne Zeilen wieder einzukommentieren (die -- Zeichen am Zeilenanfang entfernen) und dann den Befehl auszuführen.
Wenn nur ein Service USB angeschlossen ist, finden Sie zwei kurze Beispielprogramme zur Werteausgabe und Werteeingabe in dem Ordner „Beispiele Apple Script einfach".
In dem Ordner „Beispiele Apple Script mehrfach" befinden sich zwei Beispiele für den Umgang mit mehreren angeschlossenen Service USB. Das Script „Anzahl herausfinden" nennt die Anzahl und die DeviceID sämtlicher angeschlossener Service USB und dient als Beispiel für das automatische Herausfinden. Das Script „Device ID" fragt in einem Dialog den Benutzer nach der DeviceID und zeigt dann die Eingangswerte der Service USB mit dieser DeviceID an. Wird eine ungültige DeviceID angegeben, so lauten die zurückgelesenen Werte 0. Um das Beispiel einfach zu halten, wurden derartige Fehlbedienungen nicht gesondert abgefangen. Das Programm „Notification Sample" dient als Beispiel für den register SERVICE device notification - Befehl. Es wartet auf eine logische 1 an Eingangsbit 1 und spielt dann einen System-Warnton ab.
Der Ordner „Filemaker"
Der Ordner „FileMaker" enthält Beispiele für File Maker Pro 7-10, welche auf AppleScript aufbauen. „Service USB Filemaker einfach" enthält einfache Beispiele für den Betrieb eines Service USB. „Service USB Filemaker mehrfach" enthält komplexere Beispiele, die für den Betrieb mehrerer gleichzeitig angeschlossener Service USB gedacht sind.
Die jeweils aktuellste Version von Filemaker gibt es bei http://www.filemaker.de
Der Ordner „Ragtime"
Der Ordner „RagTime" enthält Beispiele für Ragtime 5.6 bis 6.5, welche auf AppleScript aufbauen. „SERVICE USB Ragtime einfach" enthält einfache Beispiele für den Betrieb eines Service USB. „SERVICE USB Ragtime mehrfach" enthält komplexere Beispiele, die für den Betrieb mehrerer gleichzeitig angeschlossener Service USB gedacht sind.
Die jeweils aktuellste Version von Ragtime finden Sie bei http://www.ragtime.de
Der Ordner „Xcode"
Dieser Ordner enthält verschiedene Beispiele in Xcode, die, bis auf AppleScript Studio, das Framework benutzen. Unabhängig von den Beispielen ist es möglich, eine eigene Programmierung mit dem Framework zu erweitern. Dies wurde bisher getestet mit:
• Carbon Application
• Cocoa Application
• C++ Tool
• Standard Tool
Nach dem Anlegen eines neuen Projekts muss das Framework im Xcode mit dem Menübefehl „Add Frameworks..." übernommen werden. Das Framework befindet sich im Pfad
/Library/Frameworks/Service USB Driver.framework
Anschließend muß das Headerfile „ServiceUSBToolbox.h" mit dem Menübefehl „Add Files..." in das Projekt integriert werden. Das Headerfile befindet sich im Pfad
/Library/Frameworks/Service USB Driver.framework/Headers/ServiceUSBToolbox.h
Nachdem die Programmierung mit #include "ServiceUSBToolbox.h" versehen wurde, stehen sämtliche Befehle zur Verfügung.
AppleScriptStudio greift auf das AppleScript OSAX zurück. Daher ist es hierbei nicht notwendig, das Framework zu integrieren.
Der Ordner „UNIX"
Dieser Ordner enthält ein Command Line Tool im Quelltext sowie die kompilierte Version in dem Unterordner /build. Im Terminal kann das Tool mit ./SERVICE_USB_TOOL gestartet werden. Innerhalb dieses Tools kann mit "help" die Befehlssyntax angezeigt werden. Das Tool kann Befehle ebenfalls direkt aus der Kommandozeile erhalten. Beispiel:
./SERVICE_USB_TOOL -c set_output -v 85
Der Ordner „RS232 Terminal"
Dieser Ordner enthält ein kleines Cocoa-Beispielprogramm mit dem Namen "SUSBTerminal".
Das Terminalprogramm zum Testen der RS232 Schnittstelle
Mit diesem Programm können Zeichen über die RS232 Schnittstelle gesendet und empfangen werden. Im oberen Teil des Fensters werden die gesendeten Bytes in grün und die empfangenen Bytes in gelb dargestellt. Jedes Zeichen wird mit seinem Hexadezimalwert und, sofern im sichtbaren ASCII-Bereich, auch als Zeichen dargestellt. Das Programm verfügt über drei Bereiche zur Zeicheneingabe über die Tastatur: Das große Fenster im oberen Teil und die beiden einzelnen Zeilen im unteren Teil. Nach einem Klick in den oberen Teil wird jeder Tastendruck direkt über die RS232 ausgegeben. Sollen Werte ausgegeben werden, die nicht über die Tastatur erreichbar sind, so können diese nach Umschalten in den HEX-Mode eingegeben werden. Als Beispiel soll der Buchstabe A ausgegeben werden. Während im ASCII-Mode einfach ein A auf der Tastatur getippt wird, erreicht man das gleiche Zeichen im HEX-Mode durch Eingabe von 41. In die beiden Zeilen unterhalb können kurze Zeichenfolgen eingegeben wer-den, die dann auf Knopfdruck gesendet werden. Je nach Modus wer-den diese als HEX- oder ASCII-Daten interpretiert. Dieses Programm soll bei den ersten Gehversuchen mit einem seriellen Gerät helfen. Wenn das Programm sehr zäh arbeitet, also nach jedem Tastendruck eine Pause von ca. 1 Sekunde einlegt, dann ist die Handshakeleitung nicht frei. Verbinden Sie in diesem Fall die Signale HSKi und HSKo des seriellen Steckers oder prüfen Sie die Funktion ihres seriellen Gerätes.
Der Ordner „AppleScriptStudio_Cocoa"
Dieser Ordner enthält eine gemischte AppleScript/Cocoa Application mit grafischer Oberfläche. Dieses Programm entspricht dem in RealBasic programmierten TestRB und dient der Ansteuerung sämtlicher Ein- und Ausgänge. In dem Programmteil „Oskar" können die Analog- und Digitaleingänge wie auf einem Oszillographen sichtbar gemacht werden.
Der Ordner „Pulsbreite"
Ein Testprogramm zum Ansteuern der Ausgänge mit Pulsbreitenmodulation. Es werden beide Modi unterstützt. Sowohl gleiche Pulsbreite für alle Ausgänge, als auch verschiedene Pulsbreite für alle Ausgänge sowie möglichen Kombinationen von Frequenzen und Pulsbreiten.
Der Ordner „Java"
In dem Ordner „SERVICE USB Java" befinden sich Beispiele und Bibliotheken für Java. Diese nutzen den JNIWrapper, der das zu Grunde liegende Framework für Java zugänglich macht. Es sind Beispiele unter XCode und BlueJ enthalten.
BlueJ gibt es kostenlos bei http://www.bluej.org.
Der Ordner „Testprogramme"
Der Ordner „Testprogramme" enthält eigenständigen Programme für die ersten Versuche. Es handelt sich um eine Auswahl fertiger Programme aus den Beispielen von XCode und RealBasic. Sie erlauben die schnelle Ansteuerung und das Testen des Interfaces mit folgenden Möglichkeiten
Der Ordner „MaxMSP"
Für die grafische Programmierumgebung Max/MSP von Cycling '74 finden Sie hier das External und die Beispielprogrammierung. Diese umfasst neben sämtlichen Befehlen die Ansteuerung von Schrittmotoren, Pulsbreitenmodulation und Abfrage der Analog- und Digitaleingänge. Die neueste Version von Max oder eine Demoversion gibt es hier: http://www.cycling74.com/products/max5
Der Ordner „teach robot"
In dem Ordner „teach robot" befinden sich die Beispielprogramme für den Teach-Robot von microelectronic Kalms. Der teach robot ist ein fünfachsiger, in einzelnen Funktionen variierbarer, unverkleideter Roboter, bei dem alle Antriebselemente, Körperteile und Weggeber frei zugänglich sind. Der Roboter von microelectronic Kalms benötigt 2 Service USB für den Betrieb.
Der Ordner „Schrittmotor"
Dieser Ordner enthält je eine RealBasic- Cocoa-, Adobe Director und MaxMSP Programmierung zum Ansteuern von Schrittmotoren.
Der Ordner „Numbers"
Dieser Ordner enthält ein AppleScript und ein Numbers Dokument, um Werte der Analogeingänge in Numbers einzulesen und diese grafisch aufzutragen.
Der Ordner „TCP/IP"
Enthält Programme, um die Befehle von Service USB über TCP-IP verfügbar zu machen.
Beim Starten von „SUSBServer" kann ein Port angegeben werden. Ohne Portangabe sucht sich das Programm selbst einen freien Port und wird dann über den Bonjour-Dienstnamen _ServiceUSB._tcp gefunden. Das Programm „SUSBClient" findet den Dienst sowohl über Bonjour als auch wahlweise mit fester IP und Portnummer.
Für die Verwendung von Telnet empfiehlt sich die Angabe eines Ports beim Starten des Servers. In diesem Beispiel Port 4711
./SUSBServer 4711
Danach ist der Server über Telnet erreichbar.
telnet 192.168.1.4 4711
Die Eingabe von help zeigt alle Befehle in ihrer korrekten Schreibweise an. Das Setzen des Digitalausgangs 7 geschieht z.B. mit
set_output_bit 1 7
Jeder Befehl liefert einen Wert zurück. Befehle zur Ausgabe geben eine 0 zurück, nachdem sie am Interface ausgeführt wurden, eine Fehlernummer im 13000er Bereich oder einen Syntax Error. Befehle zur Eingabe liefern den entsprechenden Eingabewert zurück.
Mit <Return> wird der letzte Befehl wiederholt.
Der Ordner „Kasse"
Hier befinden Beispiele für FileMaker und 4th Dimension zum Betrieb von Kassenschublade, Bondrucker und Kundenanzeige aus der Service USB Serie, sowie eine Demo-Version von directKASSE, dem Kassenprogramm mit Warenwirtschaftssystem für den Einzelhandel.
Der Ordner „Scratch"
Enthält ein Programm und ein Scratch Beispiel, um ServiceUSB über die „Remote Sensor Connection" von Scratch zu benutzen.
Scratch gibt es kostenlos bei http://scratch.mit.edu/