BZ (I)
Offline
Brattain Member
Karma: 161
Posts: 15680
+39 349 2158303
|
 |
« on: June 27, 2011, 06:01:45 pm » |
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
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16449
Don't know what I do
|
 |
« Reply #1 on: June 27, 2011, 11:15:45 pm » |
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
Tesla Member
Karma: 74
Posts: 7348
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #2 on: June 27, 2011, 11:53:36 pm » |
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
Brattain Member
Karma: 161
Posts: 15680
+39 349 2158303
|
 |
« Reply #3 on: June 28, 2011, 12:39:08 am » |
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
Tesla Member
Karma: 74
Posts: 7348
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #4 on: June 28, 2011, 12:49:52 am » |
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
Brattain Member
Karma: 161
Posts: 15680
+39 349 2158303
|
 |
« Reply #5 on: June 28, 2011, 01:02:46 am » |
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
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16449
Don't know what I do
|
 |
« Reply #6 on: June 28, 2011, 01:09:53 am » |
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
Tesla Member
Karma: 74
Posts: 7348
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #7 on: June 28, 2011, 01:13:24 am » |
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
Brattain Member
Karma: 161
Posts: 15680
+39 349 2158303
|
 |
« Reply #8 on: June 28, 2011, 01:15:04 am » |
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
Brattain Member
Karma: 161
Posts: 15680
+39 349 2158303
|
 |
« Reply #9 on: June 28, 2011, 01:18:06 am » |
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
Tesla Member
Karma: 74
Posts: 7348
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #10 on: June 28, 2011, 01:26:01 am » |
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
|
|
|
|
|
Forum Moderator
Italy
Offline
Brattain Member
Karma: 219
Posts: 16449
Don't know what I do
|
 |
« Reply #11 on: June 28, 2011, 01:32:43 am » |
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  Su Windows esiste un ottimo editor gratuito che supporta molti linguaggi: cerca Notepad++.
|
|
|
|
|
Logged
|
|
|
|
|
Lamezia Terme
Offline
Shannon Member
Karma: 386
Posts: 10240
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #12 on: June 28, 2011, 01:54:38 am » |
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  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
Tesla Member
Karma: 74
Posts: 7348
"Il Vero Programmatore ha imparato il C sul K&R, qualunque altro testo è inutile e deviante."
|
 |
« Reply #13 on: June 28, 2011, 01:57:04 am » |
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. Ah, non usare Notepad per favore  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
Shannon Member
Karma: 386
Posts: 10240
Le domande di chi vuol imparare rappresentano la sua sete di sapere
|
 |
« Reply #14 on: June 28, 2011, 02:00:04 am » |
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ù  ) ti ho anticipato.... 
|
|
|
|
|
Logged
|
|
|
|
|
|