-
Notifications
You must be signed in to change notification settings - Fork 1
Protokoll
Baljan och Admittansen håller på att göra en ny kaffekortsläsare.
- Den gamla läsaren
- Två servrar: en som kör nya systemet och en som kör gamla systemet (ur bruk men online)
- En tjock sladd (25 ledare?) som innehåller två seriesnören och ljud.
- En RFID-läsare av typen ACR122U
- En RFID-läsare av typen ACR120 (P/N:ACR120S-TK-ABC) (bild)
- 10 meter aktiv USB-kabel till RFID-läsaren
- Kaffekoppen i taket som kan lysa grönt eller rött
- Koppla USB-läsaren via en USB-hubb med egen spänningsmatning. Detta kanske löser problemet med att läsaren inte funkar varje gång man kopplar in den. Det kommer i vilket fall avlasta datorns USB-port.
- En AVR eller en liten PC
- En display
- En RFID-läsare
- Kanske några knappar
- Högtalare (avstängningsbar)
- Summer (för blippljud, det sitter "buzzers" i alla ACR122-versioner)
- Ska vi använda en mikrokontroller (AVR) eller en (liten) PC?
- Ska RFID-läsaren kopplas direkt till servern , eller ska µC:n/PC:n agera mellanhand?
- Hur ska displayer och knappar placeras för bästa användning? Köflöde är viktigt.
Det finns fyra varianter i ACR122-serien:
- ACR122U är en rektangulär platta, har USB-anslutning via sladd och är den som används nu.
- ACR122T är i formen av en USB-sticka.
- ACR122S liknar U-varianten, men har serieport istället.
- ACR122L står på en fot och har bl.a. en display. Skulle kunna funka intill kassan. Ansluten via serieport.
Vi skall inte använda någon USB-läsare, istället en fristående arduino som agerar "hjärna" i blipparen, som sköter displayer etc.
Dubbelriktad UART till arduinon, med ett kommunikationsprotokoll enligt nedan.
- 2 bytes preamble
- 1 byte TYPE (kommer definieras senare)
- 1 byte LENGTH
- 1 byte checksum av preamble, TYPE och LENGTH
- LENGTH bytes payload
- 1 byte checksum av payloaden en aritmetisk summa.
Fyll på med önskemål här, se exempel:
Något har gått väldigt fel, ex. arduinon misslyckades initiera sig.
- TYPE = 0xXX
- LENGTH = 0
Server -> Arduino
Arduino -> Server
Kollar om motparten är vaken, skall besvaras med pong.
- TYPE = 0xXX
- LENGTH = 0
Server -> Arduino
Arduino -> Server
Svar på ping.
- TYPE = 0xXX
- LENGTH = 0
Arduino -> Server
Skickar en orderförfrågan till servern.
- TYPE = 0xXX
- LENGTH = 5 bytes.
En tanke här är att kunna lägga "kombinerade" ordrar, typ kaffe & klägg, espresso & klägg etc etc.
Server -> Arduino
Svar på order_req, order lagd och genomförd. Returnerar "korttyp" (jobbare eller vanlig) och kvarvarande saldo för det blippade kortet.
- TYPE = 0xXX
- LENGTH = 3 bytes
Kortyp:
- 0x00: Vanlig dödlig.
- 0x01: Jobbare.
- 0x02: Skapare. ("Yess masssterr...")
Server -> Arduino
Svar på order_req. Order misslyckades.
- TYPE = 0xXX
- LENGTH = 1 byte
- 0x00 - Inte tillräckligt med pengar på kortet.
- 0x01 - Kortnumret hittades inte (ej liukort?).
Server -> Arduino
Skickar köparens namn till arduinon.
- TYPE = 0xXX
- LENGTH = variabel (sträng med namnet)
Kan kombineras med order_ok eller order_fail, eller next_shift.
Server -> Arduino
Skickar nästa jobbpass till blipparen.
- TYPE = 0xXX
- LENGTH = ?? (vad skall presenteras?)