Pages: 1 2 [3]   Go Down
Author Topic: Baco nel serial monitor dell'IDE 1.0.1  (Read 3199 times)
0 Members and 1 Guest are viewing this topic.
0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

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

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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:
    for (int i = 0; i < serialRateStrings.length; i++)
      serialRates.addItem(serialRateStrings[i] + " baud");

a

Code:
    for (int i = 0; i < serialRateStrings.length; i++)
      serialRates.addItem(serialRateStrings[i] + " baud");
« Last Edit: June 24, 2012, 10:51:53 am by lesto » Logged

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

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

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


0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

apro un ticket
Logged

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

0
Online Online
Faraday Member
**
Karma: 49
Posts: 6019
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

un grazie a Leo per aver trovato il bug ed a Lesto per averlo risolto  smiley
Logged

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

Catania
Offline Offline
Sr. Member
****
Karma: 0
Posts: 346
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

un grazie a Leo per aver trovato il bug ed a Lesto per averlo risolto  smiley
+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.
Logged

Offline Offline
God Member
*****
Karma: 8
Posts: 691
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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


Le cose si possono considerare facili in due casi: quando le si conosce bene o quando non le si conosce affatto...

Arezzo, Toscana
Offline Offline
Jr. Member
**
Karma: 2
Posts: 99
Clones Must Die!
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
nessun errore se cambio velocità  su win 7

E' a 32 o a 64 bit?
Logged

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

@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  smiley-wink
Logged


0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

Forum Administrator
Offline Offline
God Member
*****
Karma: 52
Posts: 646
I find plain exciting
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

0
Offline Offline
Shannon Member
****
Karma: 136
Posts: 10525
:(){:|:&};:
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

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

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

@lesto:
massimo ti ha chiamato "testato"  smiley-lol smiley-lol

@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:
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
« Last Edit: September 08, 2012, 04:25:58 pm by leo72 » Logged


Pages: 1 2 [3]   Go Up
Jump to: