Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]8994[/thread]

Sub ausgliedern



<< >> 3 Einträge, 1 Seite
Kean
 2007-05-11 15:23
#76637 #76637
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Ich habe ein kleines POS-Programm geschrieben das einen Kassendrucker ansteuert. Das ganze wird über einen Touchscreen gesteuert.

Beim drücken auf den Button eines Artikels wird der Preis ausgegeben bzw. eine Summe und ein Bon gedruckt.
Ich habe zum summieren und für das drucken zwei Methoden erstellt welche nacheinander aufgerufen werden.

Zuerst wird die Methode ausgabesumme aufgerufen und dann die Methode print.

Leider fängt aber erst der drucker an zu drucken und dann wird erst die Summe aktualisiert.

Gibt es eine Möglichkeit Subs wie z.b. Programme mit system so aufzurufen das sie im Hintergrund ausgeführt werden (quasi einer Warteschlange) und das Programm in dieser Zeit weiterläuft?

Oder kann ich dies nur erreichen wenn ich die Methoden in seperate Programme packe und mit system aufrufe?
betterworld
 2007-05-11 17:27
#76638 #76638
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
Je nach Betriebssystem kann man so etwas mit fork machen.  Ich wuerde vorschlagen, zwei Prozesse zu machen, die dauerhaft laufen.  Der eine teilt dem anderen dann mit, dass er etwas drucken soll.  Wie das geht, steht in perlipc
lichtkind
 2007-05-11 17:35
#76639 #76639
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ja das geht mit fork(starten neues prozesse) oder POE(kooperatives multitasking). diese methoden sind zu empfehlen wenn die programme miteinander reden sollen. wenn du deine routine als externe programm seperat startest ist der bob einmal auf der fahrtbahn aber du kommst halt da nicht mehr ran es sei du spielst mit ports aber wozu der aufwand für sowas wurde fork oder POE erfunden.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
<< >> 3 Einträge, 1 Seite



View all threads created 2007-05-11 15:23.