Studentergaarden / drinkomatic

Code running on the foodputer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

About

This is written in lua using the Lua Event Machine, along with the sqlite3 library for it. sha1 is used for hashing the readings from the magnetic cards.

Barcode scanner

Zebex Z-6070 Programming guide User manual

Install

sudo apt-get install lua5.2 git sqlite3 libsqlite3-dev pkg-config
git clone https://github.com/Studentergaarden/drinkomatic.git
git clone https://github.com/Studentergaarden/lua-sha1.git
git clone https://github.com/esmil/lem.git
git clone https://github.com/esmil/lem-sqlite3.git

cd lem && ./configure && make
sudo make install

cd ../lem-sqlite3 && make && sudo make install

cd ../lua-sha1 && make LUA_INCDIR=/usr/local/include/lem && sudo make install

Create database

Install SQLite3

sudo apt-get install sqlite3 libsqlite3-dev

and create database

sqlite3 /home/paw/tmp/micropay.db < structure.sql

Create alias for /dev/ttyUSB0

In order to give a persistent name to the specific serial-to-usb devices, we need a rule to udev. First find the serial number for the device (without grep a lot of info about the usb is shown - use the first value of each keyword):

udevadm info -a -n /dev/ttyUSB* | egrep -w --color 'idVendor|idProduct|serial'

Then add the rule

$ sudo nano /etc/udev/rules.d/99-usb-serial.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="0711", ATTRS{idProduct}=="0230", ATTRS{serial}=="026637", SYMLINK+="card"
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="2303", SYMLINK+="barcode"

and update udev

$ sudo udevadm trigger --action=change

src{SYMLINK+=”card”} means that UDEV should create a symlink /dev/card pointing to the actual /dev/ttyUSB* device. In other words the device names will continue to be assigned ad-hoc but the symbolic links will always point to the right device node.

Change comma to dot on keypad

Run and add the following to ~/.xinitrc

# change comma to dot on numeric keypad
setxkbmap -option '' -option kpdl:dot

NB: This does only work in a graphical environment, eg. X must be started.

To check the current settings, write setxkbmap -query

Using named pipes

Instead of connecting an barcode scanner or cardreader, a named pipe can be used for testing: mkfifo /home/paw/tmp/testpipe

Then change ./drinkomatic to use this pipe instead of /dev/ttyUSB*.

Use RPi

http://www.instructables.com/id/How-to-Make-a-Raspberry-Pi-Media-Panel-fka-Digita/

See also this comment.

About

Code running on the foodputer


Languages

Language:Lua 98.2%Language:Shell 1.8%