Open sabbio93 opened 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.
@diriki ha trovato il sonar fatto in qa dal prof sotto decidiamo di usare java xkè ci da già gli eventi
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.
https://github.com/sabbio93/QRobotEvitaMuri/blob/develop/Model1/src/model1.ddr