Files
signalk-plugin/plugin/config/configManager.js
Giuseppe Raffa bb8d267cd4 Aggiunta stili CSS per Kiosk, struttura HTML per la Mappa e Riferimenti ai Sensori
• Creato un nuovo file CSS per gli stili del chiosco (kiosk) con variabili, stili per le schede (card) e animazioni.
• Aggiunto un file HTML per l'interfaccia della mappa utilizzando Mapbox, inclusi gli stili e il JavaScript per le funzionalità della mappa.
• Introdotto un file JSON per i riferimenti ai sensori, definendo percorsi ed elementi per i dati di temperatura, vento, onde, posizione, batteria, motore e sistema.

Co-authored-by: Copilot <copilot@github.com>
2026-04-23 16:19:11 +02:00

74 lines
1.9 KiB
JavaScript

/**
* Gestore centralizzato della configurazione del plugin.
* Questa soluzione permette di leggere i valori di configurazione dinamicamente,
* quindi cambiano in tempo reale quando l'utente li modifica dalle impostazioni del plugin.
*/
let pluginOptions = {};
/**
* Inizializza il ConfigManager con le opzioni del plugin.
* Deve essere chiamato all'avvio del plugin.
* @param {Object} options - Le opzioni passate da Signal K al plugin
*/
function init(options) {
pluginOptions = options || {};
console.log('[CONFIG] ConfigManager inizializzato');
}
/**
* Ottiene il Telegram Bot Token
*/
function getTelegramToken() {
return process.env.TELEGRAM_BOT_TOKEN || '';
}
/**
* Ottiene il codice sensore
*/
function getSensorCode() {
return pluginOptions.sensor_code || '';
}
/**
* Ottiene il nome sensore
*/
function getSensorName() {
return pluginOptions.sensor_name || '';
}
/**
* Ottiene l'intervallo di invio dati (in millisecondi, converte da secondi)
*/
function getSendInterval() {
const seconds = pluginOptions.sensor_interval || process.env.SEND_INTERVAL;
return (typeof seconds === 'number' ? seconds : parseInt(seconds)) * 1000 || 60000;
}
/**
* Ottiene il ritardo di riconnessione (in millisecondi, converte da secondi)
*/
function getReconnectDelay() {
const seconds = pluginOptions.reconnect_delay || process.env.RECONNECT_DELAY;
return (typeof seconds === 'number' ? seconds : parseInt(seconds)) * 1000 || 5000;
}
/**
* Ottiene un valore di configurazione generico
* @param {string} key - La chiave della configurazione
* @param {*} defaultValue - Il valore di default
*/
function get(key, defaultValue = null) {
return pluginOptions[key] !== undefined ? pluginOptions[key] : defaultValue;
}
module.exports = {
init,
getTelegramToken,
getSensorCode,
getSensorName,
getSendInterval,
getReconnectDelay,
get
};