/billettskriver

Utskrift av billetter fra billettsystemet på kvitteringsskriver

Primary LanguageShell

Billettskriver

Dette prosjektet er en del av billettsystemet til UKA på Blindern, se https://github.com/blindernuka/billett, og har til formål å fungere som en utskriftsserver for billettsystemet.

For å skrive ut billetter fra billettsystemet på kvitteringsskriver, vil det naturlige være å koble kvitteringsskriveren opp mot laptoppen som brukes for billettsystemet, herunder sette opp driver, printer m.v. For utskrift vil man da måtte åpne PDF-en som genereres, endre utskriftsinnstillinger og trykke print. Dette føler vi imidlertid at blir tungvindt.

Idéen med dette prosjektet er å ha en Raspberry Pi som er koblet til kvitteringsskriveren, og som tilbyr et API til billettsystemet for å skrive ut PDF-er. Når man da ønsker å skrive ut billetter, vil alt skje gjennom billettsystemet, hvor man velger hvilken Raspberry Pi som skal behandle utskriften.

Krav

  • Billettsystemet må kunne opprette tilkobling direkte mot Raspberry Pi-en

Samkobling med billettsystemet

  • Dette systemet sender "ping" til billettsystemet for å annonsere seg selv
  • Billettsystemet sender PDF-er til dette systemet som automatisk blir skrevet ut

Oppsett av Raspberry Pi

Systemavhengigheter

Installer CUPS:

  • $ sudo apt-get install cups

Installer driver for skriveren:

Sett opp printeren i CUPS. Den må ha navn SEWOO_LKT_Series.

Ved problemer, sjekk at printeren blir identifisert når den blir koblet til ved å se etter Product: POS PRINTER i $ dmesg. Prøv evt. en annen USB-port hvis den ikke dukker opp.

Installer NodeJS og nødvendige globale pakker:

$ mkdir /opt/node
$ cd /opt/node
$ wget http://nodejs.org/dist/v0.11.12/node-v0.11.12-linux-arm-pi.tar.gz     (NB! sjekk for siste versjon først)
$ tar zxf node-v0.11.12-linux-arm-pi.tar.gz --strip 1
$ ln -s /opt/node/bin/node /usr/local/bin/node
$ ln -s /opt/node/bin/npm /usr/local/bin/npm
$ npm install -g forever

Vi bruker OpenVPN for å sikre at man kan koble seg til systemet dersom det er på en LAN.

  • Installer OpenVPN: $ sudo apt-get install openvpn
  • Hent ned config filer fra en annen klient (se mappen /etc/openvpn/)
  • Legg til følgende et passende sted (etter IFPLUGD_IFACE blir definert) i `/etc/ifplugd/action.d/action_wpa´
# skip openvpn interface
if [ "${IFPLUGD_IFACE}" = "tun0" ]; then
        exit 0
fi
  • Start OpenVPN: $ sudo service openvpn restart

Applikasjon

$ cd app
$ npm install
$ echo 'bytt-meg-ut' >PRINTERNAME

Kjøring i testmodus

$ npm start                      # kjører i utviklermodus mot billett.uka.athene.foreningenbs.no
$ NODE_ENV=production npm start  # kjører i produksjonsmodus mot blindernuka.no

Kjøring ved oppstart

$ crontab -u pi -e

Legg til

@reboot /home/pi/billettskriver/runapp.sh