hiho Ihr Wissenden,
Ich bin vielleicht etwas zu ausfuehrlich, aber vielleicht hilft es euch ja.
ich habe gerade folgendes Problem:
Informativ: ich bastele gerade an Mindstorm (Lego System) dabei gibt es folgende beteiligte Hardware:
(1) mein Rechner (2) ein Usb Tower der per USB an meinen rechner angeschlossen ist und per Infrarot mit dem (3)RCX - dem Herzstueck des Legorobis - kommuniziert.
es gibt unter linux eine Software um eigene geschriebene Programme auf den RCX zu uebertragen, die nennt man NQC (Not Quite C). das zugreifen ueber diese Software funktioniert auch wunderbar. (Ich kann Programme uebertragen)
aber: ich arbeite gleichzeitig mit legolog (einer PROLOG-Variante).
dieses kann normalerweise auch auf das Gerate zugreifen. (Wenn richtig konfiguriert)
Das Device wurde auch ordentlich angelegt:
bacher@QotSA:~/software/Legolog/Main$ ls /dev/usb/
legousbtower0
sowie die richtigen Module geladen
bacher@QotSA:~/software/Legolog/Main$ lsmod | grep usb
legousbtower 15492 0
usbhid 29376 0
usbcore 107384 5 legousbtower,usbhid,ehci\_hcd,uhci\_hcd
wie gesagt, es ist alles soweit in Ordnung, bis auf das zugreifen via swi-prolog (kennen wahrscheinlich die wenigsten, ist aber auch halb so wichtig).
mit
?- consult(main\_swi).
compiliere ich das Programm, das macht er (auch wenn mit Warnings)
schliesslich sollte ich mit Aufruf der Funktion main Rechner und RCX synchronisieren koennen. Da aber kommt folgende Meldung:
?- main.
stty: standard input: Inappropriate ioctl for device
Eine Untersuchung der Files bringt dann auch einen stty Eintrag zum Vorschein:
bacher@QotSA:~/software/Legolog/Main$ cat lego\_swi.pl | grep stty
% initRcx: Uses stty to initialise the serial port, setting baud rate, etc.
shell('stty -echo -icanon -iexten -isig -icrnl -inpck -istrip -ixon -cstopb cs8 parenb parodd -opost ispeed 2400 ospeed 2400
probiere ich den Eintrag der an die shell uebergeben wird aus bekomme ich dann auch wieder die Fehlermeldung:
bacher@QotSA:~/software/Legolog/Main$ stty -echo -icanon -iexten -isig -icrnl -inpck -istrip -ixon -cstopb cs8 parenb parodd -opost ispeed 2400 ospeed 2400
Ich schaetze ich muss den port selber einrichten, nur ich habe keine Ahnung wie ich das machen soll...
Das interressante an meinem Problem ist, das ein Bekannter mit der selben Umgebung (natuerlich nicht mit dem selben Rechner, aber er hat die gleiche Situation wie ich, bis auf das Detail, das er nicht wie ich ubuntu/hoary sondern ein rohes Debian/sarge (beide haben wir einen 2.6 er Kernel, ich aber eine neuere Version als er) und das er nur USB 1.0 und nicht wie ich 2.0 besitzt) das Programm zum laufen bekommen hat. Er musste fuer stty keine Veraederung vornehmen (Standardmaessig wird stty in dem Programm auf /dev/ttyS0 gesetzt, muss aber eigentlich auf das Device des USB Gerates gesetzt werden).
Hat jemand eine Idee?
gruss vom josh