diff --git a/README.md b/README.md index 27afaed..eefd182 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,148 @@ -# FlightMonitor +Certamente! Ho preparato due versioni della presentazione, una in italiano e una in inglese. Entrambe evidenziano non solo le funzionalità visibili all'utente, ma anche i punti di forza dell'architettura software, che sono molto importanti per un progetto di questo livello. -A brief description of FlightMonitor. +--- -## Features -- Feature 1 -- Feature 2 +### Presentazione (Italiano) -## Getting Started -... +## FlightMonitor: Applicazione Avanzata per il Monitoraggio del Traffico Aereo -## Contributing -... +**FlightMonitor** è un'applicazione desktop sviluppata in Python, progettata per offrire una suite completa di strumenti per il monitoraggio, la registrazione e l'analisi del traffico aereo. Nata come strumento per sviluppatori e appassionati di aviazione, l'applicazione combina un'interfaccia utente reattiva con un backend robusto e multi-threaded per la gestione dei dati in tempo reale e storici. -## License -... +--- + +### Caratteristiche Principali + +* **Monitoraggio Live:** Visualizza in tempo reale il traffico aereo in una specifica area geografica (Bounding Box). I dati vengono aggiornati a intervalli configurabili, ottimizzati in base allo stato di autenticazione dell'utente (utente registrato vs. anonimo). + +* **Analisi Dati Storici:** Permette di scaricare e visualizzare i dati di volo per un intervallo di tempo passato, definendo l'area di interesse e l'intervallo di campionamento. + +* **Mappa Interattiva e Intelligente:** + * Una mappa completamente interattiva basata su tile, con caching su disco per performance ottimali e uso offline. + * Funzionalità di pan, zoom e recenter. + * Visualizzazione delle tracce dei velivoli con colori unici per ogni aereo. + * Una griglia geografica (reticolo) dinamica con meridiani e paralleli, che si adatta intelligentemente al livello di zoom per una leggibilità ottimale. + +* **Viste Dettagliate dei Dati:** + * Un pannello di dettaglio rapido che mostra le informazioni principali del velivolo selezionato. + * Una finestra di dettaglio completa con tutte le informazioni statiche (dal database) e dinamiche (dati di volo correnti), inclusa una mappa dedicata alla traccia completa del volo. + +* **Logging Dati Avanzato:** + * Possibilità di registrare l'intera sessione di monitoraggio. + * Salvataggio dei **dati JSON grezzi** ricevuti dal provider, per analisi offline e debug. + * Creazione automatica di un **file di report** riassuntivo con i dati della sessione e il conteggio degli aerei per ogni interrogazione. + +* **Gestione Database:** + * Importazione di database di aeromobili da file CSV con una dialog di progresso dedicata. + * Archiviazione dei dati di volo in un database SQLite giornaliero per una gestione efficiente. + +* **Personalizzazione:** + * Salvataggio e caricamento di **profili di aree geografiche** per un accesso rapido alle zone di interesse comune. + * Configurazione centralizzata per un facile tuning di parametri API, polling rate e stile della UI. + +--- + +### Architettura Tecnica + +Il progetto è costruito su un'architettura **MVC-like (Model-View-Controller)** pulita, con una forte enfasi sulla **separazione delle responsabilità (SoC)**. + +* **Model:** Lo strato dati astrae completamente la fonte (OpenSky, ecc.) attraverso un **modello dati canonico** (`CanonicalFlightState`). Gli `Adapter` dedicati gestiscono la comunicazione con le API esterne. Lo storage è affidato a SQLite con una gestione separata per dati dinamici e statici. + +* **View:** L'interfaccia, basata su **Tkinter (ttk)**, è composta da pannelli modulari e riutilizzabili. È un componente "passivo" che riceve dati dal Controller e notifica le interazioni dell'utente. + +* **Controller:** Il `AppController` orchestra il flusso di lavoro. Non contiene la logica di business, ma delega a componenti specializzati come i `DataProcessor`, `MapCommandHandler`, `RawDataLogger` e `CleanupManager`. + +* **Flusso Dati Asincrono:** Le operazioni di rete (chiamate API) e di rendering della mappa vengono eseguite in **thread separati** per garantire che l'interfaccia utente rimanga sempre fluida e reattiva. La comunicazione tra i thread e il thread principale della GUI avviene in modo sicuro tramite **code (`queue.Queue`)**, seguendo le best practice per le applicazioni concorrenti. + +--- + +### Stack Tecnologico + +* **Linguaggi:** Python (con hint di tipo per robustezza) +* **GUI:** Tkinter (con widget moderni `ttk`) +* **Networking:** `requests` +* **Elaborazione Immagini:** `Pillow (PIL)` +* **Dati Geospaziali:** `mercantile`, `pyproj` +* **Database:** `sqlite3` + +--- + +### Sviluppi Futuri + +L'architettura modulare è predisposta per future espansioni, tra cui: +* Integrazione di nuove fonti dati (es. FlightAware, ADSB-Hub). +* Implementazione della modalità **Playback** per rivedere le sessioni registrate. +* Creazione di dashboard con grafici e statistiche avanzate. + +--- +--- + +### Presentation (English) + +## FlightMonitor: An Advanced Aircraft Tracking Application + +**FlightMonitor** is a desktop application developed in Python, designed to offer a comprehensive suite of tools for monitoring, recording, and analyzing air traffic. Conceived as a tool for developers and aviation enthusiasts, the application combines a responsive user interface with a robust, multi-threaded backend for managing real-time and historical data. + +--- + +### Key Features + +* **Live Monitoring:** Displays real-time air traffic within a user-defined geographical area (Bounding Box). Data is updated at configurable intervals, optimized based on the user's authentication status (registered vs. anonymous user). + +* **Historical Data Analysis:** Allows for the download and visualization of flight data for a past time range, enabling users to define the area of interest and the sampling interval. + +* **Interactive and Intelligent Map:** + * A fully interactive, tile-based map with on-disk caching for optimal performance and offline use. + * Features pan, zoom, and recenter functionalities. + * Displays aircraft tracks with unique colors for each plane. + * A dynamic geographical grid (graticule) with meridians and parallels that intelligently adapts to the current zoom level for optimal readability. + +* **Detailed Data Views:** + * A quick-look details panel showing essential information for the currently selected aircraft. + * A full-details window with all static information (from the database) and dynamic data (current flight status), including a dedicated map for the aircraft's complete flight track. + +* **Advanced Data Logging:** + * The ability to record an entire monitoring session. + * Saves the **raw JSON data** received from the provider, ideal for offline analysis and debugging. + * Automatically generates a summary **report file** containing session metadata and the aircraft count for each query. + +* **Database Management:** + * Imports aircraft databases from CSV files through a dedicated progress dialog. + * Archives flight data into a daily SQLite database for efficient management. + +* **Customization:** + * Saves and loads **geographical area profiles** for quick access to common zones of interest. + * Centralized configuration for easy tuning of API parameters, polling rates, and UI styling. + +--- + +### Technical Architecture + +The project is built on a clean, **MVC-like (Model-View-Controller)** architecture with a strong emphasis on the **Separation of Concerns (SoC)**. + +* **Model:** The data layer completely abstracts the source (e.g., OpenSky) through a **canonical data model** (`CanonicalFlightState`). Dedicated `Adapters` handle communication with external APIs. Storage is managed by SQLite, with separate handling for dynamic and static data. + +* **View:** The interface, based on **Tkinter (ttk)**, is composed of modular and reusable panels. It acts as a "passive" component, receiving data from the Controller and notifying it of user interactions. + +* **Controller:** The `AppController` orchestrates the application's workflow. It does not contain business logic itself but delegates to specialized components like `DataProcessors`, `MapCommandHandler`, `RawDataLogger`, and `CleanupManager`. + +* **Asynchronous Data Flow:** Network operations (API calls) and map rendering are executed in **separate worker threads** to ensure the user interface remains always fluid and responsive. Communication between worker threads and the main GUI thread is handled safely via **queues (`queue.Queue`)**, following best practices for concurrent applications. + +--- + +### Technology Stack + +* **Languages:** Python (with type hints for robustness) +* **GUI:** Tkinter (with modern `ttk` widgets) +* **Networking:** `requests` +* **Image Processing:** `Pillow (PIL)` +* **Geospatial Data:** `mercantile`, `pyproj` +* **Database:** `sqlite3` + +--- + +### Future Developments + +The modular architecture is designed for future expansions, including: +* Integration of new data sources (e.g., FlightAware, ADSB-Hub). +* Implementation of a **Playback mode** to review recorded sessions. +* Creation of dashboards with advanced charts and statistics. \ No newline at end of file diff --git a/doc/English-manual.md b/doc/English-manual.md index 1ea3e00..4f40270 100644 --- a/doc/English-manual.md +++ b/doc/English-manual.md @@ -1,24 +1,132 @@ -# FlightMonitor - English Manual -## Introduction -Welcome to FlightMonitor. This document provides an overview of how to install, use, and understand the project. -## Installation -Describe the installation steps here. For example: -1. Clone the repository: `git clone ` -2. Navigate to the project directory: `cd FlightMonitor` -3. Install dependencies: `pip install -r requirements.txt` (if applicable) +## User Manual - FlightMonitor -## Usage -Explain how to run and use the application. -- To run the application: `python -m flightmonitor` -- Command-line arguments (if any). -- GUI interaction (if any). +**Version 1.0** -## Development -Information for developers contributing to the project. -- Code structure. -- How to run tests. +### Table of Contents +1. Introduction +2. Installation and Requirements +3. User Interface Overview +4. Core Features + * 4.1. Live Monitoring + * 4.2. Historical Data Download + * 4.3. Area Profile Management + * 4.4. Session Data Logging +5. Map Interaction +6. Practical Use Cases +7. Frequently Asked Questions (FAQ) +8. Troubleshooting -## Troubleshooting -Common issues and their solutions. +--- + +### 1. Introduction + +Welcome to **FlightMonitor**, an advanced desktop application for air traffic monitoring and analysis. FlightMonitor is designed for aviation enthusiasts, hobbyists, and developers who need a powerful and flexible tool to visualize and record flight data from sources like the OpenSky Network. + +This manual will guide you through all the application's features, from initial setup to using its most advanced capabilities. + +### 2. Installation and Requirements + +FlightMonitor is a Python-based application. To run it, ensure you have the following requirements installed in your environment: +* Python 3.8 or higher +* The Python libraries specified in the `requirements.txt` file, including: `requests`, `Pillow`, `mercantile`, `pyproj`. + +For an optimal experience, it is recommended to use OpenSky Network API credentials to increase the query rate limits. Credentials can be entered in the `data/config.py` file. + +### 3. User Interface Overview + +The FlightMonitor interface is divided into two main, resizable columns: + +* **Left Column (Control Panel):** + * **Area Profiles & BBox:** Allows you to define the geographical area of interest (Bounding Box) and to save/load area configurations as "Profiles". + * **Data Logging Session:** Contains controls to enable and configure the saving of raw and summary data for the monitoring session. + * **Function Notebook:** A tabbed panel to select the operating mode (Live Monitor, Historical Download, Playback). + * **Log & Status Area:** Displays detailed application logs and a summary status via a colored semaphore. + +* **Right Column (Display Area):** + * **Views Notebook:** A tabbed panel containing the **Map View** and other future views (e.g., Table View). + * **Map Tools & Info Panels:** Provides tools to interact with the map (zoom, pan) and displays detailed information about the map itself (coordinates, scale) and the selected aircraft. + +### 4. Core Features + +#### 4.1. Live Monitoring + +This is the primary mode for viewing real-time air traffic. + +**How to use:** +1. Select the **"Live Monitor"** tab in the left column. +2. Define an area of interest in the "Area Profiles & BBox" panel by entering the minimum and maximum latitude and longitude coordinates, or by selecting a saved profile. +3. (Optional) Enable data logging in the "Data Logging Session" section. +4. Press the **"Start Live"** button. + +The map will populate with aircraft within the specified area. Their positions will be updated with each query cycle. To end monitoring, press **"Stop Live"**. + +#### 4.2. Historical Data Download + +This mode allows you to download flight data for a past period. **Note:** this requires valid OpenSky credentials. + +**How to use:** +1. Select the **"Historical Download"** tab. +2. Define the area of interest in the "Area Profiles & BBox" panel. +3. In the "Download Parameters" panel, enter the start and end dates and times (in UTC). +4. Set the **API Scan Rate** (how often to query the API, in seconds) and the **Sampling Interval** (the time gap between the data points to be downloaded). +5. Press **"Start Download"**. + +The application will begin downloading the data slice by slice, showing progress on the map and the virtual clock. + +#### 4.3. Area Profile Management + +To avoid manually entering coordinates every time, you can save areas as profiles. + +* **Save a Profile:** Enter the desired coordinates and press **"Save"**. You will be prompted to enter a name for the profile. +* **Load a Profile:** Select a profile from the dropdown menu. The coordinates will be loaded automatically. +* **Delete a Profile:** Select a profile and press **"Delete"**. The "Default Zone" profile cannot be deleted. + +#### 4.4. Session Data Logging + +This powerful feature allows you to save the data from a monitoring session for future analysis. + +**How to use:** +1. Before starting a session (Live or Historical), check the **"Enable Raw Data Logging"** box. +2. The "Save to" field will be populated with a default directory (`Atc_download`). You can change this by pressing **"Browse..."**. +3. Start the monitoring. Two files will be created in the specified folder: + * `atc-.txt`: Contains the raw JSON data received from the provider, one line per query. + * `atc-_report.txt`: Contains a session summary, including the BBox and a table with the aircraft count for each fetch. +4. The table in the UI will populate in real-time with the summary data. +5. The **"Open Folder"** button directly opens the save location in your system's file explorer. + +### 5. Map Interaction + +* **Pan:** Click and drag the mouse on the map. Alternatively, use the pan buttons in the "Map Tools" panel. +* **Zoom:** Use the mouse wheel. Alternatively, use the `+` and `-` buttons in the "Map Tools" panel. +* **Select Aircraft:** Left-click on an aircraft icon. Its details will appear in the "Selected Flight Details" panel. +* **Context Menu:** Right-click on the map to open a menu that allows you to: + * Recenter the map at that point. + * Define a new Bounding Box around that point. + +### 6. Practical Use Cases + +* **Monitor traffic over your city:** Enter the coordinates of a 100x100 km BBox around your city, save it as a "Home" profile, and start live monitoring. +* **Record a specific event:** If you know an interesting aircraft will pass through a certain area at a specific time, you can start live monitoring with raw data logging enabled to capture all the details of its trajectory. +* **Analyze a past anomaly:** Use the "Historical Download" mode to download data for an area and time period where an anomaly occurred (e.g., a go-around) to analyze its dynamics. + +### 7. Frequently Asked Questions (FAQ) + +* **Q: Why don't I see any aircraft on the map in Live mode?** + * **A:** Check that your Bounding Box is correct and not too small. Verify that your internet connection is active. If you are using anonymous mode, you may have to wait 10-15 seconds for the first update. Check the status panel for any error messages from the API. + +* **Q: Historical download isn't working. Why?** + * **A:** Historical mode requires valid OpenSky Network API credentials to be correctly entered in the `data/config.py` file. Anonymous access does not allow downloading historical data. + +* **Q: Can I change the map's appearance?** + * **A:** Currently, the application uses OpenStreetMap as the tile provider. Future versions may allow selecting other map styles. + +* **Q: Where are the log files saved?** + * **A:** By default, in the `Atc_download` subfolder within the application's main directory. You can change this path using the "Browse..." button. + +### 8. Troubleshooting + +* **The application won't start:** Ensure that all requirements listed in Section 2 are installed correctly. Run the application from a terminal to see any startup error messages. +* **The map only shows gray squares:** This indicates that the map tiles cannot be loaded. Check your internet connection. If the problem persists, the tile cache may be corrupt. Try deleting the `flightmonitor_tile_cache` folder. +* **I see errors in the Log panel:** Error messages like "RATE_LIMITED" or "API_ERROR" indicate temporary issues with the API service. The application will attempt to reconnect automatically. If the error is "PERMANENT_FAILURE", check your API credentials. \ No newline at end of file diff --git a/doc/Italian-manual.md b/doc/Italian-manual.md index d8c2949..ac2c20d 100644 --- a/doc/Italian-manual.md +++ b/doc/Italian-manual.md @@ -1,24 +1,131 @@ -# FlightMonitor - Manuale Italiano +## Manuale Utente - FlightMonitor -## Introduzione -Benvenuto in FlightMonitor. Questo documento fornisce una panoramica su come installare, utilizzare e comprendere il progetto. +**Versione 1.0** -## Installazione -Descrivi i passaggi di installazione qui. Ad esempio: -1. Clona il repository: `git clone ` -2. Naviga nella directory del progetto: `cd FlightMonitor` -3. Installa le dipendenze: `pip install -r requirements.txt` (se applicabile) +### Indice +1. Introduzione +2. Installazione e Requisiti +3. Panoramica dell'Interfaccia Utente +4. Funzionalità Principali + * 4.1. Monitoraggio Live + * 4.2. Download Dati Storici + * 4.3. Gestione dei Profili di Area + * 4.4. Logging dei Dati di Sessione +5. Interazione con la Mappa +6. Casi d'Uso Pratici +7. Domande Frequenti (FAQ) +8. Risoluzione dei Problemi -## Utilizzo -Spiega come eseguire e utilizzare l'applicazione. -- Per eseguire l'applicazione: `python -m flightmonitor` -- Argomenti da riga di comando (se presenti). -- Interazione con la GUI (se presente). +--- -## Sviluppo -Informazioni per gli sviluppatori che contribuiscono al progetto. -- Struttura del codice. -- Come eseguire i test. +### 1. Introduzione + +Benvenuti a **FlightMonitor**, un'applicazione desktop avanzata per il monitoraggio e l'analisi del traffico aereo. FlightMonitor è stato progettato per appassionati di aviazione, hobbisti e sviluppatori che necessitano di uno strumento potente e flessibile per visualizzare e registrare dati di volo da fonti come OpenSky Network. + +Questo manuale vi guiderà attraverso tutte le funzionalità dell'applicazione, dalla configurazione iniziale all'uso delle sue capacità più avanzate. + +### 2. Installazione e Requisiti + +FlightMonitor è un'applicazione basata su Python. Per eseguirla, assicuratevi di avere i seguenti requisiti installati nel vostro ambiente: +* Python 3.8 o superiore +* Le librerie Python specificate nel file `requirements.txt`, tra cui: `requests`, `Pillow`, `mercantile`, `pyproj`. + +Per un'esperienza ottimale, si raccomanda di utilizzare le credenziali API di OpenSky Network per aumentare i limiti di interrogazione. Le credenziali possono essere inserite nel file `data/config.py`. + +### 3. Panoramica dell'Interfaccia Utente + +L'interfaccia di FlightMonitor è suddivisa in due colonne principali, ridimensionabili a piacere: + +* **Colonna Sinistra (Pannello di Controllo):** + * **Area Profiles & BBox:** Permette di definire l'area geografica di interesse (Bounding Box) e di salvare/caricare configurazioni di aree come "Profili". + * **Data Logging Session:** Contiene i controlli per abilitare e configurare il salvataggio dei dati grezzi e di riepilogo della sessione di monitoraggio. + * **Function Notebook:** Un pannello a schede per selezionare la modalità operativa (Live Monitor, Historical Download, Playback). + * **Log & Status Area:** Mostra i log dettagliati dell'applicazione e uno stato sintetico tramite un semaforo colorato. + +* **Colonna Destra (Area di Visualizzazione):** + * **Views Notebook:** Un pannello a schede che contiene la **Map View** e altre viste future (es. Table View). + * **Map Tools & Info Panels:** Fornisce strumenti per interagire con la mappa (zoom, pan) e visualizza informazioni dettagliate sulla mappa stessa (coordinate, scala) e sul velivolo selezionato. + +### 4. Funzionalità Principali + +#### 4.1. Monitoraggio Live + +Questa è la modalità principale per visualizzare il traffico aereo in tempo reale. + +**Come si usa:** +1. Selezionare la tab **"Live Monitor"** nella colonna di sinistra. +2. Definire un'area di interesse nel pannello "Area Profiles & BBox" inserendo le coordinate di latitudine e longitudine minime e massime, oppure selezionando un profilo salvato. +3. (Opzionale) Abilitare il logging dei dati nella sezione "Data Logging Session". +4. Premere il pulsante **"Start Live"**. + +La mappa si popolerà con gli aerei presenti nell'area specificata. Le loro posizioni verranno aggiornate a ogni ciclo di interrogazione. Per terminare il monitoraggio, premere **"Stop Live"**. + +#### 4.2. Download Dati Storici + +Questa modalità permette di scaricare dati di volo per un periodo passato. **Nota:** richiede credenziali OpenSky valide. + +**Come si usa:** +1. Selezionare la tab **"Historical Download"**. +2. Definire l'area di interesse nel pannello "Area Profiles & BBox". +3. Nel pannello "Download Parameters", inserire le date e gli orari di inizio e fine (in UTC). +4. Impostare l'**API Scan Rate** (quanto spesso interrogare l'API, in secondi) e il **Sampling Interval** (l'intervallo tra i punti dati da scaricare). +5. Premere **"Start Download"**. + +L'applicazione inizierà a scaricare i dati "fetta per fetta", mostrando l'avanzamento sulla mappa e sull'orologio virtuale. + +#### 4.3. Gestione dei Profili di Area + +Per evitare di inserire manualmente le coordinate ogni volta, è possibile salvare le aree come profili. + +* **Salvare un Profilo:** Inserire le coordinate desiderate e premere **"Save"**. Verrà chiesto di inserire un nome per il profilo. +* **Caricare un Profilo:** Selezionare un profilo dal menu a tendina. Le coordinate verranno caricate automaticamente. +* **Cancellare un Profilo:** Selezionare un profilo e premere **"Delete"**. Non è possibile cancellare il profilo "Default Zone". + +#### 4.4. Logging dei Dati di Sessione + +Questa potente funzionalità permette di salvare i dati di una sessione di monitoraggio per analisi future. + +**Come si usa:** +1. Prima di avviare una sessione (Live o Storica), spuntare la casella **"Enable Raw Data Logging"**. +2. Il campo "Save to" si popolerà con una directory di default (`Atc_download`). È possibile cambiarla premendo **"Browse..."**. +3. Avviare il monitoraggio. Verranno creati due file nella cartella specificata: + * `atc-.txt`: Contiene i dati JSON grezzi ricevuti dal provider, una riga per ogni interrogazione. + * `atc-_report.txt`: Contiene un riepilogo della sessione, inclusi BBox e una tabella con il conteggio degli aerei per ogni fetch. +4. La tabella nella UI si popolerà in tempo reale con i dati di riepilogo. +5. Il pulsante **"Open Folder"** apre direttamente la cartella di salvataggio nel file explorer del sistema. + +### 5. Interazione con la Mappa + +* **Pan (Spostamento):** Cliccare e trascinare il mouse sulla mappa. In alternativa, usare i pulsanti di pan nel pannello "Map Tools". +* **Zoom:** Usare la rotellina del mouse. In alternativa, usare i pulsanti `+` e `-` nel pannello "Map Tools". +* **Selezione Aereo:** Cliccare con il tasto sinistro su un'icona di un aereo. I suoi dettagli appariranno nel pannello "Selected Flight Details". +* **Menu Contestuale:** Cliccare con il tasto destro sulla mappa per aprire un menu che permette di: + * Ricentrare la mappa in quel punto. + * Definire una nuova Bounding Box attorno a quel punto. + +### 6. Casi d'Uso Pratici + +* **Monitorare il traffico sopra casa:** Inserire le coordinate di una BBox di circa 100x100 km attorno alla propria città, salvarla come profilo "Casa" e avviare il monitoraggio live. +* **Registrare un evento specifico:** Se si sa che un aereo interessante passerà in una certa area a un certo orario, si può avviare il monitoraggio live con il logging dei dati grezzi abilitato per catturare tutti i dettagli della sua traiettoria. +* **Analizzare un'anomalia passata:** Usare la modalità "Historical Download" per scaricare i dati di un'area e di un periodo in cui si è verificato un evento anomalo (es. un go-around) per analizzarne la dinamica. + +### 7. Domande Frequenti (FAQ) + +* **D: Perché non vedo aerei sulla mappa in modalità Live?** + * **R:** Controlla che la tua Bounding Box sia corretta e non troppo piccola. Verifica che la tua connessione internet sia attiva. Se stai usando la modalità anonima, potresti dover attendere 10-15 secondi per il primo aggiornamento. Controlla il pannello di stato per eventuali messaggi di errore dall'API. + +* **D: Il download storico non funziona. Perché?** + * **R:** La modalità storica richiede credenziali API di OpenSky Network valide e correttamente inserite nel file `data/config.py`. L'accesso anonimo non permette di scaricare dati storici. + +* **D: Posso cambiare l'aspetto della mappa?** + * **R:** Attualmente, l'applicazione usa OpenStreetMap come fornitore di tile. Future versioni potrebbero permettere di selezionare altri stili di mappa. + +* **D: Dove vengono salvati i file di log?** + * **R:** Per default, nella sottocartella `Atc_download` all'interno della cartella principale dell'applicazione. È possibile cambiare questo percorso tramite il pulsante "Browse...". + +### 8. Risoluzione dei Problemi + +* **L'applicazione non si avvia:** Assicurati che tutti i requisiti elencati nella Sezione 2 siano installati correttamente. Esegui l'applicazione da un terminale per visualizzare eventuali messaggi di errore all'avvio. +* **La mappa mostra solo quadrati grigi:** Questo indica che i "tile" della mappa non possono essere caricati. Controlla la tua connessione internet. Se il problema persiste, la cache dei tile potrebbe essere corrotta. Prova a cancellare la cartella `flightmonitor_tile_cache`. +* **Vedo errori nel pannello di Log:** Messaggi di errore come "RATE_LIMITED" o "API_ERROR" indicano problemi temporanei con il servizio API. L'applicazione tenterà di riconnettersi automaticamente. Se l'errore è "PERMANENT_FAILURE", controlla le tue credenziali API. -## Risoluzione dei problemi -Problemi comuni e relative soluzioni.