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>
This commit is contained in:
73
plugin/config/configManager.js
Normal file
73
plugin/config/configManager.js
Normal file
@@ -0,0 +1,73 @@
|
||||
/**
|
||||
* 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
|
||||
};
|
||||
Reference in New Issue
Block a user