Go Down

Topic: Risolto: Come attivare le modifiche fatte in una libreria (Read 2223 times) previous topic - next topic

uwefed

Jun 28, 2011, 01:01 am Last Edit: Jun 29, 2011, 01:50 am by uwefed Reason: 1
Ciao a tutti,
oggi serve aiuto a me.

Per un mio progetto ho bisogno di modificare una libreria giá esistente.
Questo non é un problema.

Il problema é come facci ad attivare le modifiche?

Se cambio una funzione in un file ".cpp", ".c" o ".h" della libreria, l'IDE non ne vuole saperne della nuova versione. Si ostina ad usare la vecchia versione.

Perché funzioni devo:
* chiudere l'IDE,
* cancellare la libreria nella cartella ~arduino0022/libraries
* aprire l'IDE
* chiudere l'IDE
* copiare la libreria modificata nella cartella ~arduino0022/libraries
* aprire l'IDE
* aprire lo sketch e compilarlo.  solo adesso sono attive le modificahe fatte.

Qualcuno ha un idea come fare la cosa meno machinosa? C'é un trucco?

Grazie per l' aiuto.
Ciao Uwe


leo72

Presupposto: una libreria va sempre modificata con l'IDE chiusa, altrimenti l'IDE non può vedere la modifica fino al successivo riavvio.

Detto questo, e non so se dipende da ciò, io non uso la cartella /arduino-00xx/libraries ma la cartella /sketchbook/libraries per le mie librerie. E quando riavvio l'IDE vedo sempre la cartella modificata.

Però io uso Linux, tu che S.O. usi? Non so se, oltre alla diversa cartella, dipende anche dalla versione dell'IDE per uno specifico S.O.

astrobeed


Il problema é come facci ad attivare le modifiche?


Quanto dici mi sembra molto strano perché l'IDE non memorizza in nessun modo le librerie, anzi l'IDE non sa nemmeno cosa sono visto che vengono invocate dal compilatore.
Mi è capitato diverse volte di fare esperimenti modificando sia le librerie che i file del core al volo tenendoli aperti con un editor (Ultraedit), e l'IDE sempre aperto, una volta salvate la compilazione viene fatta con i nuovi contenuti.
Più che un problema di IDE potrebbe essere un problema di cache del sistema operativo che trattiene le precedenti versioni e non ti fa utilizzare subito quelle modificate.

uwefed

Grazie per le risposte. Purtroppo non mi portano avanti.
Uso WIN XP SP3 con IDE 0022.
Definitivamente non mi basta chiudere e riaprire l'IDE ma devo aprire l'IDE con la libreria mancante per riaprire di seguito con la libreria modificata.
Ciao Uwe


astrobeed


Grazie per le risposte. Purtroppo non mi portano avanti.
Uso WIN XP SP3 con IDE 0022.


Il mistero si infittisce, pure io normalmente uso XP SP3 e non ho riscontrato nessun problema nella modifica al volo delle librerie.
Dopo vedo di farti un video screen capture di una sessione modifica al volo di una libreria con relativa compilazione senza riavviare l'ide.

uwefed

Non credo che dipende dalla libreria che modifico; é una libreria (che non trovo piú in rete) per multiplexare una matrice di led con un TLC5940.
Si chiama tlcmux.
Ho una matrice 5x6 LED RGB, che fisicamente sono 15 LED per 6 righe.
Visto che la libreria ha memorizzato i pin usati per pilotare il driver HIGH (A2981) ed era fatta per una matrice 4x4 avevo bisogno di modificarla e adeguarla alle mie necessitá.
Voglio di seguito togliere anche alcune funzioni che non uso.
Come editore uso "40thude HTML".
Ciao Uwe 

leo72

Hai provato, come ti ho detto, a cambiare  cartella per la tua libreria? A metterla dentro /sketchbook/libraries?
Prova anche con la versione 0021 dell'IDE. La 0022 aveva alcune modifiche sulla gestione delle lib che a me ogni tanto hanno creato problemi.

astrobeed


Come editore uso "40thude HTML".


Non lo conosco, potrebbe anche essere lui il problema, fai una prova usando il notepad di Windows.


uwefed

ciao Leo72
Non ho la cartella "sketchbook" nel istallazione Arduino.
Se cambio posizione della libreria devo chiamarla in modo differente nei programmi?
Ciao Uwe

uwefed



Come editore uso "40thude HTML".

Non lo conosco, potrebbe anche essere lui il problema, fai una prova usando il notepad di Windows.

È un editore che uso per scrivere programmi PHP che poi provo in locale. Quello mi funziona senza effetti strani.
Stasera proveró ad usare notpad.
Ciao Uwe

astrobeed

Se la libreria non si trova in una delle cartelle previste dal path di Arduino devi specificare il percorso completo nella relativa include.
Quando compili vengono aperti ogni volta tutti i vari file, puoi facilmente verificarlo usando il modo verbose (premere shift), se l'editor non salva subito fisicamente il file, potrebbe usare una sua cache, è normale che utilizzi sempre le vecchie versioni fino a che non esegui tutta la trafila che hai indicato.
Un modo per verificare se la colpa è realmente dell'editor, e a questo punto lo vedo come il principale indiziato, è provare a chiuderlo dopo la modifica, in questo modo forzi la scrittura su HD, se ricompilando, sempre dalla stessa sessione IDE, la modifica viene inserita allora abbiamo la prova che il colpevole è proprio l'editor.

leo72


ciao Leo72
Non ho la cartella "sketchbook" nel istallazione Arduino.
Se cambio posizione della libreria devo chiamarla in modo differente nei programmi?
Ciao Uwe


La cartella /sketchbook è quella in cui salvi i tuoi programmi. Di default è chiamata così ma tu potresti avergli dato un altro nome la prima volta che hai avviato l'IDE (il nome comunque lo trovi nelle preferenze dell'IDE). All'interno di quella cartella crei la sottocartella /libraries e lì dentro metti le librerie di terze parti, così da tenerle separate da quelle dell'IDE e per non doverle reinstallare ogni volta che aggiorni l'IDE.

Ah, non usare Notepad per favore  :D
Su Windows esiste un ottimo editor gratuito che supporta molti linguaggi: cerca Notepad++.

Michele Menniti



ciao Leo72
Non ho la cartella "sketchbook" nel istallazione Arduino.
Se cambio posizione della libreria devo chiamarla in modo differente nei programmi?
Ciao Uwe


La cartella /sketchbook è quella in cui salvi i tuoi programmi. Di default è chiamata così ma tu potresti avergli dato un altro nome la prima volta che hai avviato l'IDE (il nome comunque lo trovi nelle preferenze dell'IDE). All'interno di quella cartella crei la sottocartella /libraries e lì dentro metti le librerie di terze parti, così da tenerle separate da quelle dell'IDE e per non doverle reinstallare ogni volta che aggiorni l'IDE.

Ah, non usare Notepad per favore  :D
Su Windows esiste un ottimo editor gratuito che supporta molti linguaggi: cerca Notepad++.


In realtà sotto Windows (anch'io usp Sp3 + 0022) Viene creata una cartella "Arduino" nella cartella Documenti; all'interno di questa c'è una cartella "Sketch" dove si trovano i tuoi sketch personali. Io ho creato una cartella "Libraries" in questa cartella "Arduino" e ci metto le librerie non previste dal software originale, l'IDE se le carica automaticamente, non devi nemmeno dare un percorso. Poi, per mia comodità, nelle impostazioni dell'IDE ho cambiato questop percorso, ma questo non cambia nulla.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

astrobeed


La cartella /sketchbook è quella in cui salvi i tuoi programmi. Di default è chiamata così ma tu potresti avergli dato un altro nome la prima volta che hai avviato l'IDE


In Windows, di default, non c'è la cartella sketchbook, viene creata una cartella Arduino nella cartella documenti , una cosa del tipo:

"C:\Documents and Settings\NomeUtente\Documenti\Arduino"

Al suo interno puoi creare la cartella "libraries" dove mettere le librerie non di serie ed è automaticamente collegata al path dell'IDE.


Quote

Ah, non usare Notepad per favore  :D
Su Windows esiste un ottimo editor gratuito che supporta molti linguaggi: cerca Notepad++.


Era solo un consiglio per fare una prova veloce senza dover scaricare/installare nulla, perlomeno ho la certezza matematica che Notepad salva immediatamente sul disco rigido.
Anche se non è gratuito, solo 60$, consiglio caldamente l'uso di Ultraedit, è il miglior editor in assoluto per programmatori, esiste in versione Windows, Linux e MAC.

Michele Menniti



La cartella /sketchbook è quella in cui salvi i tuoi programmi. Di default è chiamata così ma tu potresti avergli dato un altro nome la prima volta che hai avviato l'IDE


In Windows, di default, non c'è la cartella sketchbook, viene creata una cartella Arduino nella cartella documenti , una cosa del tipo:

"C:\Documents and Settings\NomeUtente\Documenti\Arduino"

Al suo interno puoi creare la cartella "libraries" dove mettere le librerie non di serie ed è automaticamente collegata al path dell'IDE.


Per una volta (ma non mi permetto più  :smiley-red:) ti ho anticipato.... :D
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Go Up