Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   serielle schnittstelle Ich versteh nur bahnhof (https://www.delphipraxis.net/98112-serielle-schnittstelle-ich-versteh-nur-bahnhof.html)

snow 21. Aug 2007 16:23


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?

oki 21. Aug 2007 16:40

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

snow 21. Aug 2007 17:04

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

dominikkv 21. Aug 2007 17:54

Re: serielle schnittstelle Ich versteh nur bahnhof
 
Schau dir mal CPort an
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;

snow 21. Aug 2007 18:12

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:

Die alte ressourcendatei konnte nicht geladen werden.
Die ressourcendatei ist die erste include-datei im initialisierungsabschnitt.

z.B Unit1.lrs
wenn ich dan auf datei überspringen klicke dann kommt

Zitat:

---------------------------------------------
unit1.pas(22,11) Error: : erwartet aber := gefunden
Unit1.pas(1,1) Fatal: Can't find unit CPort
wo liegt mein fehler?

MfG snow

oki 21. Aug 2007 18:17

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 Lazarus_Documentation

Tut mir leid, dass ich doch nicht viel helfen konnte,

Gruß oki

Reinhard Kern 21. Aug 2007 18:31

Re: serielle schnittstelle Ich versteh nur bahnhof
 
Zitat:

Zitat von oki
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).
...
Gruß oki

Hallo oki,

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

snow 21. Aug 2007 18:46

Re: serielle schnittstelle Ich versteh nur bahnhof
 
Zitat:

Hallo oki,

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.
ja und wie geht das??

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

oki 21. Aug 2007 19:13

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:
Hardware Access
und dort auf entsprechende Tutoriels:
Zitat:

Serielle Kommunikation

Der Externe Links Abschnitt enthält UNIX und Windows Tutorials über den seriellen Anschluß.
Dort müsstest du eigentlich mit deinem Problem weiter kommen.

Also bitte mal lesen.

Gruß oki

EDatabaseError 21. Aug 2007 19:17

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 04:06 Uhr.
Seite 1 von 3  1 23      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz