AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CPort: Comport auslesen DOS-> Delphi

Ein Thema von Freiwilderer · begonnen am 6. Mär 2012 · letzter Beitrag vom 13. Mär 2012
Antwort Antwort
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#1

AW: CPort: Comport auslesen DOS-> Delphi

  Alt 6. Mär 2012, 09:12
Naja, gedacht hatte ich mir das auch schon... Allerdings gibt es bei CPort scheinbar keine Möglichkeit diese Werte zu verändern. Weswegen ich mir über deren Bedeutung nicht sicher bin.
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

AW: CPort: Comport auslesen DOS-> Delphi

  Alt 6. Mär 2012, 09:22
Naja, gedacht hatte ich mir das auch schon... Allerdings gibt es bei CPort scheinbar keine Möglichkeit diese Werte zu verändern. Weswegen ich mir über deren Bedeutung nicht sicher bin.
Also zumindest in meiner Uraltversion 2.01 kann man das im Objektinspektor/Flowcontrol sehr schön ein- und ausschalten; und mit der mitgelieferten Form sogar zur Laufzeit via Dialog. Was bei den neuen Schnickschnack-Versionen nicht mehr möglich ist kann ich nicht sagen.
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#3

AW: CPort: Comport auslesen DOS-> Delphi

  Alt 6. Mär 2012, 09:31
Ich glaub auch gar nicht mal unbedingt, dass es daran liegt, sondern vielleicht eher an der Art des auslesens ... Wie gesagt, die Waage, die ich hier stehen hab, kann ich ansprechen. (Auch ohne CS und DS vorher einzustellen.)
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.779 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: CPort: Comport auslesen DOS-> Delphi

  Alt 6. Mär 2012, 09:36
CTS, DSR auch, wenn ich mich nicht täusche, unter HardwareHandshake bekannt.
Wenn der das Windows CE Gerät so eingestellt ist, dass HardwareHandshake verlangt wird sollte Dein Programm das auch unterstützen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#5

AW: CPort: Comport auslesen DOS-> Delphi

  Alt 6. Mär 2012, 10:28
Versuch mal ein crlf mitzusenden.
ComPort.WriteStr(#6#13#13#10);
Ok, durch das ; wird #13 beim Print-Befehl unterdrückt, crlf wird auch nicht funzen.

Da würde ich es mal so versuchen:

Delphi-Quellcode:
var
  Buffer: PACKED ARRAY[0..1] OF Byte;

  Buffer[0]:= $06;
  Buffer[1]:= $13;
  ComPort.Write(Buffer, SizeOf(Buffer));
Gruß Wal

Es gibt viel zu tun, sitzen wir's aus ! 0(°~°)0

Geändert von Wal ( 6. Mär 2012 um 10:55 Uhr)
  Mit Zitat antworten Zitat
Wal

Registriert seit: 22. Sep 2006
57 Beiträge
 
#6

AW: CPort: Comport auslesen DOS-> Delphi

  Alt 6. Mär 2012, 11:19
Hab' ich mal schnell zusammen gestellt :

Delphi-Quellcode:
unit uMain;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, CPort, Vcl.StdCtrls;

type
  TfrmMain = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
    ComPort: TComPort;
    procedure ComPortRxChar(Sender: TObject; Count: Integer);
  end;

var
  frmMain: TfrmMain;
  Buffer: PACKED ARRAY[0..1] OF Byte;

implementation

{$R *.dfm}

procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  ComPort.Close;
  ComPort.Free;
end;

procedure TfrmMain.FormCreate(Sender: TObject);
begin
  ComPort := TComPort.Create(Nil);
  ComPort.OnRxChar := ComPortRxChar;
  ComPort.Port := 'COM1';
  ComPort.BaudRate := br9600;
  ComPort.Parity.Bits := prNone;
  ComPort.DataBits := dbEight;
  ComPort.StopBits := sbOneStopBit;
  ComPort.Open;
end;

procedure TfrmMain.Button1Click(Sender: TObject);
begin
  Buffer[0]:= $06;
  Buffer[1]:= $13;
  ComPort.Write(Buffer, SizeOf(Buffer));
end;

procedure TfrmMain.ComPortRxChar(Sender: TObject; Count: Integer);
var
  A: String;
begin
  ComPort.ReadStr(A, Count);
  memo1.Text := memo1.Text + 'Daten: ' + A + #13#10;
end;

end.
Gruß Wal

Es gibt viel zu tun, sitzen wir's aus ! 0(°~°)0
  Mit Zitat antworten Zitat
Freiwilderer

Registriert seit: 26. Mai 2009
163 Beiträge
 
Delphi 7 Enterprise
 
#7

AW: CPort: Comport auslesen DOS-> Delphi

  Alt 6. Mär 2012, 12:36
hi,
danke für die Ausführliche Antwort.

Also die Verbindung zu Windows CE und dem darauf laufenden Programm scheint zu funktionieren. Das Gerät zeigt jetzt nämlich immerhin an, dass es Daten sendet.
(Mit dem Buffer gings nicht. Mit WriteStr(CHR(6),CHR(13)) aber.)

Leider geht er nie in den ComPortRxChar Abschnitt rein.
  Mit Zitat antworten Zitat
Antwort Antwort


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 05:47 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-2025 by Thomas Breitkreuz