Avatar billede soax Nybegynder
26. januar 2005 - 09:30 Der er 10 kommentarer og
1 løsning

Visse bit fra seriel porten

jeg skal gemme de bit jeg modtager fra seriel porten i et memo-felt

sådan se koden ud.....

//I: Integer;
    Tmp: string;
begin
  //Read data from comport
  Tmp := VaComm1.ReadText;

  //Debugging log...
  Memo2.Lines.text := Memo2.Lines.Text + Tmp;
end;
Avatar billede stone Forsker
26. januar 2005 - 09:48 #1
og??? hvad er problemet
Avatar billede soax Nybegynder
26. januar 2005 - 09:50 #2
problemet er at den ikke viser bit'ne, men et bogstav...
Avatar billede delphi-ksh Nybegynder
26. januar 2005 - 11:09 #3
De bits du taler om, er det COM (n) status bits (RTS, DTR osv.) eller er det DATA-bits vi taler om ?

Et eller andet sted på min HDD har jeg en komplet Delphi-pakke, der kan sende/modtage bits/data fra en seriel-port (COM N) og vise status'en (RTS etc.)
- den er vist nok interruptstyret. Jeg skal grave både i min hukommelse (for lidt RAM) og på min HDD for at finde den. Lige nu er jeg udenbys, men melder tilbage mandag / tirsdag.
Avatar billede soax Nybegynder
26. januar 2005 - 11:10 #4
hmmm jeg vil tro det er Data-bits jeg skal have fat i...
Avatar billede delphi-ksh Nybegynder
26. januar 2005 - 11:26 #5
Prøv at gå ind på: http://www.swissdelphicenter.ch/en/showcode.php?id=841 som en nødløsning- eller kommer pakken tirsdag / onsdag ...
Avatar billede delphi-ksh Nybegynder
26. januar 2005 - 11:28 #6
Avatar billede doc404 Novice
26. januar 2005 - 14:08 #7
Du skal jo konvertere det du læser til binær før du adder til din memo.
Avatar billede soax Nybegynder
26. januar 2005 - 14:09 #8
ja men hvordan gør jeg det???
Avatar billede delphi Nybegynder
26. januar 2005 - 19:50 #9
Jeg har lige klyttet det her sammen.  Håber at du kan bruge det....

procedure TForm1.Button1Click(Sender: TObject);
begin
  meOutputText.Text := meOutputText.Text + TextToBin(edInputText.Text);
end;

Function TForm1.CharToBin(aChar: Char): String;
Var
  n : Integer;
  tmp : String;
Begin
  tmp := '';
  For n := 0 to 7 Do
    Begin
      If (Byte(aChar) And $01) = $01 Then
        tmp := '1' + tmp
      Else
        tmp := '0' + tmp;
      aChar := Char(Byte(aChar) SHR 1);
    End;
  Result := tmp;
End;

function TForm1.TextToBin(aStr: String): String;
Var
  i : Integer;
begin
  For i := 1 To Length(aStr) Do
    Begin
      ShowMessage(aStr[i] + '=' + CharToBin(aStr[i]) + #13#10 +
                  'ASCII('+IntToStr(Ord(aStr[i]))+')' + #13#10 +
                  'Hex: $' + IntToHex(Ord(aStr[i]), 2));
      Result := Result + CharToBin(aStr[i]);
    End;
end;
Avatar billede delphi Nybegynder
26. januar 2005 - 19:52 #10
Som du sikkert kan gætte, så er der på formen 3 components:
- 1 TButton, der hedder Button1
- 1 TEdit, der hedder edInputText
- 1 TMemo, der hedder meOutputText

NIP
Avatar billede delphi-ksh Nybegynder
03. februar 2005 - 00:32 #11
Hej,

Der er en component, som hedder CPORT260.ZIP. Jeg kan ikke huske fra hvilken adresse på internettet jeg har fået/downloaded den. Men brug en søgemaskine (SOL, YAHOO eller GOOGLE), så finder i den og download den. Den er bare suveræn.

Der er fuld doku, installationsvejledning, og er direkte brugbar derefter.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester