Zum Inhalt springen

Kassomat: Unterschied zwischen den Versionen

M68k (Diskussion | Beiträge)
K typo
Bild hinzugefügt, Videos entfernt, da nicht mehr verfügbar
 
(17 dazwischenliegende Versionen von 3 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
[[Datei:Kassomat 2022.jpg|mini|rechts|Kassomat]]
{{Projekt
{{Projekt
|image=KASSOMAT.png
|image=KASSOMAT.png
Zeile 9: Zeile 11:
== Kassomat ==
== Kassomat ==


* Video: https://www.youtube.com/watch?v=V_DINDvbJZY
payoutd controls the hardware and feeds events into redis queues where other tools may pick them up.
* Payoutd: https://github.com/sixtyeight/Payout
Changeomatic listens to events in those redis queues and allows users to change banknotes into coins.
* Maintenance Mode Application: https://github.com/phaer/kassomat-scripts
The protocol is documented in the [https://github.com/metalab-kassomat/kassomat-payout/blob/master/docs/overview.md payoutd repository]. People who are interested in implementing a more advanced POS system are very welcome to do so! :)
* Changeomatic: https://github.com/sixtyeight/changeomatic
There is now an [https://github.com/metalab-kassomat umbrella organization] on github which contains all the sub-projects listed below.
 
'''''Please note:''' From 6/2021 on the manufacturer of Smart Hopper (coin unit) and NV200 (banknotes) will no longer provide new currency or firmware updates. No spare parts, too.'' [https://metalab.at/wiki/Datei:Innovative_Technology_Ltd_-_Obsolete_Products_Notification.pdf cf. PDF]
 
== Kassomat/VM ==
 
Instead of installing a lot of packages and requirements you could opt to use [https://www.virtualbox.org VirtualBox] and [https://www.vagrantup.com Vagrant]. The [https://github.com/metalab-kassomat/kassomat-vm kassomat-vm] repository contains all the necessary files to get a fully provisioned virtual machine (it is even possible to plug the actual hardware into your host and use it from inside the vm).
 
== Components ==
 
* '''Changeomatic'''
** [https://github.com/metalab-kassomat/kassomat-changeomatic Source]
** Written in Java, can be built (and run) with [https://maven.apache.org/ Maven]
*** build: <code>mvn install</code>
*** run: <code>mvn exec:java -Dexec.mainClass="at.metalab.changeomatic.ChangeomaticMain"</code>
** UI: Graphical Swing Frontend
** libs
*** [http://redisson.org/ Redisson] (Redis client)
*** [https://github.com/FasterXML/jackson Jackson] (JSON library)


== Development ==
In case you don't have the actual hardware available you can use the Payoutd/Cash hardware Simulator instead: https://github.com/hettipeti/PayoutSimulator


The https://github.com/hettipeti/PayoutSimulator/tree/master/PayoutSim_v3/PayoutSimulator folder contains the latest version.
* '''Maintenance Mode Application'''
** [https://github.com/metalab-kassomat/kassomat-scripts Source]
** Written in Python
*** set the coin levels: <code>./kassomat-set-coin-levels.py</code>
*** count the coins (n.b. '''this will dump all coins through the bottom opening!'''): <code>./kassomat-count-coins.py</code>
** UI: Console interface
** libs
*** [https://pypi.python.org/pypi/redis redis]


== Status ==


payoutd controls the hardware and feeds events into redis queues where other tools may pick them up.
* '''Payout'''
Changeomatic listens to events in those redis queues and allows users to change banknotes into coins.
** [https://github.com/metalab-kassomat/kassomat-payout Source]
The protocol is documented in the [https://github.com/sixtyeight/Payout/blob/master/docs/overview.md payoutd repository]. People who are interested in implementing a more advanced POS system are very welcome to do so! :)
** Written in C, can be built with make
** Linux daemon
** [https://github.com/metalab-kassomat/kassomat-payout/blob/master/docs/overview.md JSON API] (accessible via Redis)
** UI: none
** libs
*** [https://github.com/redis/hiredis hiredis] (Redis client)
*** [http://libevent.org libevent2] (Event Dispatching)
*** [http://www.digip.org/jansson/ libjansson] (JSON library)
*** [https://sourceforge.net/projects/libuuid/ libuuid]
*** ITL example code (aka "vendor hardware library")


== Components ==
<pre>
* Changeomatic
- Source at: https://github.com/sixtyeight/changeomatic
- Written in Java
- UI: Graphical Swing Frontend
- libs
- Redisson (Redis client)
- Jackson (JSON library)


* Maintenance Mode Application
* '''Payout Simulator''' ''for development without the real hardware''
- Source at: https://github.com/phaer/kassomat-scripts
** [https://github.com/metalab-kassomat/kassomat-payout-simulator Source]
- Written in Python
** Written in Java, can be built (and run) with [https://maven.apache.org/ Maven]
- UI: Console interface
*** build: <code>mvn install</code>
*** run: <code>mvn exec:java -Dexec.mainClass="at.metalab.payoutsim.PayoutSimMain"</code>
** UI: Graphical Swing Frontend
** libs
*** [http://redisson.org/ Redisson] (Redis client)
*** [https://github.com/FasterXML/jackson Jackson] (JSON library)


* Payout
- Source at: https://github.com/sixtyeight/Payout
- Written in C
- Linux daemon
- JSON API (accessible via Redis)
- UI: none
- libs
- hiredis (Redis client for C)
- libevent2 (Event Dispatching)
- libjansson (JSON library)
- libuuid
- ITL example code (aka "vendor hardware library")


* Redis
* '''[http://redis.io/ Redis]'''
- message broker between the different components (Changeomatic, Payout and the Maintenance Mode Application)
** message broker between the different components (Changeomatic, Payout and the Maintenance Mode Application)
- not used as a datastore!
** not used as a datastore!
</pre>


{{#ev:youtube|V_DINDvbJZY|360|left|Kassomat mit Change-o-matic in Action}}
[[Datei:kassomat-overview.png|500px|thumb|left|Overview of the various components]]


[[Kategorie:Projekte]]
[[Kategorie:Projekte]]