Puffer leeren
-
Nur zur info: ich habe die Lösung gefunden!
der Befehl um den Puffer zu leeren lautet:
PurgeComm(hCom, PURGE_RXCLEAR)
Moin!
Gibt es in VC++6 einen Befehl um den buffer(puffer) zu leeren. Mein prog ist zur kommunikation mit dem com-port und ich will eine antwort auswerten. wenn ich sie lesen will werden alle antworten aus dem puffer geholt. Mein ziel ist es nur die anwort auf die letzte frage zu lesen.
Weiß jemand weiter??
DANKE!EINE GENAUE ERKLÄRUNG IST UNTEN.
-
Ist das wirklich nicht möglich??
-
-
http://www.lugbz.org/documents/smart-questions_de.html
Konkret wäre interessant zu wissen, was du mit "Frage" und "Antwort" meinst.
-
Ich stelle dir zwei fragen:
1. Wie geht es dir?
2. Kannst du mir Geld leihen?Die erste Antwort interessiert mich nicht, aber sie ist noch in meinem Kopf drin. Sie muß weg damit ich mich auf die auswertung der zweiten Antwort konzentrieren kann.
danke für den link
-
Bullach schrieb:
Die erste Antwort interessiert mich nicht, aber sie ist noch in meinem Kopf drin. Sie muß weg damit ich mich auf die auswertung der zweiten Antwort konzentrieren kann.
Ist doch ganz einfach: Vergiss die erste Antwort.
Wenn DU diese Lösung aus deinem "Frage/Antwort"-Modell nicht in die Programmierung der seriellen Schnittstelle umsetzen kannst, dann musst DU aus dem Modell raus.
Darum habe ich nachgefragt. Auf meiner seriellen Schnittstelle kommen keine Fragen an und gehen keine Antworten raus, sondern nur Daten in Form von Bits und Bytes. Wenn du diese Daten als Fragen und Antworten interpretieren kannst, dann liegt dem vermutlich irgendein Protokoll zu Grunde, das nur du kennst.
Solange du nicht erklärst, wie du eine "Antwort" definierst, also woran du eine Antwort im Datenstrom erkennst, solange wird dir hier niemand helfen können.
Darum hatte ich den Link gepostet. Entweder hast du ihn nicht gelesen, oder gelesen und nicht verstanden, oder gelesen und verstanden, aber nicht umgesetzt. Das Ergebnis bleibt das gleiche: Niemand versteht, was dein Problem ist.
Also nochmal extra für dich: Beschreibe dein Problem präzise, so dass Andere es nachvollziehen können, und verwende dabei keine Begriffe aus einem Modell, dass niemand außer dir kennt.
-
Ich kommuniziere mit einem chipkartenleser. Ich stelle fragen und der kartenleser antwortet. z.B.
1. Als erstes wähle ich ein feld auf der simkarte aus indem ich einen speziellen befehl sende z.B. "14 A0 A4 00 00 02 7F 20" 7F20 ist der FID(field identifier) für das file GSM. Auf der simkarte ist das GSM-file ein ordner in dem weitere files enthalten sind. Nach dem senden des ersten strings bekomme ich eine antwort darauf die z.B. so aussehen kann
"E7 9F 19" und sie bedeutet, dass das kommando erfolgreich ausgeführt wurde und ,dass 19h bytes zum lesen bereitstehen.
2. Als zweites wähle ich eine datei aus die im GSM-ordner steht. z.B. das LOCI-Feld (location information) "14 A0 A4 00 00 02 6F 7E" daraufhin bekomme ich eine antwort die der ersten ähnlich ist.
3. Dann sende ich einen befehl zum lesen des inhaltes der LOCI-Datei
"13 A0 B0 00 00 0B" die antwort vom Kartenleser folgt sofort.Ich will jetzt die dritte antwort mit dem inhalt der LOCI-Datei lesen, mit ReadFile(...)-->> daraufhin bekomme ich nicht nur die dritte antwort, sonder alle drei antworten, weil sie sich im Speicherpuffer befinden. wie kann ich den puffer vor dem dritten punkt leeren, sodass nach dem dritten punkt nur die antwort, vom kartenleser, auf den dritten punkt gelesen werden kann.
Bisher lese ich alles was im puffer ist und muss dann abzählen welche stelle ich abfragen muß um den inhalt der LOCI-Datei zu bekommen.
-
Verstehe ich das richtig, dass du erst dann die angekommenen Daten liest, wenn du schon drei "Fragen" verschickt hast?
Warum liest du nicht einfach vor dem Versenden der dritten "Frage" alles aus dem Lesepuffer aus und verwirfst es?
-
Hallo,
ich bin schon länger auf der Suche nach einer Möglichkeit, auf einen SmartCard Reader zuzugreifen.
Kann mir vieleicht jemand kurz sagen, wie man das macht?
Über PC/SC?
oder über eine CT-API DLL?
oder ganz anders?Wenn ich z.B. eine Krankenversicherungskarte auslesen will, wie greife ich darauf zu?
mfg
trequ
-
@ trequ
Also ich arbeite mit einem GCR410 von GemPlus. Ich beschreibe und lese damit Nur SIM-Karten und kann dir nur ein paar links schicken, kann dir jedoch nicht sagen wie man eine Krankenkassenkarte liest.
http://www.c-plusplus.net/forum/viewtopic.php?p=600738&highlight=#600738UND wenn du was mit chipkarten machen willst, dann mußt du die BIBEL haben
"Handbuch der Chipkarten" von Rankl & Effing 4.te Auflage (weiß/grün)