AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Code-Bibliothek Neuen Beitrag zur Code-Library hinzufügen Waagenwerte über com-Schnittstelle einlesen

Waagenwerte über com-Schnittstelle einlesen

Ein Thema von Carsten1812 · begonnen am 20. Okt 2011 · letzter Beitrag vom 27. Okt 2011
Antwort Antwort
Seite 4 von 8   « Erste     234 56     Letzte » 
Carsten1812

Registriert seit: 20. Okt 2011
27 Beiträge
 
Delphi 7 Personal
 
#31

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 11:51
schmeiss' eine TComport Komponente auf Dein Form/Datenmodul, stelle die Parameter ein, führe beim Programmstart BaseSerial1.Connected := true; aus

hänge an OnRxChar einen Code in der Art:
Delphi-Quellcode:
procedure TCPOS.BaseSerial1RxChar(Sender: TObject; Count: Integer);
var
  s: AnsiString;
begin
  BaseSerial1.ReadStr(s, Count);
  FInBuffer := FInBuffer + s;
  InterPretBuffer;
end;
wenn Du etwas schreiben musst :

BaseSerial1.WriteStr(SendString);
also ich hatte das grade mal probiert so einzubauen.
ich bekomme da aber die fehlermeldung [Fehler] Unit1.pas(31): Undefinierter Bezeichner: 'BaseSerial1'
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
656 Beiträge
 
FreePascal / Lazarus
 
#32

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 11:57
An der Stelle ist jetzt aber wirklich erstmal Delphi-Grundwissen gefragt!

Daß sich BaseSerial1 auf den Namen der Komponente bezieht, kann man bereits am Namen des Events erahnen
  Mit Zitat antworten Zitat
Carsten1812

Registriert seit: 20. Okt 2011
27 Beiträge
 
Delphi 7 Personal
 
#33

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 12:10
Habe den 'BaseSerial' aber leider nicht in meiner Library.
kann man die irgendwo runter laden?
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
656 Beiträge
 
FreePascal / Lazarus
 
#34

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 12:16
Nochmal - BaseSerial1 ist ein Name einer Instanz. Die legst Du fest, wenn Du eine Komponente auf eine Form packst. Die sind selbstverständlich in keiner Library schon vordefiniert.

(ja, ich hätte besser "Name der Instanz der Komponente" statt "Name der Komponente" schreiben sollen, aber wie gesagt - das der Instanzname der erste Teil eines automatisch über die IDE erstellten Events ist, ist eigentlich Grundwissen)

In Deinem Beispiel heißt die Instanz ComPort1 statt BaseSerial1. Wenn Du die gleiche Komponente wie Bummi verwendest, verwende doch den. Sonst musst Du halt schauen, welche Komponente er in seinem Kurzbeispiel verwendet, oder die vermutlich nur minimal anderen Property/Methoden-Namen Deiner Komponente anhand von Namensähnlichkeiten erraten.
  Mit Zitat antworten Zitat
Carsten1812

Registriert seit: 20. Okt 2011
27 Beiträge
 
Delphi 7 Personal
 
#35

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 12:27
Danke, das hat mir grade richtig geholfen (sorry das ich mich manchmal noch etwas blöde anstelle, bin noch Anfänger und steige grade in die Materie ein)
jetzt habe ich aber noch zwei ander Fehlermeldungen.
[Fehler] Unit1.pas(84): Undefinierter Bezeichner: 'FInBuffer'
[Fehler] Unit1.pas(85): Undefinierter Bezeichner: 'InterPretBuffer'
wie bekomme ich die weg?
  Mit Zitat antworten Zitat
CCRDude

Registriert seit: 9. Jun 2011
656 Beiträge
 
FreePascal / Lazarus
 
#36

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 12:42
FInBuffer ist wohl ein Puffer der Form. Im private-Teil der Form-Deklaration, also etwa unter der Zeile mit   { Private-Deklarationen } , solltest Du eine Zeile mit FInBuffer: AnsiString; einfügen. Und darunter procedure InterPretBuffer; und dann Strg+Shift+C drücken, das fügt Dir gleich die Implementierung dieser Methode ein.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#37

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 12:52
FInBuffer ist eine AnsiString den Du irgendwo in Deinem Form deklarierst
InterPretInbuffer ist die Prozedur die Dir FInBuffer auswertet und kürzt.

Meine Routinen werden für Dich nicht passen, etwas in der Art könnte Dich gegf. auf den Pfad bringen



Delphi-Quellcode:
TForm1 = class(TTForm)
    private
      FInBuffer: AnsiString;
      procedure InterPretInBuffer;
 ......
implementation






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;
Du könntest im ersten Schritt mal etwas in der Art machen:
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Carsten1812

Registriert seit: 20. Okt 2011
27 Beiträge
 
Delphi 7 Personal
 
#38

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 14:00
Ich habe das jetzt mal auf mich angepasst, jetzt habe ich aber das Problem das mir das Programm beim starten gleich abstürtzt.( bekomme keine Warnung oder Fehlermeldung)muss es dann über 'Start' => 'Programm zurücksetzen' rücksetzten
Delphi-Quellcode:
procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
s: AnsiString;
begin
  ComPort1.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;
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#39

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 14:04
kenn' ich wenn die Baudrate nicht passt ....
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#40

AW: Waagenwerte über com-Schnittstelle einlesen

  Alt 21. Okt 2011, 14:04
Hi,

dann würde ich im FormCreate einen Breakpoint setzen und dann mit Einzelschritt durchgehen, bis du die Stelle findest, wo es knallt.


LG, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 +2. Es ist jetzt 01:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf