diff options
Diffstat (limited to 'src/scanner-session/scannersession.vala')
-rw-r--r-- | src/scanner-session/scannersession.vala | 20 |
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) { |