Hallo Elektronikfreunde,
ich habe folgendes Problem:
Ich schicke daten in eine serielle Schnittstelle und drucke die mit
einem Bondrucker.
Das Problem ist es im Falle eines Stromausfalls während gedruck wird
gehen die Daten verloren.
Hat jemand eine Idee wie ich den Druckerstatus erkennen kann bevor ich
z.B. eine Zeile an dem Drucker schicke?
Das Problem ist es darf kein Zeichen verloren gehen. Ich habe überlegt
Zeile per Zeile zu drucken aber hab keine Idee wie ich den Sruckerstatus
abfragen kann?
Für jeden Vorschlag bin ich sehr dankbar.
Gruß
Espig
Espig schrieb:> Für jeden Vorschlag bin ich sehr dankbar.
Woher sollen wir wissen, das der Drucker für Möglichkeiten bietet? Das
einfachste ist wohl eine USV zu installieren. dann gibt es für die
Geräte keinen Stromausfall mehr.
Espig schrieb:> Das Problem ist es darf kein Zeichen verloren gehen. Ich habe überlegt> Zeile per Zeile zu drucken aber hab keine Idee wie ich den Sruckerstatus> abfragen kann?
Da hilft sicher nur eine USV am Drucker. Denn was passiert, wenn der
Drucker am Netz ist und direkt nachdem du die Daten geschickt hast die
Spannung ausfällt?
Dann bräuchtest du noch eine Meldung mit "Bon gedruckt"...
Eine einfache USV sollte die einfachste und schnellste Lösung sein.
Das Problem ist: Es ist so gesetzlich vorgeschrieben. Es geht um einem
Fiskalsystem und tatsächlich gibts einen Hersteller der sowas realisiert
hat.
Du kannst ein Bondrucker am Drucker schicken und den Stecker ziehen und
nach dem Neustarten fängt wieder da an wo es aufgehört hat :-)
Das möchte ich herausfinden wie das realisiert wurde?
keine USB Schnittestelle. Serielle Schnittstelle.
Espig schrieb:> Das möchte ich herausfinden wie das realisiert wurde?
dann wird es ein Protokoll geben, mit dem man über Serial den Drucker
befragen kann.
Espig schrieb:> Das möchte ich herausfinden wie das realisiert wurde?
Ohne Mitarbeit des Druckers geht das nicht. Der Drucker muss auf
irgendeine Art und Weise signalisieren, daß er die Daten empfangen und
auch gedruckt hat.
Das ist z.B. mit einer der Handshakeleitungen möglich, über die die
serielle Schnittstelle verfügt, das ist aber auch über ein vom Drucker
erzeugtes serielles Protokoll möglich, bei dem der Drucker die
Druckbestätigung über die Datenleitung der Schnittstelle versendet.
Ohne Mitarbeit des Druckers aber ist das nicht umsetzbar - der Drucker
hat einen Empfangspuffer, in dem er mehrere Zeichen bis Zeilen des zu
druckenden Textes sammelt, bevor er mit dem Drucken anfängt.
Tja, und wenn zwischen Empfangen und Drucken der Strom ausfällt, ist das
nicht vom die Daten sendenden Gerät feststellbar.
Espig schrieb:> Hat jemand eine Idee wie ich den Druckerstatus erkennen kann bevor ich> z.B. eine Zeile an dem Drucker schicke?
Das ist ein grundlegendes Missverständnis deinerseits. VORHER fragen
nützt garnichts, das heisst noch lange nicht dass das was du sendest
auch gedruckt wird. Das Problem ist nur lösbar, wenn man den Drucker
DANACH fragen kann, ob er alles gedruckt hat. Das setzt eine spezielle
Druckersoftware voraus.
Dein Bondrucker kann das offensichtlich nicht, sonst würdest du ja nicht
fragen. Mit dem Drucker geht es also nicht.
Georg
Espig schrieb:> Das Problem ist: Es ist so gesetzlich vorgeschrieben. Es geht um einem> Fiskalsystem und tatsächlich gibts einen Hersteller der sowas realisiert> hat.> Du kannst ein Bondrucker am Drucker schicken und den Stecker ziehen und> nach dem Neustarten fängt wieder da an wo es aufgehört hat :-)>> Das möchte ich herausfinden wie das realisiert wurde?
Und warum fragst du das dann nicht gleich?
Um das zu realisieren, braucht man zwei Zutaten:
a) eine Form von nichtflüchtigem (mindestens: gepuffertem) Speicher
b) ein Protokoll das mindestens die Signalisierung von "ok" aus Richtung
des Druckers zum Computer erlaubt
Dann kann der Drucker die empfangenen Daten in den nichtflüchtigen
Speicher schreiben und wenn das geklappt hat, schickt er "ok". Dann
druckt er den Krempel und löscht seinen Speicher wieder. Wenn nach dem
Einschalten etwas im Speicher steht, dann ist es anscheinend nicht
(komplett) gedruckt worden und wird einfach nochmal gedruckt.
Allerdings ist das mit dem Stromausfall arg konstruiert. Wenn dem
Drucker der Strom ausgeht, dann ja wohl auch dem PC. Wenn andererseits
der PC an einer USV hängt, dann kann man den Drucker da ja auch mit
anschließen.
Espig schrieb:> Du kannst ein Bondrucker am Drucker schicken und den Stecker ziehen und> nach dem Neustarten fängt wieder da an wo es aufgehört hat :-)
Im einfachsten Fall schreibt man sich einen Druckertreiber, der jeden
Druckjob auf der HDD puffert. Und erst, wenn er vom Drucker eine
Quittung erhält, löscht er diese Datei, anderenfalls sendet er sie neu.
Für die Quittung wäre es z.B. möglich, den Drucker in den Echo-Modus zu
setzen, d.h. jedes gedruckte Zeichen zurück zu senden.
Peter II schrieb:> Espig schrieb:> Das möchte ich herausfinden wie das rea
Das geht einfach.
Drucker in den Grafikmodus schalten, zeilenweise
Rausgeben, MIT ack. Wenn eine Zeile fehlt, ist egal,
Sofern z.b. E der Mittelstrich 2 zeilen sind.
Ansosten in zweifelsfall zeile wiederholen.
Y
Hallo,
mit genügend Paranoia kann man immer noch Fehlermöglichkeiten finden:
z.B. gilt Fax-Übertragung wegen der Quittung als beweissicher, aber so
manche Sekretärin hat es geschafft, das Thermopapier verkehrt herum
einzulegen, dann gibt es zwar eine Quittung, aber nur ein weisses Blatt.
Und bei anderen Systemen kann der Toner ausgehen oder das Farbband. Am
besten eine Kamera montieren und das Druckbild mit einen intern
gerenderten vergleichen...
Halbwegs vernünftig und aussichtsreich erscheint mir, dass der Drucker
ein Zeichen echot, wenn es gedruckt ist(!). Aber so weit muss man einen
Drucker erst mal kriegen, bei den meisten müsste man wohl eine eigene
Firmware schreiben, was ziemlich hoffnungslos ist. Ohne spezielle
Druckerfunktion gibt es aber überhaupt keinen sicheren Ausdruck. Die
meisten heutigen Drucker drucken sowieso im Seitenmodus, drucken also
erst, wenn die Seite komplett übertragen ist, und für Windows ist das
auch die Standardeinstellung, Drucken Zeichen für Zeichen ist nicht
vorgesehen.
Georg
Alte solche kleine Thermodrucker hatten das normale Parallel-Interface.
Da sind Fertig-Signale vorhanden.
Ohne Kenntnis vom Interface ist es stochern im Nebel.
michael_ schrieb:> Ohne Kenntnis vom Interface ist es stochern im Nebel.
Was nützt eine "Fertigmeldung" vom Drucker wenn dieser nicht merkt, daß
weiße Schrift auf weißem Grund gedruckt wurde? z.B. Tinte eingetrocknet,
Papier zerknittert später, oder Druckkopf steuert nicht alle Punkte an?
Bei Stromausfall siehet der Fall wieder anders aus. Da könnte auch im
Spooler oder im RAM noch was sein was bei Spannungsausfall verloren
geht. Da wäre die nächste Frage wieviele Buchstaben sind schon raus und
wieviele waren noch im Speicher. Fragen über Fragen...