Kontrollenhet
En kassa i Sverige måste ha en certifierad kontrollenhet som registrerar varje kvitto. R-GO använder CleanCash. Kassan tar inte betalt utan den: varje kvitto skickas till kontrollenheten innan det räknas som genomfört, och ett kvitto som kontrollenheten inte tagit emot blir inte ett kvitto.
Hur kassan når CleanCash
CleanCash sitter på en serieport, men kassan pratar med den över en WebSocket. Mellan dem står en brygga som gör serieporten till en WebSocket:
- på en vanlig dator: receiptprinter, inställd på skrivarsidan
(
/setup, avsnittet Kontrollenhet) - serieport, hastighet och WebSocket-adress, normalt127.0.0.1:8765; - på CHD6800: receiptprinter i APK:n, mot terminalens port
/dev/ttymxc3, på127.0.0.1:8766; - på Casio-kassorna: Casio-appen, mot COM1, på
127.0.0.1:8081.
Kassan hittar bryggan genom config/cleancash.json (websocketUrl).
Adressen där och bryggans adress måste vara densamma.
Kassan letar efter kontrollenheten en gång, när den startar. Startar kassan före bryggan, eller är bryggan felinställd, går det inte att ta betalt förrän kassan startats om. Därför väntar apparna på CHD6800 och Casio in bryggan innan de startar kassan.
När kontrollenheten frågar
Ibland behöver kontrollenheten ett beslut från kassören. Då visar operatörsdisplayen SVAR KRÄVS och kassan väntar på Ja eller Nej innan något annat kan göras. Det är ingen hängning - kassan väntar på svaret.
Begränsningar
CleanCash tar inte emot ett kvitto som blandar retur och försäljning; en retur görs på ett eget kvitto. Det står inte i dokumentationen och upptäcktes på riktig hårdvara.
En kontrollenhet är parad mot kassans id (posId i
config/company_info.json). Byts id:t ser kontrollenheten en ny kassa,
och den har ett begränsat antal platser - ändra det inte i onödan.
Simulerad kontrollenhet
För utveckling och prov finns en simulerad kontrollenhet som talar samma språk som bryggan, så att ett helt köp går igenom utan hårdvara. Den får aldrig användas i en butik - kvittona registreras inte någonstans.