Autor Beitrag
jenny_cy0
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mi 13.03.13 08:53 
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:

ausblenden 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
Sinspin
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1185
Erhaltene Danke: 98

Win7
DXE2 Prof, Lazarus
BeitragVerfasst: Mi 13.03.13 22:27 
Hi und :welcome: in der EE!

Das riecht ganz leicht nach Crosspost, aber egal.

Ich habe damit noch nicht gearbeitet aber ich greife mal ins Blaue: Versuch den Wert mal auf eine lokale Variable zu lesen und dann erst Result zuzuweisen. Initialisiere die Variable mit Null oder einem anderen Wert um zu sehen ob sie verändert wird.

_________________
Solange keine Zeile Code geschrieben ist, läuft ein Programm immer fehlerfrei.
Ich teste nicht, weil ich Angst habe Fehler zu finden.
jenny_cy0 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Do 14.03.13 19:54 
Na ja, eher 2 doofe ein Gedanke :D Das ist ein Post von meinem Kollegen.

Das habe ich alles schon probiert. Aber es funktioniert einfach nicht. Ich habe auch schon die Funktion selbst importiert, aber auch das ohne Erfolg.

Aber wir haben jetzt eine andere Lösung gefunden. Wir haben eine kleine Bibliothek mit XCode geschrieben welche uns die wichtigsten Funktionen zur Verfügung stellt. Die binden wir in unser Programm ein. Das funktioniert Prima und wir müssen nicht das ganze Programm neu schreiben.

Gruss Jenny