lacteApp
C++17 service for Lacte hardware
Loading...
Searching...
No Matches
lacte::config Namespace Reference

Typedefs

template<typename T>
using ConfigField = insitech::config::FieldSpec<T>

Variables

constexpr ConfigField< const char * > K_APP_NAME
constexpr ConfigField< const char * > K_APP_DESCRIPTION
constexpr ConfigField< const char * > K_APP_DIR
constexpr ConfigField< const char * > K_BUS_MULTICAST_GROUP
constexpr ConfigField< int64_t > K_BUS_MULTICAST_PORT
constexpr ConfigField< int64_t > K_SHARED_BUS_ADDRESS
constexpr ConfigField< const char * > K_LOG_DIR
constexpr ConfigField< int64_t > K_LOG_MIN_LEVEL
constexpr ConfigField< const char * > K_MODEL_BUS_NODE_NAME
constexpr ConfigField< const char * > K_DB_BUS_NODE_NAME
constexpr ConfigField< const char * > K_NAND_DISK_PATH
constexpr ConfigField< const char * > K_PL2303_SYSFS_PATH
constexpr ConfigField< const char * > K_DEVICE_NAME
constexpr ConfigField< const char * > K_FRAMEBUFFER_PATH
constexpr ConfigField< const char * > K_TOUCH_PATH
constexpr ConfigField< const char * > K_HMI_UART_PATH
constexpr ConfigField< const char * > K_DB_NAME
constexpr ConfigField< const char * > K_FIRMWARE_GLOB
constexpr ConfigField< const char * > K_USB_VID_PID
constexpr ConfigField< int64_t > K_MODEL_BUS_ADDRESS
constexpr ConfigField< int64_t > K_UI_BUS_ADDRESS
constexpr ConfigField< int64_t > K_DB_BUS_ADDRESS
constexpr ConfigField< int64_t > K_MODEL_UI_NOTIFIER_ADDRESS
constexpr ConfigField< int64_t > K_UART_BAUD_RATE
constexpr ConfigField< const char * > K_UI_MODE
constexpr ConfigField< int64_t > K_CHECK_UPDATE_INTERVAL_MS
constexpr ConfigField< int64_t > K_BOARD_ONLINE_TIMEOUT_MS
constexpr ConfigField< int64_t > K_HMI_UART_BAUD_RATE
constexpr ConfigField< int64_t > K_FRAME_TIME_MS
constexpr ConfigField< int64_t > K_VNC_PORT
constexpr ConfigField< const char * > K_VNC_PASSWORD
constexpr auto K_ALL_FIELDS

Typedef Documentation

◆ ConfigField

template<typename T>
using lacte::config::ConfigField = insitech::config::FieldSpec<T>

Definition at line 96 of file AppConfig.hpp.

Variable Documentation

◆ K_ALL_FIELDS

auto lacte::config::K_ALL_FIELDS
inlineconstexpr
Initial value:
= std::tie(
constexpr ConfigField< int64_t > K_BOARD_ONLINE_TIMEOUT_MS
constexpr ConfigField< const char * > K_FIRMWARE_GLOB
constexpr ConfigField< int64_t > K_BUS_MULTICAST_PORT
constexpr ConfigField< const char * > K_TOUCH_PATH
constexpr ConfigField< int64_t > K_HMI_UART_BAUD_RATE
constexpr ConfigField< const char * > K_APP_NAME
constexpr ConfigField< int64_t > K_UI_BUS_ADDRESS
constexpr ConfigField< int64_t > K_UART_BAUD_RATE
constexpr ConfigField< int64_t > K_MODEL_BUS_ADDRESS
constexpr ConfigField< const char * > K_MODEL_BUS_NODE_NAME
constexpr ConfigField< const char * > K_UI_MODE
constexpr ConfigField< int64_t > K_MODEL_UI_NOTIFIER_ADDRESS
constexpr ConfigField< const char * > K_DB_NAME
constexpr ConfigField< const char * > K_USB_VID_PID
constexpr ConfigField< const char * > K_DEVICE_NAME
constexpr ConfigField< const char * > K_NAND_DISK_PATH
constexpr ConfigField< int64_t > K_LOG_MIN_LEVEL
constexpr ConfigField< const char * > K_DB_BUS_NODE_NAME
constexpr ConfigField< const char * > K_FRAMEBUFFER_PATH
constexpr ConfigField< const char * > K_APP_DESCRIPTION
constexpr ConfigField< const char * > K_LOG_DIR
constexpr ConfigField< const char * > K_APP_DIR
constexpr ConfigField< int64_t > K_SHARED_BUS_ADDRESS
constexpr ConfigField< int64_t > K_VNC_PORT
constexpr ConfigField< const char * > K_BUS_MULTICAST_GROUP
constexpr ConfigField< const char * > K_VNC_PASSWORD
constexpr ConfigField< int64_t > K_CHECK_UPDATE_INTERVAL_MS
constexpr ConfigField< int64_t > K_FRAME_TIME_MS
constexpr ConfigField< const char * > K_PL2303_SYSFS_PATH
constexpr ConfigField< const char * > K_HMI_UART_PATH
constexpr ConfigField< int64_t > K_DB_BUS_ADDRESS

Definition at line 319 of file AppConfig.hpp.

◆ K_APP_DESCRIPTION

ConfigField<const char*> lacte::config::K_APP_DESCRIPTION
inlineconstexpr
Initial value:
{
"app_description", "Human-readable one-line app description (CLI --help)",
"some description"}

Definition at line 114 of file AppConfig.hpp.

◆ K_APP_DIR

ConfigField<const char*> lacte::config::K_APP_DIR
inlineconstexpr
Initial value:
{
"app_dir",
"Base directory for this app's own data (firmware-file search "
"directory, database, board cache - see this file's own doc comment) "
"- used as-is, deliberately kept at its historical value",
"/usr/local/daemon/lacte"}

Definition at line 122 of file AppConfig.hpp.

◆ K_APP_NAME

ConfigField<const char*> lacte::config::K_APP_NAME
inlineconstexpr
Initial value:
{
"app_name",
"This app's own name - its Logger label, its bus identity's name, and "
"ConsoleApp's own CLI --help header/single-instance lock file name "
"(read straight off AppContext::app_name, not a separate copy)",
"lacte_app"}

Definition at line 108 of file AppConfig.hpp.

◆ K_BOARD_ONLINE_TIMEOUT_MS

ConfigField<int64_t> lacte::config::K_BOARD_ONLINE_TIMEOUT_MS
inlineconstexpr
Initial value:
{
"board_online_timeout_ms",
"How long without an info packet before Model reports the board "
"offline",
3000}

Definition at line 290 of file AppConfig.hpp.

◆ K_BUS_MULTICAST_GROUP

ConfigField<const char*> lacte::config::K_BUS_MULTICAST_GROUP
inlineconstexpr
Initial value:
{
"bus_multicast_group", "Multicast group every bus participant joins",
"239.255.19.31"}

Definition at line 128 of file AppConfig.hpp.

◆ K_BUS_MULTICAST_PORT

ConfigField<int64_t> lacte::config::K_BUS_MULTICAST_PORT
inlineconstexpr
Initial value:
{
"bus_multicast_port", "Multicast port every bus participant joins", 47761}

Definition at line 131 of file AppConfig.hpp.

◆ K_CHECK_UPDATE_INTERVAL_MS

ConfigField<int64_t> lacte::config::K_CHECK_UPDATE_INTERVAL_MS
inlineconstexpr
Initial value:
{
"check_update_interval_ms",
"How often to poll app_dir/log_dir for a new firmware file", 30000}

Definition at line 287 of file AppConfig.hpp.

◆ K_DB_BUS_ADDRESS

ConfigField<int64_t> lacte::config::K_DB_BUS_ADDRESS
inlineconstexpr
Initial value:
{
"db_bus_address",
"Hub node address AppDb's own internal bus node uses (kDbBusAddress "
"in LacteApp.cpp)",
3}

Definition at line 270 of file AppConfig.hpp.

◆ K_DB_BUS_NODE_NAME

ConfigField<const char*> lacte::config::K_DB_BUS_NODE_NAME
inlineconstexpr
Initial value:
{
"db_bus_node_name", "Identity name for AppDb's own bus node", "lacte-db"}

Definition at line 177 of file AppConfig.hpp.

◆ K_DB_NAME

ConfigField<const char*> lacte::config::K_DB_NAME
inlineconstexpr
Initial value:
{
"db_name", "SQLite database file name (lives directly under app_dir)",
"lacte.db"}

Definition at line 244 of file AppConfig.hpp.

◆ K_DEVICE_NAME

ConfigField<const char*> lacte::config::K_DEVICE_NAME
inlineconstexpr
Initial value:
{
"device_name", "Board UART device path or VID:PID", "067b:23a3"}

Definition at line 218 of file AppConfig.hpp.

◆ K_FIRMWARE_GLOB

ConfigField<const char*> lacte::config::K_FIRMWARE_GLOB
inlineconstexpr
Initial value:
{
"firmware_glob", "Glob TryToUpdate() scans app_dir/log_dir with", "*.bin"}

Definition at line 247 of file AppConfig.hpp.

◆ K_FRAME_TIME_MS

ConfigField<int64_t> lacte::config::K_FRAME_TIME_MS
inlineconstexpr
Initial value:
{
"frame_time_ms", "Target frame time in ms the 'fb' UI's GUI loop runs at",
30}

Definition at line 299 of file AppConfig.hpp.

◆ K_FRAMEBUFFER_PATH

ConfigField<const char*> lacte::config::K_FRAMEBUFFER_PATH
inlineconstexpr
Initial value:
{
"framebuffer_path", "Framebuffer device node the 'fb' UI renders to",
"/dev/fb0"}

Definition at line 224 of file AppConfig.hpp.

◆ K_HMI_UART_BAUD_RATE

ConfigField<int64_t> lacte::config::K_HMI_UART_BAUD_RATE
inlineconstexpr
Initial value:
{
"hmi_uart_baud_rate", "Baud rate for hmi_uart_path", 115200}

Definition at line 297 of file AppConfig.hpp.

◆ K_HMI_UART_PATH

ConfigField<const char*> lacte::config::K_HMI_UART_PATH
inlineconstexpr
Initial value:
{
"hmi_uart_path",
"UART device node the 'fb' UI's HMI/back-board protocol uses",
"/dev/ptyhmi-sniff"}

Definition at line 230 of file AppConfig.hpp.

◆ K_LOG_DIR

ConfigField<const char*> lacte::config::K_LOG_DIR
inlineconstexpr
Initial value:
{
"log_dir",
"Directory the diagnostic logger's own (large) file lives under, in "
"an app_name subdirectory - also the secondary firmware-search "
"directory (used as-is) - NOT this app's own operational data "
"(database, cache), see app_dir for that",
"/mnt/nand_disk_ext/lacte/"}

Definition at line 148 of file AppConfig.hpp.

◆ K_LOG_MIN_LEVEL

ConfigField<int64_t> lacte::config::K_LOG_MIN_LEVEL
inlineconstexpr
Initial value:
{
"log_min_level",
"Minimum severity level written to the log (0=TRACE, 1=INFO, "
"2=WARNING, 3=ERROR)",
1}

Definition at line 160 of file AppConfig.hpp.

◆ K_MODEL_BUS_ADDRESS

ConfigField<int64_t> lacte::config::K_MODEL_BUS_ADDRESS
inlineconstexpr
Initial value:
{
"model_bus_address",
"This process's bus node address for the Model "
"(bus::kModelBusAddress)",
1}

Definition at line 262 of file AppConfig.hpp.

◆ K_MODEL_BUS_NODE_NAME

ConfigField<const char*> lacte::config::K_MODEL_BUS_NODE_NAME
inlineconstexpr
Initial value:
{
"model_bus_node_name", "Identity name for the Model's bus node",
"lacte-model"}

Definition at line 174 of file AppConfig.hpp.

◆ K_MODEL_UI_NOTIFIER_ADDRESS

ConfigField<int64_t> lacte::config::K_MODEL_UI_NOTIFIER_ADDRESS
inlineconstexpr
Initial value:
{
"model_ui_notifier_address",
"Hub node address the Model's second client (a UiBusClient - see "
"Model::ConnectBus()) uses purely to push UiCommand/BoardSnapshotEvent "
"to the UI - distinct from kModelBusAddress since one client can't be "
"registered at two addresses.",
4}

Definition at line 275 of file AppConfig.hpp.

◆ K_NAND_DISK_PATH

ConfigField<const char*> lacte::config::K_NAND_DISK_PATH
inlineconstexpr
Initial value:
{
"nand_disk_path",
"Mount point checked before using the NAND firmware directory "
"(log_dir) - the bare mount root, one level up from log_dir itself",
"/mnt/nand_disk_ext"}

Definition at line 201 of file AppConfig.hpp.

◆ K_PL2303_SYSFS_PATH

ConfigField<const char*> lacte::config::K_PL2303_SYSFS_PATH
inlineconstexpr
Initial value:
{
"pl2303_sysfs_path",
"sysfs new_id file used to bind the pl2303 UART driver to the board's "
"VID:PID",
"/sys/bus/usb-serial/drivers/pl2303/new_id"}

Definition at line 206 of file AppConfig.hpp.

◆ K_SHARED_BUS_ADDRESS

ConfigField<int64_t> lacte::config::K_SHARED_BUS_ADDRESS
inlineconstexpr
Initial value:
{
"shared_bus_address",
"This process's ONE shared insitech::bus::Hub<RX,TX> node's own "
"address (see AppContext::bus) - distinct from every "
"participant's own client address below (kModelBusAddress/kUiBusAddress/"
"kDbBusAddress), which each builds its own client onto this same node.",
100}

Definition at line 133 of file AppConfig.hpp.

◆ K_TOUCH_PATH

ConfigField<const char*> lacte::config::K_TOUCH_PATH
inlineconstexpr
Initial value:
{
"touch_path", "Touchscreen input device node the 'fb' UI reads",
"/dev/input/event1"}

Definition at line 227 of file AppConfig.hpp.

◆ K_UART_BAUD_RATE

ConfigField<int64_t> lacte::config::K_UART_BAUD_RATE
inlineconstexpr
Initial value:
{
"uart_baud_rate", "Board UART baud rate", 115200}

Definition at line 283 of file AppConfig.hpp.

◆ K_UI_BUS_ADDRESS

ConfigField<int64_t> lacte::config::K_UI_BUS_ADDRESS
inlineconstexpr
Initial value:
{
"ui_bus_address",
"Hub node address a UI process/thread uses (bus::kUiBusAddress)", 2}

Definition at line 267 of file AppConfig.hpp.

◆ K_UI_MODE

ConfigField<const char*> lacte::config::K_UI_MODE
inlineconstexpr
Initial value:
{
"ui_mode", "'fb' (framebuffer), 'console', or 'no' (headless)", "fb"}

Definition at line 285 of file AppConfig.hpp.

◆ K_USB_VID_PID

ConfigField<const char*> lacte::config::K_USB_VID_PID
inlineconstexpr
Initial value:
{
"usb_vid_pid",
"Board's USB VID:PID, space-separated (sysfs new_id's own format) — "
"written to pl2303_sysfs_path so the board's UART shows up as a device "
"node at all. Distinct from device_name: that one names how to *open* "
"the device (a path, or the same VID:PID colon-separated), this one is "
"only ever used to register it with the kernel driver",
"067b 23a3"}

Definition at line 249 of file AppConfig.hpp.

◆ K_VNC_PASSWORD

ConfigField<const char*> lacte::config::K_VNC_PASSWORD
inlineconstexpr
Initial value:
{
"vnc_password",
"Classic VNC (RFB DES challenge-response) password, up to 8 characters "
"(a real protocol limit, not a bug) - typed manually into the VNC "
"viewer at connect time, same as any other VNC server. Empty "
"(default) disables the VNC server entirely - there is no "
"unauthenticated fallback.",
""}

Definition at line 307 of file AppConfig.hpp.

◆ K_VNC_PORT

ConfigField<int64_t> lacte::config::K_VNC_PORT
inlineconstexpr
Initial value:
{
"vnc_port", "TCP port the 'fb' UI's VNC (RFB) mirror server listens on",
5900}

Definition at line 304 of file AppConfig.hpp.