• 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>
74 lines
1.9 KiB
JavaScript
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
|
|
};
|