AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Strings über COM-Port Senden über einen Pointer
Thema durchsuchen
Ansicht
Themen-Optionen

Strings über COM-Port Senden über einen Pointer

Ein Thema von itblumi · begonnen am 29. Mai 2010 · letzter Beitrag vom 29. Mai 2010
 
itblumi

Registriert seit: 28. Mär 2009
73 Beiträge
 
Delphi XE6 Professional
 
#1

Strings über COM-Port Senden über einen Pointer

  Alt 29. Mai 2010, 16:29
Hallo Leute,

ich habe vor geraumer Zeit eine COM-Port Komponente auf das neue Delphi 2010 umgestellt und bisher hat sie auch gut funktioniert bis jetzt. Es ist ein Fehler aufgetreten den ich mir nicht erklären kann. Wenn ich einen String der zum Beispiel '$PFAL,Sys.Cnf.Reset' so aus sieht sende macht er alles wie er es soll. Aber wenn der String

'$PFAL,CNF.Set,AL14=GPS.Nav.sSpeed>=1&sys.timer.e0 &Sys.Timer.s4=inactive&Sys.Timer.s5=running:GPS.Hi story.Write,0,"&(IMEI),B:,10,1,,,,,&(Can3),,,,,C:, 11,4,0,7,4,,&(Can10),&(Can9),,,,,,E:,6,1,&(speed.c mps),&(Fieldstrength),&(Alt),&(DOP),&(SatsUsed),"'
so aus sieht.

Dann schneidet er beim senden den mittel Teil heraus. Das einzige was eine Erklärung dafür wäre ist das die Länge des Pointers nicht korrekt ist, die ich vorher berechne.

Hier ist die Funktion die ich zum senden benutze:

Delphi-Quellcode:
function TCommPortDriver.SendString( s: AnsiString ): boolean;
var
   DataPtr: Pointer;
   Size: Cardinal;
begin
   Result := False;
   DataPtr := nil;
   try
      Size := Length( s ) + 1 * SizeOf( PAnsiChar );
      GetMem( DataPtr , Size );
      Move( PAnsiChar( s )^ , DataPtr^ , size );
      Result := SendData( DataPtr, size ) = size;
   finally
      FreeMem( DataPtr , size );
      DataPtr := nil;
   end;
end;
Hat jemand hier eine Erklärung dafür?
Jan
Ein neuer Tag bringt so einiges mit sich. Was auch immer es ist, es bleibt ein kleines Abenteuer.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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