summaryrefslogtreecommitdiffstats
path: root/src/scanner-session/scannersession.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/scanner-session/scannersession.vala')
-rw-r--r--src/scanner-session/scannersession.vala20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/scanner-session/scannersession.vala b/src/scanner-session/scannersession.vala
index f19d94c..7cc9cc4 100644
--- a/src/scanner-session/scannersession.vala
+++ b/src/scanner-session/scannersession.vala
@@ -23,7 +23,8 @@ public class ScannerSessionImplementation {
private Database db;
private AudioPlayer audio;
- private InputDevice dev;
+ private InputDevice devScanner;
+ private InputDevice devRfid;
private Cli cli;
private ScannerSessionState state = ScannerSessionState.READY;
@@ -35,11 +36,13 @@ public class ScannerSessionImplementation {
public ScannerSessionImplementation() {
try {
db = Bus.get_proxy_sync(BusType.SYSTEM, "io.mainframe.shopsystem.Database", "/io/mainframe/shopsystem/database");
- dev = Bus.get_proxy_sync(BusType.SYSTEM, "io.mainframe.shopsystem.InputDevice", "/io/mainframe/shopsystem/device");
+ devScanner = Bus.get_proxy_sync(BusType.SYSTEM, "io.mainframe.shopsystem.InputDevice", "/io/mainframe/shopsystem/device/scanner");
+ devRfid = Bus.get_proxy_sync(BusType.SYSTEM, "io.mainframe.shopsystem.InputDevice", "/io/mainframe/shopsystem/device/rfid");
cli = Bus.get_proxy_sync(BusType.SYSTEM, "io.mainframe.shopsystem.Cli", "/io/mainframe/shopsystem/cli");
audio = Bus.get_proxy_sync(BusType.SYSTEM, "io.mainframe.shopsystem.AudioPlayer", "/io/mainframe/shopsystem/audio");
- dev.received_barcode.connect(handle_barcode);
+ devScanner.received_barcode.connect(handle_barcode);
+ devRfid.received_barcode.connect(handle_barcode);
cli.received_barcode.connect(handle_barcode);
} catch(IOError e) {
error("IOError: %s\n", e.message);
@@ -85,6 +88,8 @@ public class ScannerSessionImplementation {
return ScannerSessionCodeType.UNDO;
} else if(scannerdata == "LOGOUT") {
return ScannerSessionCodeType.LOGOUT;
+ } else if(scannerdata.length == 10) {
+ return ScannerSessionCodeType.RFIDEM4100;
} else {
//Handle EAN Code
uint64 id = 0;
@@ -184,6 +189,10 @@ public class ScannerSessionImplementation {
scannerResult.audioType = AudioType.ERROR;
state = ScannerSessionState.READY;
return scannerResult;
+ case ScannerSessionCodeType.RFIDEM4100:
+ int user = db.get_userid_for_rfid(scannerdata);
+ scannerResult.nextScannerdata =@"USER $user";
+ return scannerResult;
default:
state = ScannerSessionState.READY;
return scannerResult;
@@ -249,7 +258,8 @@ public class ScannerSessionImplementation {
break;
case ScannerSessionCodeType.USER:
case ScannerSessionCodeType.GUEST:
- //Logout alten User und akrtikel kaufen
+ case ScannerSessionCodeType.RFIDEM4100:
+ /* Logout old user session (and buy articles) */
scannerResult = logout();
scannerResult.nextScannerdata = scannerdata;
break;
@@ -284,7 +294,7 @@ public class ScannerSessionImplementation {
try {
stdout.printf("scannerdata: %s\n", scannerdata);
if(interpret(scannerdata))
- dev.blink(1000);
+ devScanner.blink(1000);
} catch(IOError e) {
send_message(MessageType.ERROR, "IOError: %s", e.message);
} catch(DatabaseError e) {