![]() |
Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Star II
es ist simpler als es sich im Titel anhört, ich hab an meinem PDA eine eingebaute GPSmaus und ich hab es mit Dialect WinCE hingekriegt die daten auszulesen...(so:
Delphi-Quellcode:
)
myport=comport("COM5:",{baud:4800})
. . . text=myport.read() da entstehen dann strings die etwa so aussehen:
Delphi-Quellcode:
so und das will ich nun auch mit Lazarus für den ppc hinbekommen.
$GPGGA,191410,4735.5634,N,00739.3538,E,1,04,4.4,351.5,M,48.0,M,,*45
ich hab' dazu schon das hier gefunden:
Delphi-Quellcode:
^^aber das bringt mich nicht weiter :( (aber vielleicht euch!) var CommIn, CommOut : string; NumberWritten : dWord; begin CommIn := 'COM6:'; hCommIn := CreateFile(PWideChar(CommIn), GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, NULL); if hCommIn=INVALID_HANDLE_VALUE then begin ShowMessage('Unable to open '+ CommIn); end else begin end; ich will ja imprinzip nur aus der Com-Abfrage einen String machen. hoffe auf eure Hilfe :-D -xy124- |
Re: Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Sta
Hallo,
ich weiss ja nicht, ob Du schon wusstest...
Delphi-Quellcode:
ansonsten ist da eigentlich(im Lazarus) kein Unterschied.
var
CommIn, CommOut : string; NumberWritten : dWord; begin CommIn := 'COM6:'; //<<--dann muesste da zuerst COM5 rein hCommIn := CreateFile(PWideChar(CommIn), GENERIC_WRITE, 0, 0, OPEN_EXISTING, 0, NULL); if hCommIn=INVALID_HANDLE_VALUE then begin ShowMessage('Unable to open '+ CommIn); end else begin end; |
Re: Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Sta
@Der.Kaktus: ja wusst ich schon hab den code aus nem Anderm Forum übernommen
aber wie komm' ich dann an die Variable CommOut? |
Re: Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Sta
Ok, dann schau mal hier..vielleicht hilft es weiter.
![]() |
Re: Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Sta
ja genau das hab ich vor aber nur mit Lazarus und nicht mit delphi - ich bracuh doch nur so ne komische DLL die auf meinem PPC funzt !
die meisten Delphi-dll's funzen auf meinem "echtem" computer unter LAZARUS aber nicht auf dem PDA kennt jemand eine DLL die auf dem PDA geht? :?: :cyclops: :?: :cyclops: :?: :cyclops: :?: |
Re: Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Sta
Zitat:
|
Re: Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Sta
die dll die auf dem echtem pc geht: RSCOM.dll
unit dazu(RSCOMdec.pas):
Delphi-Quellcode:
und meine Unit:
unit RSCOMdec;
interface uses windows; Function OPENCOM(OpenString:PChar):Integer;stdcall; external 'RSCOM.DLL'; Procedure TIMEOUTS (TOut: Integer); stdcall; external 'RSCOM.DLL'; Procedure BUFFERSIZE (Size: Integer); stdcall; external 'RSCOM.DLL'; Procedure CLOSECOM(); stdcall; external 'RSCOM.DLL'; Procedure SENDBYTE (Dat: Integer); stdcall; external 'RSCOM.DLL'; Function READBYTE (): Integer; stdcall; external 'RSCOM.DLL'; Procedure SENDSTRING (Buffer: PChar); stdcall; external 'RSCOM.DLL'; Function READSTRING (): PChar; stdcall; external 'RSCOM.DLL'; Procedure CLEARBUFFER (); stdcall; external 'RSCOM.DLL'; Function INBUFFER (): DWORD; stdcall; external 'RSCOM.DLL'; Function OUTBUFFER (): DWORD; stdcall; external 'RSCOM.DLL'; Procedure DTR(d:WORD); stdcall; external 'RSCOM.DLL'; Procedure RTS(d:WORD); stdcall; external 'RSCOM.DLL'; Procedure TXD(d:WORD); stdcall; external 'RSCOM.DLL'; Function CTS:Integer; stdcall; external 'RSCOM.DLL'; Function DSR:Integer; stdcall; external 'RSCOM.DLL'; Function RI:Integer; stdcall; external 'RSCOM.DLL'; Function DCD:Integer; stdcall; external 'RSCOM.DLL'; function INPUTS():Integer; stdcall; external 'RSCOM.DLL'; procedure TIMEINIT(); stdcall; external 'RSCOM.DLL'; function TIMEREAD(): Real; stdcall; external 'RSCOM.DLL'; procedure DELAY(DelayTime: Real); stdcall; external 'RSCOM.DLL'; procedure REALTIME(); stdcall; external 'RSCOM.DLL'; procedure NORMALTIME(); stdcall; external 'RSCOM.DLL'; implementation end.
Delphi-Quellcode:
der ppc gibt als fehler einfach "keine gültige PocketPC-Anwendung"uses RSCOMdec.pas procedure TForm1.Button1Click(Sender: TObject); var i:integer; begin for i := 1 to 255 do begin s := s+char(readbyte); application.ProcessMessages; end; memo1.lines.strings[0]:=s; end; procedure TForm1.Button2Click(Sender: TObject); begin CloseCOM; close; end; procedure TForm1.FormCreate(Sender: TObject); var openstring: string; begin Openstring := 'COM5:4800,N,8,1'; OPENCOM (pchar (Openstring)); end; |
Re: Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Sta
weiß denn keiner von den 45260 Benutzern hier im Forum wie man mit Lazarus Comports einbinded, sodass das ganze auch noch auf dem PocketPC läuft? :?: :cry: :shock: :(
|
Re: Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Sta
Zitat:
ich weiss es auch nicht..aber ich hab mal geschaut..vielleicht hilft Dir das --> ![]() |
Re: Lazarus, PPC, Com5 ansprechen, dahinter ist ein Sirf Sta
Mir erschließt sich dein Problem nicht so ganz. Auf COM-Ports kann man doch ganz normal über die Windows-API zugreifen, ob nun auf Desktop-Windows oder Windows CE. Das unterscheidet sich doch nicht sonderlich und hat auch nichts mit Lazarus zu tun. Hast du mal ganz normal unter Windows mit CreateFile und den COM-Funktionen (einfach den Beispielen aus dem Windows SDK folgen) auf die COM-Schnittstelle zugreifen können? Wenn ja, ist es unter Windows CE genau dasselbe. Nur dass dort nicht alles verfügbar ist (ich meine mich dunkel an eine Spezialität im Zusammenhang mit WaitCommEvent erinnern zu können). Aber zumindest haben wir hier eine Implementierung mit reiner Windows-API auf einem 3.0- und einem 4.2-CE-System laufen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:54 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz