Go Down

Topic: Baco nel serial monitor dell'IDE 1.0.1 (Read 3424 times) previous topic - next topic

lesto

è strano.
è prassi che una una ricerca in stringa che non trovi nulla restituisca -1.
ed è anche normale che una substring con -1 se ne vada in palla.

quello che è strano è che viene cercato il valore " " (spazio) all'interno della stringa che hai selezionato nella combox che contiene i valori possibili di baud rate.
essi sono costruiti partendo da un array di int (9600, 19200 etc..) e aggiungendo " baud" in coda e poi direttamente schiaffati in combobox.
infatti se noti per ora voglio capire QUALE valore viene recuperato, e mi sembra molto strano non coincida

quindi noti bene che lo spazio c'è. è stupido che smontino la stringa quando probabilmente possono estrarre il valore direttamente dall'array di origine usato per i numeri:
essi fanno recupero stringa, tagliuzzamento di " baud", trasformazione in int... quando invece basta recupero index scelta, recupero valore index dall'array di valori int
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lesto

#31
Jun 24, 2012, 05:45 pm Last Edit: Jun 24, 2012, 05:51 pm by lesto Reason: 1
edit: sono stupido io.

l'errore lo hanno TUTTI ed è causato dal fatto che hanno messo _(xxx) dove xxx è una stringa.

Non ho mai visto una cosa del genere in java, ma a quanto pare questa funzione fa un trim(), ovvero elimina gli spazi davanti e alla fine.

come risultato si ottiene che la stringa finale non è più

"9600 baud"
ma
"9600baud"

e quindi, vedi post precedente, la ricerca di " " e quindi poi la substring, fallisce.

edit: la soluzione è cambiare da
Code: [Select]
    for (int i = 0; i < serialRateStrings.length; i++)
      serialRates.addItem(serialRateStrings[i] + " baud");


a

Code: [Select]
    for (int i = 0; i < serialRateStrings.length; i++)
      serialRates.addItem(serialRateStrings[i] + " baud");
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

leo72

Difatti stavo per scriverti che nel menu a tendina lo spazio a dividere il valore e la stringa "baud" non c'è.  :D

lesto

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Testato

un grazie a Leo per aver trovato il bug ed a Lesto per averlo risolto  :)
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

dalubar


un grazie a Leo per aver trovato il bug ed a Lesto per averlo risolto  :)

+1


Eh?
Ma parli di 4Kbyte o 4Kword?
Io ho uno sketch di 5176 per Attiny84 che compilo e che gira senza problemi.

4Kbyte.
Leo è sempre lo stesso problema trattato e risolto qui (http://arduino.cc/forum/index.php/topic,96135.msg722511.html#msg722511) che coinvolge utenti Windows (per questo non te lo ricordi  :smiley-yell:) dove, tra l'altro, si era accertato che l'errore  NON era nell'IDE ma nel file di configurazione di avrdude. Quindi ad ogni cambio di IDE (migliore o peggiore che sia) devo fare la modifica altrimenti (come infatti ho già verificato) l'errore rispunta con sketch su tiny superiori ai 4K.

gingardu


@Brunello; @Bisbulle
Però c'è da dire che entrambi usate XP.
Sarebbe interessante trovare qualcuno che non ha l'errore su Win 7


nessun errore se cambio velocità  su win 7
Le cose si possono considerare facili in due casi: quando le si conosce bene o quando non le si conosce affatto...

Bisbulle

Quote
nessun errore se cambio velocità  su win 7


E' a 32 o a 64 bit?

leo72

@dalubar:
ah, ok. No, non mi ricordavo di quella discussione, sinceramente  :smiley-sweat:

@lesto:
hai sbagliato a scrivere "change" nel titolo del ticket che hai aperto  ;)

lesto

bhe, fosse solo quello l'errore... ma la fretta, il caldo, e ormai il ticket chiuso... comunque fondamentalmente si tratta di un errore nei file di straduzione, infatti la _() a quanto pare traduce il testo.

_("baud") dovrebbe essere tradotto in " baud" (o a seconda della lingua) ma molte traduzioni si son dimenticate del particolare. ora lo spazio è hard-coded
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Massimo Banzi

spero che abbiate notato che basta aprire un bug report per avere una risposta.

il bug è già stato riparato e messo nel repo per la prossima versione.

da quello che ho capito si verifica solo se uno ha l'ide in una lingua diversa dall'inglese.

PS: grazie testato per il bug report

m

lesto

credo che _("baud") sia un "simbolo" univoco, che viene tradotto in qualsiasi lingua, compresa l'inglese. in questo modo l'inglese non è un caso speciale ma anch'esso una traduzione, sembra strano ma in questo modo tutte le lingue son gestite allo stesso modo rendendo il codice più lineare.

che poi per creare questi simboli si usi l'inglese, è un fatto di comodità per i traduttori
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

leo72

#42
Jun 25, 2012, 11:45 am Last Edit: Sep 08, 2012, 11:25 pm by leo72 Reason: 1
@lesto:
massimo ti ha chiamato "testato"  XD XD

@TUTTI:
nel repo GIThub c'è già il sorgente dell'IDE con la patch applicata. Chi volesse compilarsela deve:

1) collegarsi al sito:
https://github.com/arduino/Arduino

2) scaricare l'intero pacchetto sorgente dell'IDE (220 MB) semplicemente cliccando sull'icona "ZIP" che c'è in alto a sinistra, poco sotto alla scritta "open-source electronics prototyping platform -- Read more ecc..."

3) scompattare l'archivio da qualche parte

4) assicurarsi di avere il pacchetto apache-ant installato sul proprio sistema. Se non ce l'avete, scaricatelo col gestore pacchetti della vostra distribuzione. Gli utenti Windows possono fare riferimento a queste istruzioni

5) spostarsi nella sottocartella /Arduino/build presente nella cartella dove avete scompattato l'archivio

6) aprite un terminale e digitate i seguenti comandi
Code: [Select]
ant
ant clean
ant build


7) inizierà la compilazione, che non dovrebbe prendere molto tempo su sistemi di media potenza

8 ) terminata la compilazione, spostatevi nella cartella dove avete attualmente l'IDE 1.0.1 installata, che dovrebbe essere una cosa del tipo ../arduino-1.0.1. Dovete posizionarvi dove trovate il file eseguibile di arduino, per capirsi: su Windows è "arduino.exe", su Linux è lo script bash "arduino".

9) lì c'è la cartella /lib: rinominatela in /lib.old, non si sa mai

10) adesso tornate nella cartella che si è creata dopo che avete scompattato lo zip dei sorgenti dell'IDE.

11) entrate nella cartella ../Arduino/build/linux/work. Per gli utenti Windows dovrebbe essere simile, ma con l'indicazione appunto del loro sistema operativo.

12) dentro trovate l'IDE di Arduino completo, con l'eseguibile per lanciare l'IDE e tutte le sottocartelle. A noi interessa prelevare in blocco la cartella /lib.

13) copiatela quindi nella cartella in cui avete attualmente l'IDE, accanto a /lib.old.

14) adesso, lanciando l'IDE di Arduino, si aprirà il nuovo ambiente e l'errore sul menu a tendina della scelta della velocità della seriale è scomparso.

15) c'è un solo, piccolo, bug: nel titolo della finestra non compare più la versione dell'IDE ma un "Arduino ${version}". Per mettere la versione, aprite il file /lib/version.txt e modificatelo inserendo "1.0.1" o quel che vi pare.

16) Se tutto funziona, bene; altrimenti cancellate /lib e rinominate /lib.old in /bin tornando alla vecchia IDE.

PS.
le istruzioni per compilare l'IDE sono di Federico Vanzati.

EDIT:
per Windows c'è da installare qualche pacchetto in più:
http://code.google.com/p/arduino/wiki/BuildingArduino

Go Up