vender

module
v0.240119.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 19, 2024 License: CC0-1.0

README

What

Vender is free open source VMC (Vending Machine Controller). (fork https://github.com/temoto/vender)

Status:

  • MDB adapter hardware module - works
  • VMC - works

Hardware

Required for VMC:

Supported peripherals:

  • MDB coin acceptor, bill validator
  • Evend MDB drink devices
  • any MDB device via configuration scenarios (work in progress)
  • MT16S2R HD44780-like text display
  • TWI(I2C) numpad keyboard
  • graphic display (anyone registered in the system.)

Design

VMC overall structure:

  • engine (see internal/engine packages) executes actions, handles concurrency and errors
  • device/feature drivers provide actions to engine
  • configuration scenario specifies action groups and when to execute them

Build

  • Install latest Go from https://golang.org/dl/ (now worked on 1.21)
  • Set target environment, default is GOARCH=arm GOOS=linux
  • Run script/build
  • Deploy file build/vender to your hardware

Directories

Path Synopsis
cmd
vender/subcmd
Support sub-commands in vender application.
Support sub-commands in vender application.
vender/ui
Helper for developing vender user interfaces
Helper for developing vender user interfaces
vender/vmc
Main, user facing mode of operation.
Main, user facing mode of operation.
input
Abstract input events
Abstract input events
mdb
mdb/bill
Package bill incapsulates work with bill validators.
Package bill incapsulates work with bill validators.
mdb/config
Separate package to for hardware/mdb related config structure.
Separate package to for hardware/mdb related config structure.
mdb/evend
Package evend incapsulates common parts of MDB protocol for eVend machine devices like conveyor, hopper, cup dispenser, elevator, etc.
Package evend incapsulates common parts of MDB protocol for eVend machine devices like conveyor, hopper, cup dispenser, elevator, etc.
mdb/evend/config
Separate package to for hardware/evend related config structure.
Separate package to for hardware/evend related config structure.
cacheval
Atomic value with validity timeout.
Atomic value with validity timeout.
cli
internal
engine
Engine tasks: - let drivers register actions - parse scenario .dot files - execute scenarios
Engine tasks: - let drivers register actions - parse scenario .dot files - execute scenarios
money
Package money provides high-level interaction with money devices.
Package money provides high-level interaction with money devices.
state/new
Sorry, workaround to import cycles.
Sorry, workaround to import cycles.
ui
Package log2 solves these issues: - log level filtering, e.g.
Package log2 solves these issues: - log level filtering, e.g.
config
Telemetry client config, vending machine side.
Telemetry client config, vending machine side.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL