// Настройки поля (properties, правка — Garmin Connect Mobile/Express): // restSec 30–600 (умолчание 120 = Rest.DefaultSec телефона), // hrMaxBpm 0–250 (0 = формула Танаки от age), age 14–100 (45). // Клампы защищают от значений вне диапазона (правка без редактора). // getApp() может быть null вне контекста приложения (тесты) — 🛡 дефолты. import Toybox.Application; import Toybox.Lang; class FieldSettings { var restSec; var hrMaxBpm; var age; function initialize() { restSec = clamp(readProp("restSec"), 30, 600, 120); hrMaxBpm = clamp(readProp("hrMaxBpm"), 0, 250, 0); age = clamp(readProp("age"), 14, 100, 45); } // Значение properties или null (нет приложения/свойства/ошибка) function readProp(name) { try { var app = Application.getApp(); if (app != null) { return app.getProperty(name); } } catch (e) { } return null; } // null / не число / вне диапазона → умолчание function clamp(v, lo, hi, def) { if (v instanceof Lang.Number && v >= lo && v <= hi) { return v; } return def; } }