Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Serielle Schnittstelle - Bitfolge übertragen (https://www.delphipraxis.net/84097-serielle-schnittstelle-bitfolge-uebertragen.html)

Koasa 11. Jan 2007 10:20


Serielle Schnittstelle - Bitfolge übertragen
 
Hi,

ich müsste für meine Diplomarbeit Daten von PC und µC austauschen.
Dafür habe ich das Zusatzpaket AsyncProf für Delphi installiert, das auch wunderbar funktioniert, wenn ich Charakters schicken möchte.
Ich bin allerdings noch nicht dahinter gekommen, wie ich einfach eine bestimmte Bitfolge (zB 10101100) senden kann, da ja alles char-basiert ist. Kann mir da vl jemand weiterhelfen?

Schon einmal danke für die Antoworten,

MfG Stefan

chaosben 11. Jan 2007 10:24

Re: Serielle Schnittstelle - Bitfolge übertragen
 
Aus der Hüfte geschossen würde ich sagen: Sende doch einfach ein '¬' was deiner Bitfolge als Zeichen entspricht. :)

ste_ett 11. Jan 2007 10:24

Re: Serielle Schnittstelle - Bitfolge übertragen
 
Du sendest einfach die Zahl, die deiner Bitfolge entspricht. :)

10101100 (2) <=> 172 (10)

Koasa 11. Jan 2007 11:53

Re: Serielle Schnittstelle - Bitfolge übertragen
 
Ja aber welchen befehl soll ich dabei verwenden?

der normale befehl zum senden sieht ja zb so aus:
ApdComPort1.OutPut := 'A';

wenn ich statt A 170 schreibe, interpretiert er das doch als String und nicht als Zahl 170, die binär 10101100 entspricht.

chaosben 11. Jan 2007 11:57

Re: Serielle Schnittstelle - Bitfolge übertragen
 
Imho hieß die Funktion, die dir dabei hilft, 'Ord'.

Maja Jessica 11. Jan 2007 12:42

Re: Serielle Schnittstelle - Bitfolge übertragen
 
Hi,

wenn du z.B. in einem TEdit die Zeichenfolge als String, wie "10101010", eingeben und senden möchtest, könnte dieses helfen:

Delphi-Quellcode:
function IntOfBin(Bin: string): Cardinal;
var
  i: Integer;
begin
  Result := 0;
  Bin := Copy(Bin, 1, 32);
  for i := Length(Bin) downto 1 do
    if Bin[i] = '1' then
      Inc(Result, 1 shl (Length(Bin) - i));
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  ShowMessage(IntToStr(IntOfbin(edit1.Text))+ ' ist das Zeichen '+ chr(IntOfbin(edit1.Text)));
// ApdComPort1.OutPut := chr(IntOfBin(Edit1.Text);
end;
Die hübsche Function IntOfBin ist nicht von mir, habe ich hier im Forum gefunden.

Gruß, MJ


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz