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

Creazione 3 state sonar fisici #32

Open sabbio93 opened 7 years ago

sabbio93 commented 7 years ago

https://github.com/sabbio93/QRobotEvitaMuri/blob/develop/Model1/src/model1.ddr

quellobiondo commented 7 years ago

Dunque, riguardo ai sonar Fisici. Il prof ci fornisce dei sonar POJO o uno in C. Entrambe utilizzano altre librerie: o GPIO o wiringPi. Entrambe si devono interrogare a polling.

Nel caso del sonar POJO, il sonar è passivo. Nel caso del sonar C il sonar è attivo (processo separato dal cliente) ma non emette eventi, è da interrogare a polling. Entrambe i sonar comunicano la distanza che leggono.

Come utilizzarli dal QA. Il sonarC deve essere usato insieme ad una classe java responsabile di avviare il processo del sonar e comunicare tramite stdout/stdin con lui per ottenere le informazioni con il polling.

Il sonar Java è già pronto per essere utilizzato dal qa. Ha un metodo di inizializzazione ed un metodo sincrono bloccante per richiedere il campionamento dei dati del sonar.

Vedi. sonarSrc.zip

Noi vogliamo creare un wrapper in QA per questi sonar, per rendere il sonar una componente attiva che emette eventi.

sabbio93 commented 7 years ago

@diriki ha trovato il sonar fatto in qa dal prof sotto decidiamo di usare java xkè ci da già gli eventi

quellobiondo commented 7 years ago

Per riutilizzare il sonar del prof abbiamo dovuto aggiungere delle nostre regole prolog. Infatti l'attore del prof utilizza actorOpResult(Op, Result) che però è stata rimossa nell'ultima versione dei QA in favore di un metodo che contiene la keyword "goal" che non può essere utilizzata all'interno delle Rules.