![]() |
Hallo Hansa,
HandShake ist zwar schön und gut, aber nicht jedes Gerät arbeitet damit. Egal ob Soft- oder Hardware Handshake. Deswegen würde es mich nicht wundern das es schon geht, bzw. ohne Handshake. Grüsse, DAniel :hi: |
Hi,
ja ausgeschlossen ist das nicht, aber die serielle Schnittstelle hat zwei Seiten, die beide dieselbe "Sprache" sprechen müssen, damit es funktioniert, also HW oder SW - Handshake. Die Baudrate muß natürlich auch stimmen und und und. :mrgreen: War schon mal fast soweit, daß ich das serielle Kabel zweckentfremden wollte. Dann hätte ich das hier aber nicht mehr schreiben können. :angle: Verfolge mal das Thema mit. Gruß Hansa |
Hallo Hansa,
was genau meinst Du damit, das da immer was reinkommt? Ich hab hier Geräte die ich über die Serielle anspreche. Die einen brauchen HW-Hanshake, ein anderes darf gar keins haben, manche wieder SW-Handshake. Was in erster Linie zählt ist BAud, Stopbits, Datenbits und Paritätsbits. Ich mach mir ums HS keine so grossen Gedanken. Aber beschreib doch etwas näher was Du mit reinspucken meinst. Grüsse, Daniel :hi: //der jetzt ganz schnell seine Steuererkläreungen für 2000 und 2001 schreiben muss. :kotz: :freak: |
WOW! Vielen Dank!!
Hi!!
Erst mal ein grosses LOB! :D Da "stolpert" man hier grad mal rein, und es wird einem hier ohne Ende geholfen!! Echt klasse!! Dank Eurer Tips hab ich jetzt erstmal viel zu tun und zu tüfteln. @Daniel: Danke! Die Deutsche Help hab ich auch! @Hansa: Ich glaub ich brauch mich nicht um HS scheren, weil das so ganz gut funzt!! Aber danke für den Hinweis!!! Nicht schlecht, wie schnell man hier geholfen wird!!! MAcht alle weiter so!!! :coder: MfG Andi :wink: |
hat fast geklappt!!
Hi!
Da bin ich schon wieder! Ich habs mal ausprobiert. Ich habe eine Form1 erstellt.dann n Button1, wenn man daraufclickt,soll ausgelesen werden und der Label1.Caption mit dem Gewichtswert beschrieben werden! Klappt nur halb,denn der Gewichtswert wird nicht aktualisiert( die Waage sendet ja permanent Daten),erst wenn ich nochmal auf den Button clicke kommt was neues,allerdings schiebt sich der String(gewichtswert) von links nach rechts ins label,aber immer nur um ein Zeichen pro klick! Wenn ich also andauernd clicke,dann schiebt sich der wert immer wieder rein! Er soll sich aber komplett überschreiben. Hier mal mein Code: procedure TForm1.Button1Click(Sender: TObject); var str:string; begin comport1.readstr(str,18); //weil insgesamt 18 bytes ,siehe DAten der Waage // edit1.Text:=(str); end; procedure TForm1.Button2Click(Sender: TObject); begin comport1.showsetupdialog; end; procedure TForm1.Button3Click(Sender: TObject); begin close; end; end. so,und das hier habe ich in der Betriebsanweisung der Waage gefunden: Baudrate:2400 dataBits 8 StopBits 1 CODE:ASCI HEAD 1 (2bytes) : OL Überlast ST Anzeige stabil(gewichtswert) US Anzeige instabil Head 2 (2 Bytes): NT Netto Modus Daten(8bytes): 2D HEX : "-" minus 20 Hex : " " Leerzeichen 2E Hex : "." Dezimalpunkt Gewichtseinheit (4bytes) g: 20-20-6B-67 HEX lb: 20.20-6C-62 HEX tl.T 74-6C-2E-54 Hex die beiden lb und tl.T werden aber nicht verwendet,da nur in gramm gewogen wird! CR (2bytes) das soll wohl carriage-return bedeuten !? Vielleicht hängt es ja damit irgendwie zusammen, daß es nicht so klappt,wie ich möchte?!? Du hast ja gesagt, daß ich keinen Button brauche, habe es aber nur mit Button geschafft.Ich frage mich , welchen Fehler ich gemacht habe. :oops: Ich hoffe, Ihr könnt mir noch mal helfen! :oops: Danke schon mal!! :spin: MfG Andi |
Hallo Andi,
1. Im OnShow des Form1 schreibst Du ComPort1.Open; {da sich bei Dir die Einstellungen der Seriellen nciht ständig ändern, stellst Du die richtigen sachen wie Port, Baud usw. im Object Inspector ein. Somit kannst Du Dir die Button2 Prozedur sparen.} Baudrate:2400 dataBits 8 StopBits 1 Fest im OI einstellen. Spielen mit dem Dialog kann man auch noch wenn es so geht wie Du es möchtest. 2. Natürlich ändert sich der Wert im Label nur auf Button klick, denn nur dann liest Du was von der Schnittstelle. Daher mein erster hinweis mit dem OnRxChar. Sobald ein neuer Wert ankommt wird er gleich im Label angezeigt. 3. Um auf ganz sicher zu gehen, da wo die Caption festgelegt wird, schreibst Du davor noch Label.Caption := ''; //Damit wird sie auf jedenfall geleert und es steht nur noch der neue Wert drin. 4. In der Button3 Prozedur, mit dem Close, nicht vergessen auch den Port wieder zu schliessen. Comport.Close; //Ganz wichtig 5. Zitat:
CR ist Carriage Return. LF ist Line Feed. HTH Grüsse, Daniel :hi: |
Hi,
Zitat:
Gruß Hansa |
Hi!!
Und nochmal herzlichen Dank an Euch!!! Ich werde mir wohl mal viel Zeit nehmen und dann alles autesten. @daniel : Was genau ist mit ONSHOW gemeint? Habe dieses nicht in meinem Code gefunden. Oder ist es was ganz banales? :bounce2: mir auf die Sprünge helf? :bounce2: Jetzt werd ich erst mal alles testen!! Besten Dank nochmal!!! MfG Andi :coder: |
Hallo Andi,
es ist banal. :wink: Klicke das Form1 an, keine Kompo, sondern das Form selbst. Nun klicke im Object Inspector auf Eigenschaften, da sind ja die ganzen Prozeduren aufgelistet, die Form1 bietet. Unter anderem auch OnShow und OnClose. Die OnShow-Prozedur tritt ein sobald das Formular angezeigt wird. //Zur Laufzeit. Vorher kommt noch Create usw. Soll dich jetzt aber nciht stören. OnClose tritt ein sobald Du das fenster schliesst, bzw. die Anwendung Terminierst/Closed. Mach im Object Inspector einen Doppelklick auf die jeweiligen Namen der Prozeduren. Dann werde sie automatisch im Source angelegt/angezeigt. Da schreibst Du den Code rein den ich Dir beschrieben habe. HTH. Grüsse, Daniel :hi: |
Moin Daniel B,
um's etwas zu präzisieren: OnShow wird aufgerufen unmittelbar bevor das Formular angezeigt wird. Es ist zu diesem Zeitpunkt noch nicht zu sehen. OnClose wird (ebenso wie OnCloseQuery) nicht aufgerufen, wenn man die Anwendung mit Application.Terminate beendet. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:33 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