sabbio93 / QRobotEvitaMuri

Risoluzione del problema: https://137.204.107.21/syskb/it.unibo.iss2015intro/docs/Material/TemaFinaleLMBO2017.html
MIT License
2 stars 0 forks source link

Contesti non parametrizzati #53

Open quellobiondo opened 7 years ago

quellobiondo commented 7 years ago

Per utilizzare il sistema in diversi ambienti è necessario che le configurazioni siano cambiabili facilmente. Vorremmo avere la possibilità di descrivere l'organizzazione dei contesti nell'ambiente di sviluppo, test e produzione, e di settare i contesti con il minimo effort, definendo l'organizzazione una sola volta.

Le configurazioni del sistema i QA li caricano dai file prolog presenti in srcMore. In particolare la posizione dei contesti si trova nel file m1.pl etc... in questo formato

context(ctxrover, "192.168.137.2",  "TCP", "8070" ).         
context(ctxsonararrivo, "localhost",  "TCP", "8035" ).  

Anzichè modificare la software factory ho usato la forchetta e usato uno script python per modificare i file. Le configurazioni vengono caricate da un file yaml simile al seguente.

ethernet:
   ctxController:
     host: 192.168.137.1
     port: 8040
   ctxRover:
     host: 192.168.137.2
     port: 8070
   ctxSonarArrivoMock:
     host: 192.168.137.1
     port: 8037
wifiziro:
   ctxController:
     host: 192.168.1.2
     port: 8040

Unico, presente all'interno di Utils. Lo script python vuole il nome della configurazione es. ethernet.

Per automatizzare il procedimento di build si modificano i file build script gradle per attivare questo script python prima della compilazione e la creazione degli artefatti per il deploy. Il tipo di configurazione caricato da gradle si può specificare all'interno di ogni file gradle.

quellobiondo commented 7 years ago

Per utilizzare la lettura delle proprietà Yaml all'interno di python installare pip install pyyaml