![]() |
serielle schnittstelle Ich versteh nur bahnhof
Hallo
ich würde gerne die serielle schnittstelle ansteuern. (2400bit ,2Stopbits,8datenbits, keine parität,) dabei möchte ich blos ein byte senden. es handelt sich um COM1 ich habe übrigens die suche benutz aber ich versteh nur bahnhof. Unter delphi muss man irgend was installieren???? aber manches kostet geld manches nicht???? Es kann doch nicht so schwer sein die schnittstelle anzusprechen , schließlich schafft BASIC das mit 3 zeilen quelltext. kann mir jemand mal erklären wie ich blos ein byte versenden kann??? MfG snow Ach ja ich nutze lazarus macht das probleme? |
Re: serielle schnittstelle Ich versteh nur bahnhof
Hallo,
such mal hier im Forum nach Comport oder Com und Komponente. Für das Ansprechen der Com-Schnittstelle gibt es einige freie Komponenten im Netz. Damit müßtest du dann weiter kommen. Gruß oki |
Re: serielle schnittstelle Ich versteh nur bahnhof
naja wirklich helfen tut das nicht. ich hab mir synapse geladen aber 1. wie soll man diese komponente installieren??(lazarus)
2. das sind ganz schön viele units nur um was zu senden. wiso brauch ich das so viele. ich check einfach nicht wie die pakete installieren soll und wie ich dann so was wie baudrate einstellen kann und wie ich dann etwas senden kann. gibt es nicht auch eine lösung einfach nur ein qbasic program versteckt aufrufen zu lassen und dem dann befehler auf irgendeinem port zuzustecken??? mfG snow |
Re: serielle schnittstelle Ich versteh nur bahnhof
Schau dir mal
![]()
Delphi-Quellcode:
uses CPort, CPortCtl
// ... var ComPort: TComPort; // ... ComPort := TComPort.Create(self); ComPort.OnRxChar := ComPortRxChar; // Ereignis wenn Bytes empfangen werden ComPort.ShowSetupDialog; ComPort.Open; ComPort.WriteStr('A'); // 'A' Senden if ComPort.Connected then ComPort.Close // ... procedure TForm1.ComPortRxChar(Sender: TObject; Count: Integer); var S: String; begin ComPort.ReadStr(S, Count); showmessage('Das hier hab ich empfangen: ' + S); end; |
Re: serielle schnittstelle Ich versteh nur bahnhof
Hallo ich habs mal runtergeladen un entpakt.
so dann hab ich eine neue unit gebastelt und die beiden teile von dir im uses teil dazugepakt. dann noch deinen quelltext dazu und mal F9 gedrükt. jetzt bekomm ich einen ressourcen-ladefehler Zitat:
Zitat:
MfG snow |
Re: serielle schnittstelle Ich versteh nur bahnhof
Hi Snow,
Sorry, hab das mit lazarus glatt übersehen. Das Problem ist, dass du an die COM-Schnittstelle nicht so einfach wie früher rankommst (Interrupt, Register). Basic stellt dir da auch nur eine Klasse zur Verfügung. Ist halt nur dabei (glaub ich). Bei Delphi (ich denke auch bei Lazarus) ist eine Klasse (oder Komponente) für den Zugriff auf die serielle Schnittstelle leider nicht von Hause aus enthalten. Aus diesem Grund mußt du eine entsprechende Klasse (Komponente) zusätzlich installieren. Zum Glück gibt es da ne Menge gute freie Sachen (ohne Geld). Wie so eine Installation unter Lazarus abläuft, weiß ich leider nicht. :( Wenn du hier im Forum nichts dazu findest, schau mal im Forum für Lazarus nach. Ist bei deinem Download kein readme dabei? Der Link von dominikkv ist zwar gut, aber so wie es aussieht nur für Delphi und nicht für Lazarus. Ob unter Lazarus auch funzt kann ich nicht sagen. Glaub aber nicht. Schau mal, ob dir dieser Link für das Installationsproblem oder das Finden geeigneter Kompos weiterhilft ![]() Tut mir leid, dass ich doch nicht viel helfen konnte, Gruß oki |
Re: serielle schnittstelle Ich versteh nur bahnhof
Zitat:
das ist überhaupt nicht der Punkt - es wäre ja hirnrissig, die serielle Schnittstelle als Hardware anzusprechen, und natürlich geht das unter keinem modernen Betriebssystem, darf auch nicht. Ebenso selbstverständlich kann man ein COM-Port unter Windows ansprechen, und zwar als Datei mit CreateFile, WriteFile und CloseHandle wie bei einer anderen Datei auch. Wie gesagt - mit Hardwarezugriffen und Protected Mode hat das nicht das geringste zu tun. Gruss Reinhard |
Re: serielle schnittstelle Ich versteh nur bahnhof
Zitat:
mir ist es eigendlich egal wie die bytes gesendet werden ob direkt oder durch das betriebssytem. das einzige was später machbar sein muss ist das ich die CTS leitung abfragen kann. du schreibst das hier so locker hin aber ich hab KEINE ahnung. wi heist den der Dateiname und wiso create? ich kann die doch nicht herstellen sondern nur öffnen. könntest du mir ein paar code-schnipsel reinposten?? nur wie ich senden kann. MfG snow |
Re: serielle schnittstelle Ich versteh nur bahnhof
Mist, hab mir grad meinen Beitrag zerschossen.
Halt noch mal von vorn. @Reinhardt: Da hab ich mich wohl sehr missverständlich ausgedrückt. Ich wollte vermeiden, dass snow bei seiner Suche auf ältere Codeschnipsel mit Registern und Interrupts stösst. Eine Analogie zu VB oder ähnlichem solle das nicht sein. Imho glaube ich nicht, dass snow mit CreateFile klar kommt (kann mich auch irren). @snow: Schau dir doch mal den Link zur Lazarus-Dokumentation an. Dort gibt es weitere Links zu: ![]() und dort auf entsprechende Tutoriels: Zitat:
Also bitte mal lesen. Gruß oki |
Re: serielle schnittstelle Ich versteh nur bahnhof
Ich schätze das du die CTS Leitung nur abfragen willst/musst um zu wissen wann du wieder was senden darfst. Clear to send imho.
Wenns das ist mach dir da keine Sorgen das macht Windows/Linux theoretisch schon allein. :| ADD: schau mal bei den schweizern swissdelphicenter.ch da gibts genau die Codeschnippsel die du brauchst |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:09 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