home | area personale         schemi | tutorial | robotica | pic micro | recensioni         forum | chat irc         faq | contatti         store | Ordina PCB
username
password
cerca

 
FORUM: Pic Micro
Tutto quanto riguarda questi microprocessori... progetti, suggerimenti, aiuti, discussioni...ecc


capire librerie di Arduino
     
Autore Messaggio opzioni
MB54




una ogni 100 livelli


postato il:
29.05.2020, alle ore 17:07
lorebaro:
Ciao Forum,

aggiungo questo documento, che descrive come devono essere fatte le API (librerie) per arduino.
https://www.arduino.cc/en/Reference/APIStyleGuide
Lorenzo


L' hanno scritto pensando a me come utilizzatore... Mi pare però che nel mondo Arduino - Github il contenuto del documento non venga molto seguito.

Guarderò domani la libreria Adafruit, anche quella linkata nell' APIStyleGuide.
Le prima volta che ho aperto una libreria di Arduino (lo uso pochissimo) è stata con una di DFRobots o nome simile, poi in questi giorni con un paio di altre. Non ho quindi una gran casistica...


<<Da qui in poi non ci interessa, per gestire il sensore non ci è messo a disposizione altro. Quello che c'è nella sezione private serve solo internamente alla classe, non andrebbe usato.>>
Nel mio caso voglio invece entrare nel merito di cosa fa il sensore, come lo fa e come viene trattato il dato fornito. Potrei avere opinioni diverse dall' estensore della libreria (io di mestiere faccio misure, lui il softwarista). Prefirei scrivere da me il codice per i pic, ma spesso richiede un sacco di tempo ed allora viva Arduino.

<<Io uso visualmicro https://www.visualmicro.com/ nella home c'è un get started.>>
lo provo sicuramente e ti faccio sapere.


MB54




una ogni 100 livelli


postato il:
30.05.2020, alle ore 08:13
lorebaro:


https://github.com/adafruit/Adafruit_SHT31

.... Da qui in poi non ci interessa, per gestire il sensore non ci è messo a disposizione altro. Quello che c'è nella sezione private serve solo internamente alla classe, non andrebbe usato.
private:



Ti ringrazio. Piano piano riesco ad entrare nel merito.
Ovviamente devo ringraziare LadyAda o chi per lei e tutti quelli che mettono a disposizione pubblica il proprio lavoro.

Pensato positivo, direi che però non ci siamo.
Sensirion fa discreti sensori; costicchiano cari, ma soprattutto negli anni passati con la famiglia SHT2* erano un gradino avanti rispetto alla comune concorrenza (ora SHT3*). Ho usato un SHT25 e l'ho trovato un ottimo prodotto.
I sensori Sensirion offrono una dozzina di modi diversi di lavoro, secondo esigenze sia fisiche che hardware. Misure one-shot, continue, idle, veloci,lente, piu' o meno 'ripetibili', allarmi di conformità ecc. Tutto ciò non per un capriccio Sensirion, ma perchè le condizioni di misura influenzano la qualità del risultato. Per dirla breve, se sta misurando il chip ovviamente lavora, se lavora riscalda, se riscalda altero la misura della temperatura, se varia la temperatura varia il calcolo dell' umidità relativa: risultato... numeri un poco casual, magari accettabili ma al di sotto della qualità fornibile dal sensore.
Senza considerare il consumo, l' occupazione del processore ecc.

Di tutto questo nella libreria non c'è evidenza, o meglio è in buona parte nascosto nei #define e gestito dalla funzione PRIVATA .writeCommand(uint16_t cmd). Così come è la libreria, il sensore non può che partire e fare in continuo lo stesso lavoro che il programmatore di Adafruit ha scelto.
Sempre ringraziando LadyAda, chi prova ad utilizzare consapevolmente il sensore non ha possibilità di scelta. Non ho provato non avendo un SHT31, e non ho ancora studiato il ccp, ma a occhio esporre pubblicamente la funzione writeCommand potrebbe essere sufficiente a gestire il chip secondo desideri o necessità fisiche. Diciamo che la programmazione non è un' attività fine a se stessa, terra di raffinate soluzioni stilistiche, ma deve essere indirizzata dal mondo reale (o virtuale, ma è sempre mondo).

Ci sono diversi punti nel codice per me oscuri, ma si tratta di sintassi che prima o poi capirò; se sarò in difficoltà, proverò ancora ad approfittare della tua gentilezza.


lorebaro:

Io uso visualmicro https://www.visualmicro.com/ nella home c'è un get started.
Prova.
Lorenzo


installato, non rimane che studiare.

Grazie
lorebaro





postato il:
30.05.2020, alle ore 09:16
Ciao MB54,

le librerie si portano dietro concetti molto complessi, come ereditarietà, e polimorfismo, che ti permettono di fare un sacco di belle cose.

Vuoi modificare una classe? non la tocchi, la erediti, cambi le funzioni come ti pare, ma senza toccare la classe. Questo è il modo di lavorare corretto e che si manuteine e che non genera errori.

Ma questi sono concetti che devono venire affrontati, perchè "Tu dici che hai problemi sulla sintassi standard", per cui non è il caso di affrontarli ora.

Ritornando all'argomento documentazione delle librerie, il passo successivo è capire doxygen, un sistema automatico di documentazione, in modo che quando scrivi il codice ti viene fuori la documentazione in automatico in un formato leggibile per gli umani.

Le librerie linkate credo abbiamo tutti i commenti in stile Doxygen, questo ti genera in automatico un file di testo, come voleva still.
Lorenzo
MB54




una ogni 100 livelli


postato il:
30.05.2020, alle ore 09:32
lorebaro:

Ma questi sono concetti che devono venire affrontati, perchè "Tu dici che hai problemi sulla sintassi standard", per cui non è il caso di affrontarli ora.

condivido


lorebaro:

Ritornando all'argomento documentazione delle librerie, il passo successivo è capire doxygen, un sistema automatico di documentazione,

Un passo per volta.
Fammi uno spoiler: documenta in fase di scrittura del codice o puoi estrarre informazioni da un codice preso in rete?

lorebaro





postato il:
30.05.2020, alle ore 10:06
Ciao MB54,

lorebaro:

Ritornando all'argomento documentazione delle librerie, il passo successivo è capire doxygen, un sistema automatico di documentazione,

Un passo per volta.
Fammi uno spoiler: documenta in fase di scrittura del codice o puoi estrarre informazioni da un codice preso in rete?

[/quote]

Si esatto, doxygen è ormai uno standard

https://www.doxygen.nl/index.html

I commenti scritti secondo lo stile doxygen sono del tipo
/*! \class MyClassName myhdr.h "path/myhdr.h"
*
* Docs for MyClassName
*/

segui questo thread con grixFC, per questa funzione devi aver installato il software grixFC

torna su
     

Come utente anonimo puoi leggere il contenuto di questo forum ma per aprire una discussione
o per partecipare ad una discussione esistente devi essere registrato ed accedere al sito




 







 
 
indietro | homepage | torna su copyright © 2004/2024 GRIX.IT - La community dell'elettronica Amatoriale