Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

[Delphi]ComPort - wysyłanie bajtowe, a nie string?

05 Kwi 2010 19:11 3058 8
  • #1 05 Kwi 2010 19:11
    Anonymous
    Użytkownik usunął konto  
  • #2 06 Kwi 2010 10:37
    arnoldziq
    Moderator Programowanie

    W ComPort ver. 3.xx

    Code:
    function Write(const Buffer; Count: Integer): Integer;

    W ComPort 4.xx
    Code:
    [...]TCPortBytes = PAnsiChar;[...]
    
    procedure Write(const Buffer:TCPortBytes; Size: Integer);

    0
  • #3 06 Kwi 2010 18:40
    Anonymous
    Użytkownik usunął konto  
  • #4 06 Kwi 2010 19:11
    arnoldziq
    Moderator Programowanie

    Cytat:
    Wpisuję:
    Code:

    Int := 1 + #13#10;
    ComPort1.Write(Int);

    Wpisz :
    Code:
    var
    
     int : array[0..2] of byte;
    begin
     int[0]:=1;
     int[1]:=13;
     int[2]:=10;
     ComPort1.write(int,3);
    end;

    1
  • #5 06 Kwi 2010 19:29
    Anonymous
    Użytkownik usunął konto  
  • #6 06 Kwi 2010 19:43
    arnoldziq
    Moderator Programowanie

    Dawno się BASCOM-em nie bawiłem , ale jedno mnie ciekawi...

    Code:
    Sprawd = Ischarwaiting() 

    Czy ta funkcja nie zwraca przypadkiem informacji, że coś jest w buforze UART ?
    Jeżeli mam rację to raczej zrobiłbym coś takiego:
    Code:
     Dim Nrled as Byte 
    
     Nrled = Ischarwaiting()
     If Nrled = 1 Then
        Nrled  = Inkey()
        If Nrled <> 255 And Nrled <> 0 Then
        [...]
        End If
     End If

    A w Delphi :
    Code:
    procedure TForm1.Button1Click(Sender: TObject);
    
    var
     int : byte;
    begin
     int:=0;
     ComPort1.write(int,1);
     int:=0;
     ComPort1.write(int,1);
     int:=1;
     ComPort1.write(int,1);
     int:=255;
     ComPort1.write(int,1);
     int:=0;
     ComPort1.write(int,1);
     int:=0;
     ComPort1.write(int,1);
    end;

    Musisz się zdecydować, albo wysyłasz znaki albo pojedyncze bajty. Jak bajty to wysyłanie kodu Enter i NL chyba nie ma sensu.

    0
  • #7 06 Kwi 2010 20:21
    Anonymous
    Użytkownik usunął konto  
  • #8 07 Kwi 2010 10:07
    arnoldziq
    Moderator Programowanie

    To nie wysyłaj ENTER, tylko poszczególne bajty i czytaj je w BASCOM-ie tak :

    Code:
    Dim b1 As Byte , b2 As Byte , b3 As Byte
    
    Inputbin b1 , b2 , b3

    0
  • #9 07 Kwi 2010 19:09
    Anonymous
    Użytkownik usunął konto