Delphi-PRAXiS
Seite 5 von 8   « Erste     345 67     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Neuen Beitrag zur Code-Library hinzufügen (https://www.delphipraxis.net/33-neuen-beitrag-zur-code-library-hinzufuegen/)
-   -   Waagenwerte über com-Schnittstelle einlesen (https://www.delphipraxis.net/163885-waagenwerte-ueber-com-schnittstelle-einlesen.html)

Carsten1812 21. Okt 2011 13:05

AW: Waagenwerte über com-Schnittstelle einlesen
 
Sorry, lag an mir. jetzt stürzt das Programm nicht mehr ab.
Und wo gebe ich jetzt an das die Werte im Com7 abgeholt werden sollen?

fkerber 21. Okt 2011 13:07

AW: Waagenwerte über com-Schnittstelle einlesen
 
Hi,

ich würde schätzen im Objektinspektor, wenn du deine Comport-Komponenten-Instanz auf dem Formular ausgewählt hast.


LG, Frederic

Carsten1812 21. Okt 2011 13:10

AW: Waagenwerte über com-Schnittstelle einlesen
 
da ist auch bei 'Port:com7' eingestellt.
sollte er denn jetzt schon Waagenwerte in den Memofeldern anzeigen?

fkerber 21. Okt 2011 13:12

AW: Waagenwerte über com-Schnittstelle einlesen
 
Hi,

hast du denn das RxChar-Event mit deiner Methode verknüpft?
Dann sollte er was anzeigen, wenn die Waage was sendet.


LG, Frederic

Bummi 21. Okt 2011 13:15

AW: Waagenwerte über com-Schnittstelle einlesen
 
Du kannst auch mal einen Brechpunkt da reinhängen, gegf. kommen da #0 Zeichen am Anfang, dann siehst Du nichts.
Es kann auch sein dass Du erst einen sinnvollen "String" schicken musst um eine Antwort zu bekommen ....

Carsten1812 21. Okt 2011 13:17

AW: Waagenwerte über com-Schnittstelle einlesen
 
was meinst du denn mit 'Methode'?

fkerber 21. Okt 2011 13:20

AW: Waagenwerte über com-Schnittstelle einlesen
 
Hi,

irgendwo in deinem Code steht doch

Delphi-Quellcode:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
s: AnsiString;
begin
  ComPort1.ReadStr(s, Count);
  FInBuffer := FInBuffer + s;
  InterPretInbuffer;
end;

Das ist eine Methode. Die wird aber nicht durch göttliche Eingebung aufgerufen, sondern dafür muss sie passend mit der Komponente verknüpft sein.
Auf der zweiten Registerkarte im Objektinspektor bei ausgewählter Comport-Instanz sollte in der Zeile OnRxChar rechts daneben was stehen - wenn da nur ein leeres weißes Feld ist, dann da mal nen Doppelklick reinmachen (wobei ich grad nicht weiß, ob er es hinbekommt, wenn es eine Methode des Names dann schon gibt).


LG, Frederic

Carsten1812 21. Okt 2011 13:25

AW: Waagenwerte über com-Schnittstelle einlesen
 
Also dann müsste die Methode aufgerufen werden, denn dass hatte ich vorhin schon gemacht.
Momentan sieht mein ganzer Quelltext grade so aus.
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, CPort;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    ComPort7: TComPort;
    Edit1: TEdit;
    Memo1: TMemo;
    Memo2: TMemo;
    procedure FormActivate(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure ComPort7RxChar(Sender: TObject; Count: Integer);
  private
  FInBuffer: AnsiString;
      procedure InterPretInBuffer;
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
  hcomm         : THandle;
  COM_enum      : integer;

implementation

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);
begin
 ComPort7.Connected := true
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  close;
end;

procedure TForm1.ComPort7RxChar(Sender: TObject; Count: Integer);
var
s: AnsiString;
begin
  ComPort7.ReadStr(s, Count);
  FInBuffer := FInBuffer + s;
  InterPretInbuffer;
end;

procedure TForm1 .InterpretInbuffer;
var
     i:Integer;
     part:AnsiString;
begin
     i := Pos(#10,FInBuffer);
     Memo1.Lines.Add(FInBuffer);
     while i>0 do
        begin
           Part := Copy(FInBuffer,1,i-1);
           FInBuffer := Copy(FInBuffer,i+1,Length(FInBuffer));
           Memo2.Lines.Add(Part);
           i := Pos(#10,FInBuffer);
        end;
end;
end.

fkerber 21. Okt 2011 13:27

AW: Waagenwerte über com-Schnittstelle einlesen
 
Hi,

dann solltest du Thomas' Ansatz mit dem Breakpoint weiterverfolgen.


LG, Frederic

Carsten1812 21. Okt 2011 13:54

AW: Waagenwerte über com-Schnittstelle einlesen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mit den Breakpoints komme ich nich weiter, habe mehrere gesetzt, aber ich bekomme keine Werte von der Waage zu sahen.
Was kann man denn eigentlich anhand dieser Tabelle erkennen?Anhang 35412 Seite 147 Tabelle 11-7
Muss ich anhand dessen auch noch etwas einstellen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:03 Uhr.
Seite 5 von 8   « Erste     345 67     Letzte »    

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