AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Seriellen Anschluss auslesen (RFID)

Ein Thema von UtopianBuddy · begonnen am 6. Jun 2006 · letzter Beitrag vom 28. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
UtopianBuddy

Registriert seit: 14. Jun 2005
4 Beiträge
 
#1

Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 12:06
Moin,

Ich weiß das die meißte wenn sie meinen Titel gelesen haben denken werden "schau doch mal in die Suche". Mein Problem ist das ich dort meißtens nur Threads fand wo auch stand, schau doch mal in die Suche oder die Threads mir einfach nicht geholfen haben.

Mein Problem stellt sich eigentlich recht einfach dar, nur bin ich jetzt seit 2h am suchen gewesen und komme einfach nicht weiter.

Zum einen habe ich async pro glaube ich nicht richtig installiert gekriegt, das sollte aber das kleinere Problem darstellen, beim "richtigen" geht es um folgendes:

Ich habe mir einen RFID leser zugelegt der über einen com anschluss mit dem PC verbunden wird.
Sobald ein RFID Tag in Reichweite kommt werden Daten an mich übermittelt. Eigentlich würde mir schon reichen wenn ich ein Programm hätte das einfach alle Daten die über den rs232 Port reinkommen in einen string speichern würde, ich möchte gar nichts senden, einfach nur "zuhören".

Alle Lösungen die ich bis jetzt irgendwo gesehen habe funktionieren einfach nicht und ich hoffe das sich jemand erbarmt und mir genaueres beschreibt. Verwendet wird Delphi 7.

MfG
UtopianBuddy
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#2

Re: Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 12:19
Wie das mit demAsync Pro geht kann ich dir leider nicht sagen - dazu musst du wir was suchen *lol* (soll keine Ironie, sondern wirklich ein Tipp sein)

Ansonsten kannst es ja auch mal so probieren - schau dir den Link hier mal an und dann lese die Daten mit dem folgenden Code aus (hab ich im forum gefunden)

Delphi-Quellcode:
Function RecieveByte(COMHandle: THandle): Byte;
Var
  tmp: cardinal;
  ByteToRead: Byte;
Begin
  ReadFile(COMHandle, BytetoRead, 2, tmp, Nil);
  Result := ByteToRead;
End;


// Beispiel-Verwendung...
Procedure TForm1.Timer1Timer(Sender: TObject);
Var tmp: integer;
Begin
  tmp := RecieveByte(com);
  If tmp <> 217 and 0 Then // Nur um den "Müll" zu ignorieren...
    memo1.lines.add(inttostr(tmp));
End;
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von robinWie
robinWie

Registriert seit: 26. Okt 2005
Ort: Lippcity
404 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 12:24
Hallo,
ich hatte auch mal ein Problem mit ein Programm für eine Serielle Schnittstelle. Da habe ich diese Unit bekommen. Vielleicht hilft sie dir.

Nach "TRS232.Create" musst du "TRS232.InitCom()" aufrufen. Das geht so
TRS232.InitCom('COM1', CBR_9600, 8, NOPARITY, ONESTOPBIT)
Angehängte Dateien
Dateityp: pas rs232_199.pas (9,9 KB, 66x aufgerufen)
Robin W.
Ein Computer kann (fast) alles.... Man muss es ihm nur beibringen
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 12:25
Und wenn du ganz schnell ohne viel Aufwand (aka klickibunt) was sehen willst, dann kannst du mal bei Torry suchen . Da gibts ein Set von Komponenten namens TComPort. Mit ihnen kann man sehr schnell etwas optisches zusammenklicken.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
UtopianBuddy

Registriert seit: 14. Jun 2005
4 Beiträge
 
#5

Re: Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 12:40
danke erstmal allen für die flotten und guten antworten, ich werd mich gleich ransetzen und schauen wie was geht.
Die ComPort Library wollte ich auch mal versuchen, aber ich hab die nicht installiert gekriegt und die readme checkt ja auch kein mensch...

mmh naja mal schaun
  Mit Zitat antworten Zitat
UtopianBuddy

Registriert seit: 14. Jun 2005
4 Beiträge
 
#6

Re: Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 13:23
Zitat von robinWie:
Nach "TRS232.Create" musst du "TRS232.InitCom()" aufrufen. Das geht so
TRS232.InitCom('COM1', CBR_9600, 8, NOPARITY, ONESTOPBIT)
danke, aber beim aufruf von der InitCom kommt eine Access violation obwohl ich wirklich nur diesen code aufrufe

Delphi-Quellcode:
rs232.Create;
rs232.InitCom('COM1', CBR_9600, 8, NOPARITY, ONESTOPBIT);
vorher wurde rs232 als globale variable von Trs232 festgelegt...



edit: leider funktioniert die Möglichkeit von S.H.A.R.k. auch nicht weil variablen fehler bzw vorher nicht deklariert worden sind und ich ja nicht erahnen kann um welchen typus es sich handelt...
  Mit Zitat antworten Zitat
Benutzerbild von chaosben
chaosben

Registriert seit: 27. Apr 2005
Ort: Görlitz
1.358 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 13:39
Zitat von UtopianBuddy:
Die ComPort Library wollte ich auch mal versuchen, aber ich hab die nicht installiert gekriegt und die readme checkt ja auch kein mensch
Wo ist denn das Problem? (Stichwort: Fehlermeldung) Vielleicht kann man helfen.
Benjamin Schwarze
If I have seen further it is by standing on the shoulders of Giants. (Isaac Newton)
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#8

Re: Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 13:45
Hi,
also die TComPort (ist glaube ich bei SF gehostet) ist echt super, hab schon mehrere Projekte problemfrei mit der gearbeitet (was nicht heißt, dass andere Komponenten schlechter sind).
Jedenfalls hättest du dort recht einfach alles was du brauchst, einfach einen TComport auf dein Formular ziehen, die Einstellungen des Port vornehmen (wie man alle verfügbaren Comports auflistet lasse ich hier einfach mal weg), Connected auf True setzen und benutzen. Das OnReceiveChar-Event benachrichtigt dich dann immer, wenn etwas im Puffer landet.


Zitat von UtopianBuddy:
Delphi-Quellcode:
rs232.Create;
rs232.InitCom('COM1', CBR_9600, 8, NOPARITY, ONESTOPBIT);
Äh, muss wohl eher
rs232 := TRs232.Create; heißen
  Mit Zitat antworten Zitat
UtopianBuddy

Registriert seit: 14. Jun 2005
4 Beiträge
 
#9

Re: Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 13:55
ähm shit, nee ist recht ist klar, aber geht trotzdem nicht.
die TComPort ist mir wirklich schon von vielen ans Herz gelegt worden die ich gefragt habe, aber ich check folgendes nicht:
als erstes muss über |Tools-Environment Options-Library-Library Path| der Ordner eingebunden werden, soweit kein Problem, dann aber folgendes:

Zitat:
Use "File/Open" menu item in Delphi/C++ Builder IDE to open
ComPort run-time package source file (see above). Click "Compile"
button in Package window to compile the library. Now move run-time
package library file or files (see above) from ComPort folder to a
folder that is accessible through the search PATH (e.g. WinNT\System32).
Welches soll denn die ComPort run-time package source file sein?

alles blödsinn
  Mit Zitat antworten Zitat
D11
(Gast)

n/a Beiträge
 
#10

Re: Seriellen Anschluss auslesen (RFID)

  Alt 6. Jun 2006, 14:29
CPORTLIB.dpk = run-time package = only "Compile"
DsgnCPort.dpk = "INSTALL"

Ps. Auf meiner Homepage liegt eine DEUTSCHE VERSION incl. Hilfedatei zum Download.
Comport VCL
die ist zwar für jede Modellbahn (via Comport)
geht aber auch für alles andere am Comport.
(Vorteil alles in Deutsch & English) ect.
Beschreibung
Benutzen Sie die Komponente TComPort, um auf einfache Art mit externen Geräten, wie z.B. Modems, Barcode-Lesegeräte, PBX u.s.w., über eine RS232-Verbindung zu kommunizieren. TComPort bietet verschiedene Properties zur detaillierte Konfiguration der seriellen Schnittstelle, zahlreiche Methoden zum Lesen und Schreiben auf die Schnittstelle und Ereignisse, um die Schnittstelle zu überwachen. Lese- und Schreiboperationen können synchron und asynchron ausgeführt werden.

Am besten immer "asynchron" unter WinXP durchführen.
Guter Beispielcode für Delphi im Open-Source des Hauptprogramm...
Digitales am Comport (RS232)
Direktlink zur VCL... (D5 bis D2006) auch PERSONAL
Comport VCL als gepackte (Winrar.exe)



Kleiner Tip zum auslesen:
Liest Daten vom Eingangspuffer in eine Stringvariable im asynchronen Modus ein.
function ReadStrAsync(var Str: String; Count: LongWord; var AsyncPtr: PAsync): LongWord;
Beschreibung
Rufen Sie die Methode ReadStrAsync auf, um Count Bytes in die Variable Str einzulesen. Die Methode wird sofort beendet und wartet nicht, bis die Operation beendet ist. Rufen Sie WaitForAsync auf, um sicherzustellen, daß die Operation beendet ist. Der Parameter AsyncPtr ist ein PAsync-Record, der von der Methode InitAsync initialisiert wurde. Die Anwendung ist dafür verantwortlich, AsyncPtr-Pointer mit Hilfe von DoneAsync freizugeben, nachdem die Operation beendet ist.
Der Rückgabewert entspricht der Anzahl an Bytes, die tatsächlich gelesen wurden.
Hinweis
Falls das Ergebnis von WaitForAsync verschieden vom Count-Parameter ist, muß die Anwendung die Länge des Str-Parameters mit Hilfe von SetLength manuell anpassen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 +1. Es ist jetzt 14:47 Uhr.
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