no. i bug eclatanti sono quelli che fanno esplodere i missili in volo...
sì, che però rende inutilizzabile un baud-rate diverso da 9600 (è passato un pò da quando ho proposto la soluzione, ma mi pare che l'errore fosse anche nell'inglese, visto che anche l'inglese è una intenazionalizzazione, in pratica traduci da inglese ad inglese. In effetti di solito si usano dei numeri)
Far esplodere un razzo in volo è eclatante se hai esperienza nei razzi. Far crashare un server è eclatante se hai esperienza nei server. Un bug che ti blocca ad usare una sola velocità baudrate è eclatante per un software che ha esperienza (siamo alla 25° versione se non erro). IMHO era da rilasciare immediatamente una 1.0.2 col bug risolto e far sparire la 1.0.1 (Madwriter è questo che intendi per blocking urgent?)
d'altronde è un sistema per principianti no? e un principiante on ci arriva che cambiare il baudrate non funziona perchè è l'IDE sbagliato e non il suo codice. Mai provato a studiare su un libro di testo sbagliato?
Esattamente questo è uno di quei bug che in produzione va risolto immediatamente e il rilascio deve avvennire nelle 24 ore successive dalla scoperta del bug.
il sistema più di base è un programma esterno che viene lanciato, se rileva una nuova veriosne sul server CANCELLARE completamente il contenuto della cartella arduino (tranne se stesso che non può) e sostituirlo con la versione successiva. Le modifiche utente dovrebbero rimanere immutate in quanto in un'altra cartella (il preferencies.txt e lo sketcbook, per intenderci).
nel caso il preferencies.txt fosse aggiornato, è compito dell'ide al primo avvio riconoscerne la versione e riscriverlo nella versione aggiornata
lesto:
il sistema più di base è un programma esterno che viene lanciato, se rileva una nuova veriosne sul server CANCELLARE completamente il contenuto della cartella arduino (tranne se stesso che non può) e sostituirlo con la versione successiva. Le modifiche utente dovrebbero rimanere immutate in quanto in un'altra cartella (il preferencies.txt e lo sketcbook, per intenderci).
nel caso il preferencies.txt fosse aggiornato, è compito dell'ide al primo avvio riconoscerne la versione e riscriverlo nella versione aggiornata
ma questo è facile si fa un check su db o su file si vede se la versione del software è inferiore a quella su server, se si ,si apre una popup con una proposta di aggiornamento,se clicchi su yes un software indipendente viene lanciato e cancella tutto quello che c'è nella cartella di arduino scarica il nuovo zip e lo estrae.
Quoto questo modus operandi. A suo tempo lo feci anch'io per unmio gestionale in VB6.
Lanciavo un programma esterno che controllava un semplice file txt presente su un server remoto. Se la versione scritta in quel file era maggiore di quella del programma in locale, cancellava quest'ultimo e scaricava il nuovo.
esatto. fondamentalmente è una boiata.
il programma indipendente invece viene aggiornato dall'IDE stesso prima di lanciarlo (quindi in maniera trasparente all'utente e solo se preme sì). In questo modo non dovrebbero mai aversi problemi anche in caso di aggiornamenti particolari
diciamo che in 20 minuti si implementa il tutto per i vari OS.
Anche se io farei anche una lista con tutti i file da cancellare,cosi se un arduiniano ci nasconde i porno nella cartella di arduino non rischia di perderli per sempre
Workaround --> Imposta la lingua Inglese e riavvia l'IDE 1.0.1
[quote author=Massimo Banzi link=topic=120747.msg908885#msg908885 date=1346335298]
Questa è una cavolata dovuta all'internazionalizzazione.[/quote]
In effetti mettendo l'interfaccia in Inglese, il bug non c'è.
comunque il sistema migliore per l'update è quello (dopo il check di versione) di scaricare un archivio zippato o come su vuole nella cartella ed al riavvio dell'ide lo si estrae (un qualcosa di simile lo fa mozilla adesso se non erro)
MatteoBeginner:
Nel codice uso Serial.print per visualizzare avanzamento dei cicli ma aprendo la finestra ho dei caratteri "speciali".
Ho provato a usare 9600 e funziona...ma purtroppo devo usare 115200 per comunicare con lo shield...
il problema dovrebbe essere legato a questo:
con un clock di 16Mhz esatti e settando un baudrate di 115200 si ha un errore in percentuale di 7.84% sul baudrate.
NB. per avere un errore dello 0% il quarzo dovrebbe essere di 14745600Hz o atri valori speciali ma non 16Mhz.
Alcuni PC, con usart particolari, non hanno una accettanza così ampia e quindi il terminale settato su 115200 interpreta in modo errato i caratteri in ingresso dalla seriale, cosa che non accade in senso inverso cioè dal PC verso l'arduino. Già a 57600 l'errore si riduce ad appena 2.08% per passare a 0.16% se il baudrate viene settato a 38400.
......Non dipende dall' OS Win7 ma bensì dal quarzo installato su arduino.... prova a cambiarlo con uno da 14745600, ricompila con il nuovo baudrate e vedrai che si aggiusta tutto.
Il firmware girerà appena più lento ma risolverai i prb sulla seriale a 115200.
MatteoBeginner:
Nel codice uso Serial.print per visualizzare avanzamento dei cicli ma aprendo la finestra ho dei caratteri "speciali".
Ho provato a usare 9600 e funziona...ma purtroppo devo usare 115200 per comunicare con lo shield...
il problema dovrebbe essere legato a questo:
con un clock di 16Mhz esatti e settando un baudrate di 115200 si ha un errore in percentuale di 7.84% sul baudrate.
NB. per avere un errore dello 0% il quarzo dovrebbe essere di 14745600Hz o atri valori speciali ma non 16Mhz.
Alcuni PC, con usart particolari, non hanno una accettanza così ampia e quindi il terminale settato su 115200 interpreta in modo errato i caratteri in ingresso dalla seriale, cosa che non accade in senso inverso cioè dal PC verso l'arduino. Già a 57600 l'errore si riduce ad appena 2.08% per passare a 0.16% se il baudrate viene settato a 38400.
......Non dipende dall' OS Win7 ma bensì dal quarzo installato su arduino.... prova a cambiarlo con uno da 14745600, ricompila con il nuovo baudrate e vedrai che si aggiusta tutto.
Il firmware girerà appena più lento ma risolverai i prb sulla seriale a 115200.
Ciao
Sbagliato.
Il bug di cui stiamo parlando è legato ad un " " che si sono dimenticati nella versione internazionale.
Quello di cui parli tu è un'altra cosa.
sbagliato ?
il problema è solo uno spazio? e allora vuoi dire che comunque la comunicazione va senza intoppi anche a 124231 bps con qualsiasi modulo di espansione / interfaccia seriale ?
boh! io non mi fiderei tanto.... chissà quant'è il datarate-error.
cyclone:
sbagliato ?
il problema è solo uno spazio? e allora vuoi dire che comunque la comunicazione va senza intoppi anche a 124231 bps con qualsiasi modulo di espansione / interfaccia seriale ?
boh! io non mi fiderei tanto.... chissà quant'è il datarate-error.
ciao
No, non ho detto che la comunicazione potrebbe procedere senza intoppi. Ho detto che il bug lamentato da chi ha aperto il topic è dovuto all'errata scrittura del codice Java dell'IDE di Arduino che provoca un errore nel menu' a tendina del serial monitor quando, su Win 7, si selezionano velocità diverse da 9600 baud con l'IDE impostato in una lingua non inglese.
Va bene così o vuoi anche un disegnino?
la seriale viaggia perfettamente a quelle velocità, e anche a velocità superiori, fino ad 2mega!
il datashett (pagina 197) dice anche che gli errori sono più bassi di quello che prevedi. dato che la seriale è HW, probabilmente c'è un clock divider o qualcosa del genere che attutisce l'errore
PaoloP:
provoca un errore nel menu' a tendina del serial monitor quando, su Win 7, si selezionano velocità diverse da 9600 baud con l'IDE impostato in una lingua non inglese.
Su tutti gli SO. E' un baco indipendente dal sistema ma legato all'IDE.