Hallo,
ich bin neu in der Delphi-Entwicklung. (Neuer Job) Ich habe etwas Erfahrung (4 Jahre) mit µCs unter Verwendung von C.
Ich habe auch schon einiges an Software für Windows geschrieben, muss aber nun ein Delphi-Programm auf Firemonkey portieren. Zielsystem ist OS X 10.8.
Jetzt zu meinem Problem:
Ich greife in dem Programm auf eine (virtuelle) serielle Schnittstelle des Mac zu. (/dev/cu.usbmodemxxx) Ich sende einen Befehl an ein Messgerät und dieses Antwortet mit einer definierten Anzahl von Bytes.
Das hat nach vielen Versuchen nun auch endlich geklappt.
Jetzt gibt es aber auch einen Modus in dem das Messgerät sendet und die Software nicht wissen kann wann gesendet und wie viele Bytes gesendet werden. Also habe ich eine Funktion geschrieben der nachsehen soll wie viele Bytes im Buffer sind. Normalerweise sollte das so funktionieren:
Delphi-Quelltext
1: 2: 3: 4:
| function TOSXCom.WaitingData: integer; begin Ioctl(com_handle, FIONREAD, @result)); end; |
Aber ich bekomme nur unsinnige Werte zurück. Das Handle ist definitiv i.o. Alles andere funktioniert auch. Lesen Schreiben, Baudrate ändern usw.
Hat sich jemand schon mal mit Firemonkey, OS X und Seriellen Schnittstellen beschäftigt und könnte mir einen Tip geben.
Gruß Jenny