HSG |
|
Unter Windows ist BricxCC eine gut geeignete Umgebung, um NXC-Programme zu entwickeln und zu testen. Zur Installation lädt man von die neueste Installationsdatei herunter und führt sie aus. Um den Compiler nbc und nexttool in einem Terminal nutzen zu können, sollte der Pfad zu den Programmen der Umgebungsvariablen path hinzugefügt werden.
Leider ist weiterhin BricxCC nicht unter Linux verfügbar. Die Installation von nbc unter Linux ist an anderer Stelle beschrieben. Der Editor Kate kann aber als sehr guter Ersatz gelten. Am Syntax-Highligthing für NXC arbeiten wir gerade.
Den korrekten Anschluss des NXT-Bricks kann man z.B. mit nexttool prüfen. nexttool -help gibt einen Überblick über die vielen Möglichkeiten des Programms.
Man wird seine Programme in einem eigenen Verzeichnis z.B. robotik abspeichern. Dieses Verzeichnis muss am HSG im persönlichen Home h liegen. Es empfiehlt sich zunächst in dieses Verzeichnis zu wechseln (cd steht für change directory).
mk@a23pc:~$cd h/robotik mk@a23pc:~/h/robotik$
Jetzt kann mit einem Editor z.B. gedit oder kate die Quelltextdatei z.B. p1.nxc erstellt werden.
task main() { TextOut(20,30,"Hallo Welt!"); Wait(3000); }
Jetzt kann der Compiler nbc mit der Option -d (übersetzen und gleich download) und dem Parameter p1.nxc aufgerufen werden.
mk@a23pc:~/h/robotik$nbc -d p1.nxc
Man sieht sehr viele Meldungen über den Bildschirm huschen. Im Erfolgsfall gibt es keinen Fehler und der NXT-Brick zeigt durch einen kurzen Piepston die erfolgreiche Übertragung an.
Was passiert im Fehlerfall? Wir wollen testweise das schließende Anführungszeichen " in Zeile 3 weglassen. Jetzt erhält man folgende Fehlermeldung:
# Error: String literal expected File "/home/mk/h/robotik/p1.nxc" ; line 4 # #---------------------------------------------------------- # Error: ')' expected File "/home/mk/h/robotik/p1.nxc" ; line 4 # Wait( #---------------------------------------------------------- # Error: ';' expected File "/home/mk/h/robotik/p1.nxc" ; line 4 # Wait(3 #---------------------------------------------------------- # Status: NXC compilation failed.
Es könnte irritieren, dass in Zeile 4, die ja unverändert richtig ist, Fehler gemeldet werden. Hierzu muss man wissen, dass der Compiler erst in Zeile 4 mit dem Auftreten des Zeichens 'W' von Wait wissen konnte, dass das fehlende Anführungszeichen nicht mehr kommen kann. Typischerweise wird man die erste Fehlermeldung betrachten und den Fehler von der Zeile des ersten Bemerkens aus nach oben suchen. Im Beispiel lautete die Meldung 'Error: String literal expected', dh. der Compiler hätte mit einem String, also einer Zeichenkette gerechnet. Strings beginnen und enden in NXC mit einem Anführungszeichen. Das " am Ende hat hier gefehlt, so dass keine korrekte Zeichenkette erkannt wurde.
Einen guten Einstieg in NXC bietet das NXC-Tutorial von Daniele Benedettelli, das auf Deutsch übersetzt wurde und auf www.roberta-home.de fortlaufend gepflegt wird.
Auf der Seite www.debacher.de/wiki/NXC von Herrn Debacher findet man auch eine gute Einführung.