Pages: [1] 2   Go Down
Author Topic: Risolto: Come attivare le modifiche fatte in una libreria  (Read 1971 times)
0 Members and 1 Guest are viewing this topic.
BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21938
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

« Last Edit: June 28, 2011, 06:50:21 pm by uwefed » Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 335
Posts: 23125
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 138
Posts: 9870
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21938
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
 
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 138
Posts: 9870
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21938
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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   
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 335
Posts: 23125
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 138
Posts: 9870
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Come editore uso "40thude HTML".

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

Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21938
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 271
Posts: 21938
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 138
Posts: 9870
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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.
Logged

Global Moderator
Italy
Online Online
Brattain Member
*****
Karma: 335
Posts: 23125
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-grin
Su Windows esiste un ottimo editor gratuito che supporta molti linguaggi: cerca Notepad++.
Logged


Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-grin
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.
Logged


Rome (Italy)
Offline Offline
Tesla Member
***
Karma: 138
Posts: 9870
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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  smiley-grin
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.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 574
Posts: 12678
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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.... smiley-grin
Logged


Pages: [1] 2   Go Up
Jump to: