Soluzione software Primary Flight Display
La schermata è stata acquisita dal progetto realizzato.
Le schermata sono state acquisite dal progetto realizzato.
1 | 2 | 3 | 4 |
- Mirino
Viewfinder.py
(link) - Orizzonte
Horizon.py
(link) - Scala del Pitch
PitchLadder.py
(link) - PFD Display Aereo
display.py
(link)
Tip
Il software è open-source
Ricezione con una frequenza di 100 ms i dati in formato json dal server python.
Elaborazione dei dati di pitch e roll per la visualizzazione dei componenti grafici.
1 | 2 | 3 | 4 |
Dati due punti qualsiasi agli estremi della larghezza del display crea l'orizzonte come:
- Display di dimensione variabile
- Orizzonte come segmento tra i punti degli estremi del display
- Terra come quadrilatero compreso tra la base e l'orizzonte del display
- Componente Realizzato
1 | 2 | 3 | 4 |
- Data la retta dell'orizzonte ed il centro del display si calcola la retta passante per il centro e perpendicolare all'orizzonte
- Data la retta dell'orizzonte e la retta ad esso perpendicolare si determina il punto di intersezione tra le parallele dell'orizzonte e la perpendicolare all'orizzonte
- Date le rette parallele ed i punti di intersezione con la perpendicolare si calcolano per ciascuno 2 punti equidistanti dal punto di intersezione
- Componente Realizzato
Librerie, linguaggi e codice
- Python 3.12 (link)
- TKinter 8.6 (link)
- Separazione dei compiti per i componenti grafici in classi autonome garendo la scalabilità e la manutentibilità del codice.
Comunicazione con server Python:
- Connessione alla porta dell'ip del server
- Comunicazione tramite socket
- Architettura Client-Server
- Il codice è stato sviluppato in modo compartimentato e modulare.
- È stata garantita una corretta separazione dei compiti
- Sono stati sviluppati i componenti grafici in classi autonome
- Il codice ha quindi la qualità di essere scalabile e manutentibile
Note
È stato creato uno script di test per ogni componente grafico o di logica da testare garantendo la scalabilità e la manutentibilità del codice.
1 | 2 | 3 | 4 |
Warning
MacOS (video) Tutti i test hanno dato esito positivo garantendo la stabiità del software solo se il coefficiente angolare valido
Warning
Rivedere ed ottimizzare la logica dei componenti grafici per visualizzare il PitchLadder.py
Caution
Fatal Error
se il valore del coefficiente angolare non valido in quanto non è stato implementato nessun controllo per gestire questo caso
-
Configura
Python v.3.12
(link) -
Configura ambiente virtuale:
2.1. Crea ambiente virtuale
-m venv myenv
2.2. attiva ambiente virtuale Max:
source myenv/bin/activate
2.3. attiva ambiente virtuale Windows:
.\myenv\Scripts\Activate
-
scarica
tkinter v.8.6
(link) in ambiente virtuale:pip install tk
-
Caricare i file sorgenti eventualmente sostituendo quelli già presenti
$ tree
.
├── src
│ ├── Calc.py
│ ├── Horizon.py
│ ├── PitchLadder.py
│ └── Viewfinder.py
├── test
│ ├── Test_Calc.py
│ ├── Test_Horizon.py
│ ├── Test_PitchLadder.py
│ └── Test_Viewfinder.py
├── client.py
├── server.py
└── display.py