config_global

package
v0.260503.0 Latest Latest
Warning

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

Go to latest
Published: May 3, 2026 License: CC0-1.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var VMC = newDefaultConfig()

Functions

func CreamMax

func CreamMax() uint8

func DefaultCream

func DefaultCream() uint8

func DefaultSugar

func DefaultSugar() uint8

func GetMenuItem

func GetMenuItem(menuCode string) (mi menu_config.MenuItem, ok bool)

func SugarMax

func SugarMax() uint8

func WriteConfigToFile

func WriteConfigToFile()

for test/ make config from ctrusture

Types

type Config

type Config struct {
	Version string
	TeleN   tele_api.Teler
	// RU: UpgradeScript - скрипт, запускаемый для обновления системы после команды vmc.upgrade!.
	// EN: UpgradeScript - a script run to update the system after the vmc.upgrade command!
	// Example: sudo -u vmc git -C /home/vmc/vender-distr/ pull && sudo -u vmc -i /home/vmc/vender-distr/script/build && rsync -av /home/vmc/vender-distr/build/vender /home/vmc/ && logger upgrade complete. run reload triger
	UpgradeScript string `hcl:"upgrade_script,optional"`
	// ScriptIfBroken is executed when the system is broken
	ScriptIfBroken string `hcl:"script_if_broken,optional"`
	// ErrorFolder where error logs are stored
	ErrorFolder string `hcl:"error_folder,optional"`
	// BrokenFile for broken state logging
	BrokenFile string `hcl:"broken_file,optional"`
	// Inventory configuration for stock management
	Inventory inventory.Inventory `hcl:"inventory,block"`
	// RU: настройки для валидаторов
	// EN: Money configuration for payment settings
	Money MoneyStruct `hcl:"money,block"`
	// RU: Конфигурация для аппаратной части
	// EN:Hardware configuration for devices
	Hardware HardwareStruct `hcl:"hardware,block"`
	// Persist        PersistStruct          `hcl:"persist,block"`
	// Tele configuration for telemetry
	Tele tele_config.Config `hcl:"tele,block"`
	// UI_config for user interface settings
	UI_config ui_config.Config `hcl:"ui,block"`
	// RU: Конфигурация для звука
	// EN: Sound configuration for audio settings
	Sound sound_config.Config `hcl:"sound,block"`
	// RU: Конфигурация для системы наблюдения за сервисом. Если стророжевую собаку не кормить то сервис будет перезапущен.
	Watchdog watchdog_config.Config `hcl:"watchdog,block"`
	// RU: Конфигурация для движка. В ней описано как готовить напитки, какие вложенные сценарии использовать и т.д.
	Engine engine_config.Config `hcl:"engine,block"`
	// Remains   hcl.Body               `hcl:",remain"`
	User ui_config.UIUser
}

func NewConfig added in v0.260323.0

func NewConfig() *Config

func ReadConfig

func ReadConfig(log *log2.Log, fn string) *Config

конфигурация может быть перезаписана есть базывый конфиг, который может быть скорректирован записями ниже и записями во вложенных файлах. для перезаписи создается карта в которой обновляются данные из масива при инициалицации данные их карты перемещаются в рабочий масив в инвенторе есть списоки ингридиентов и складов ( бункеров) в складе указывается ссылка на ингредиент ключи ингредиента - название, для склада - код

func (*Config) KeyboardReader

func (u *Config) KeyboardReader(v ...bool) bool

func (*Config) ScaleA

func (c *Config) ScaleA(a currency.Amount) currency.Amount

func (*Config) ScaleI

func (c *Config) ScaleI(i int) currency.Amount

func (*Config) ScaleU

func (c *Config) ScaleU(u uint32) currency.Amount

type DeviceConfig

type DeviceConfig struct {
	// RU: имя устройства, например "mixer", "hopper1", "hopper2" и т.д. Должно быть уникальным в рамках конфигурации.
	Name string `hcl:"name,label"`
	// RU: required - если true, то устройство обязательно для работы системы. Если устройство с таким именем не будет найдено, система перейдет в состояние "сломано".
	Required bool `hcl:"required,optional"`
	// RU: disabled - если true, то устройство будет отключено. Система будет игнорировать его отсутствие и не будет пытаться с ним взаимодействовать. Это может быть полезно для устройств, которые не всегда нужны или для временного отключения устройства без удаления его конфигурации.
	Disabled bool `hcl:"disabled,optional"`
}

type DisplayStruct

type DisplayStruct struct {
	// RU: путь к фреймбуферу для графического дисплея.
	// EN: path to framebuffer for graphical display.
	Framebuffer string `hcl:"framebuffer"`
}

type EvendKeyboardStruct

type EvendKeyboardStruct struct {
	Enable bool `hcl:"enable,optional"`
}

type HD44780Struct

type HD44780Struct struct {
	// RU: включить поддержку HD44780 дисплея.
	Enable bool `hcl:"enable"`
	// RU: путь к gpiochip для управления пинами дисплея.
	PinChip string `hcl:"pin_chip"`
	// RU: распиновка для четырех битного подключения дисплея. RS, RW, E, D4, D5, D6, D7. Значения должны быть номерами пинов на gpiochip.
	Pinmap hd44780.PinMap `hcl:"pinmap,block"`
	// RU: ширина дисплея в символах.
	Width int `hcl:"width"`
	// RU: мигание курсора.
	ControlBlink bool `hcl:"blink"`
	// RU: отображение курсора.
	ControlCursor bool `hcl:"cursor"`
	// RU: задержка при прокрутке текста в миллисекундах.
	ScrollDelay int `hcl:"scroll_delay"`
}

type HardwareStruct

type HardwareStruct struct {
	EvendDevices map[string]DeviceConfig
	// RU: список устройств.
	XXX_Devices []DeviceConfig      `hcl:"device,block"`
	Evend       evend_config.Config `hcl:"evend,block"`
	// RU: графический дисплей.
	// EN: graphical display.
	Display DisplayStruct `hcl:"display,block"`
	// RU: Конфигурация для LCD 16х2 дисплея HD44780
	// EN: Configuration for LCD 16x2 HD44780 display
	HD44780   HD44780Struct `hcl:"hd44780,block"`
	IodinPath string        `hcl:"iodin_path,optional"`
	// RU: Конфигурация для устройств ввода.
	Input InputStruct `hcl:"input,block"`
	// RU: Конфигурация для MDB шины.
	// EN: Configuration for MDB bus.
	Mdb mdb_config.Config `hcl:"mdb,block"`
	// RU: Конфигурация для устройства шлюза. одноплатник не умеет работать с 9 битным UART. для работы с MDB устройствами нужен драйвер. драйвер сделал на Atmel 168 или 328. к драйверу подключена evend клавиатура по i2c и mdb шина. общение с драйверов идет поверх SPI.
	Mega MegaStruct `hcl:"mega,block"`
}

type InputStruct

type InputStruct struct {
	EvendKeyboard EvendKeyboardStruct `hcl:"evend_keyboard,block"`
	ServiceKey    string              `hcl:"service_key,optional"`
}

type MegaStruct

type MegaStruct struct {
	// RU: логирование отладочной информации от драйвера Mega. может быть полезно для диагностики проблем с MDB устройствами и клавиатурой evend.
	LogDebug bool   `hcl:"log_debug,optional"`
	Spi      string `hcl:"spi,optional"`
	// RU: скорость SPI соединения с драйвером Mega.
	SpiSpeed string `hcl:"spi_speed,optional"`
	// RU: gpiochip для прерывания от меги (когда приходит событие от MDB устройства или клавиатуры evend).
	PinChip string `hcl:"pin_chip,optional"`
	// RU: номер пина на gpiochip для прерывания от меги.
	Pin string `hcl:"pin,optional"`
}

type MoneyStruct

type MoneyStruct struct {
	// RU: десятичная точка.
	Scale int `hcl:"scale"`
	// RU: максимальный кредит. сумма после которой аппарат откажется принимать деньги.
	CreditMax int `hcl:"credit_max"`
	// RU: минимальная купюра. сумма, меньше которой аппарат не будет принимать деньги.
	MinimalBill int `hcl:"minimal_bill"`
	// RU: максимальная купюра. сумма, больше которой аппарат не будет принимать деньги.
	MaximumBill int `hcl:"maximum_bill"`
}

Jump to

Keyboard shortcuts

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