Oggi è giovedì 6 giugno 2024, 18:58

Tutti gli orari sono UTC + 1 ora [ ora legale ]




Apri un nuovo argomento Rispondi all’argomento  [ 376 messaggi ]  Vai alla pagina Precedente  1, 2, 3, 4, 5, 6, 7 ... 26  Prossimo
Autore Messaggio
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: giovedì 17 settembre 2015, 12:05 
Non connesso

Iscritto il: mercoledì 18 gennaio 2006, 22:17
Messaggi: 1421
Località: ORVIETO Umbria
Perché quel segnale a vela quadra per le partenze lato Pomte messa non lo sostituisci con uno a vela tonda. Mi sembra un pó forzato essendo un binario di corsa.

RF


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: giovedì 17 settembre 2015, 14:46 
Non connesso

Iscritto il: venerdì 22 settembre 2006, 18:39
Messaggi: 211
Località: Casalecchio di Reno (Bo)
Sì, potrei proprio sostituirlo con un segnale su portale a due gabbie.

Grazie del suggerimento!
Nicola


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: martedì 22 settembre 2015, 21:42 
Non connesso

Iscritto il: venerdì 22 settembre 2006, 18:39
Messaggi: 211
Località: Casalecchio di Reno (Bo)
Buona serata agli amici del forum!

Il lavoro sulla lettura delle CV continua. Ho ripulito il codice che avevo scritto per il microcontrollore e grazie ad un simpatico oscilloscopio su scheda (link) che mi ha regalato quest'anno mia moglie per il mio compleanno sono riuscito ad acquisire l'andamento temporale della corrente assorbita. Ci ho lavorato un poco su con il mio programma di elaborazione dati preferito (link) ed ho aggiornato di conseguenza i filtri per il segnale di ACK. E questo è il risultato:

20150603.232933.706 r9999c 000028AC impl/ddx 1334 PT: cvget for 0
20150603.232933.707 r9999c 000028AC impl/ddx 1341 PT: enable booster output
20150603.232933.708 r9999c 000028AC impl/ddx 1351 PT: power on cycle
20150603.232933.709 r9999c 000028AC impl/ddx 1353 PT: start polling...
20150603.232933.709 r9999c 000028AC impl/ddx 1367 PT: sending 678 bytes checking value 0...
20150603.232934.610 r9999c 000028AC impl/ddx 1367 PT: sending 216 bytes checking value 1...
20150603.232935.277 r9999c 000028AC impl/ddx 1367 PT: sending 216 bytes checking value 2...
20150603.232935.944 r9999c 000028AC impl/ddx 1367 PT: sending 216 bytes checking value 3...
20150603.232936.017 r9999I 000028AC impl/ddx 1059 PT: ACK detected.
20150603.232936.023 r9999c 000028AC impl/ddx 1405 PT: ack = 1
20150603.232936.023 r9999c 000028AC impl/ddx 1407 PT: disable booster output
20150603.232936.034 r9999I cmdr024C OControl 0211 Program event...value=3

Ok, ora ci siamo anche sui valori. Purtroppo però essendo disattivata la proprietà "fastgetcv", in presenza di valori elevati del valore della CV controllata, i tempi di acquisizione sono troppo lunghi per i miei gusti. Pertanto ho deciso di abilitare "fastgetcv", ma il problema del +1 si è ripresentato di nuovo...

Però, guardando il log di rocrail, mi sono accorto di un comportamento secondo me anomalo:

20150603.233442.113 r9999c 00002FCC impl/ddx 1334 PT: cvget for 0
20150603.233442.113 r9999c 00002FCC impl/ddx 1341 PT: enable booster output
20150603.233442.114 r9999c 00002FCC impl/ddx 1351 PT: power on cycle
20150603.233442.114 r9999c 00002FCC impl/ddx 1353 PT: start polling...
20150603.233442.761 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.762 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.763 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.764 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.765 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.766 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.767 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.768 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.796 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.797 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.798 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.799 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.800 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.801 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.802 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.803 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.804 r9999I 00002FCC impl/ddx 1059 PT: ACK detected.
20150603.233442.870 r9999c 00002FCC impl/ddx 1405 PT: ack = 1
20150603.233442.870 r9999c 00002FCC impl/ddx 1407 PT: disable booster output
20150603.233442.885 r9999I cmdr0105 OControl 0211 Program event...value=4

Perché Rocrail impiega ben 17 passaggi per accorgersi che il segnale di ACK è attivo?
Devo studiare ancora un poco: purtroppo compilare RocRail richiede parecchio tempo, quindi il lavoro procede lentamente.

Nel frattempo, per non tediarvi ulteriormente con la programmazione, che con il modellismo c'entra solo in parte, vi faccio vedere qualcosa di curioso. Ricordate i primi post circa la linea principale di cui quella per Caprazzino è una diramazione? Se sì, dovreste anche avere presente il fatto che era pensata sul tracciato della vecchia linea Rimini-Novafeltria. Si da il caso che il primo giugno sia andato a Pennabilli con mia moglie ed una coppia di nostri carissimi amici. Partendo da Bellaria, una delle possibili strade è proprio la provinciale costruita sul sedime della vecchia linea.

Pur non avendo la possibilità di fermarmi per scattare le adeguate foto del caso, sono rimasto piacevolmente stupito della quantità di manufatti ancora esistenti. Per dare una idea anche a voi, ecco una piccola carrellata tratta da Google Maps.

Ex stazione di Villa Verucchio
Immagine

Immagine


Imbocco galleria a Ponte Verucchio
Immagine


Ex Stazione di Pietracuta
Immagine

Immagine


Ex stazione di Dogana
Immagine

Immagine

Potete trovare altre foto qui (link), sul sito di Ferrovie Abbandonate. Seppure in cattivo stato di conservazione, sono sicuramente un'ottima fonte di ispirazione per per il mio plastico. Mi sa proprio che prima o poi dovrò organizzare una spedizione fotografica per ottenere qualche particolare in più...

A presto!


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: martedì 29 settembre 2015, 21:52 
Non connesso

Iscritto il: venerdì 22 settembre 2006, 18:39
Messaggi: 211
Località: Casalecchio di Reno (Bo)
Buona serata agli amici del forum!

Finalmente sono riuscito a sistemare la lettura delle CV sul mio booster. La settimana scorsa ero effettivamente riuscito a leggere le CV in modalità lenta, ma i tempi di acquisizione erano troppo lenti per i miei gusti. La modalità "fastgetcv" offerta da RocRail avrebbe dovuto risolvere il problema, ma in realtà ne ha creato uno nuovo, legato al fatto che il programma leggeva sempre un valore in più rispetto al dovuto.

Fortunatamente sono riuscito a risolvere il problema!

Prima di tutto mi sono stufato di dover ricompilare tutte le volte TUTTO RocRail anche in presenza di minime variazioni di una porzione di codice secondaria. Di conseguenza, non me ne vogliano a male gli sviluppatori, ho disabilitato la ripulitura del codice a livello di makefile.

Ho pertanto ritoccato il file 'makefile' nella cartella 'rocrail', rimuovendo il comando

Codice:
$(MAKE) clean PLATFORM=$(PLATFORM) NATIVE=$(NATIVE)$(CS)


dalle righe 162-167 e 171, in pratica da così...

Immagine

a così...

Immagine

(guardate le foto ingrandite se volete vedere qualcosa...)

A questo punto, ogni volta che ricompilo il programma, il sistema si preoccupa soltanto dei file che ho modificato, così da mezzora di compilazione siamo passati ad un minuto. Ora sì che si ragiona!

Bene. Ora tocca alla funzione 'nmragetcvbyte' a cui si fa riferimento alla riga 495 di ddx.c. Questa funzione si occupa di inviare il segnale DCC per la lettura della CV ed aspettare il segnale di ACK corrispondente.

La parte incriminata della funzione parte intorno alla riga 1356, ovvero il ciclo di lettura vero e proprio. Immagino che le sviste di programmazione presenti siano legate ad una sedimentazione di diverse versioni, o almeno lo spero...

Dopo aver rimosso alcune inizializzazioni multiple della variale associata al segnale di ACK, la vera chiave di volta per il mio booster è stato abilitare il ciclo di attesa 'waitMM' anche in modalità 'fastgetcv'. Ovvero ho sostituito questo:

Codice:
SerialOp.flush(data->serial);
ack = scanACK(data->serial);
sendsize = __createCVgetpacket(cv, value, SendStream, start);
if( value % 10 == 0 || !fastcvget )
  TraceOp.trc( __FILE__, TRCLEVEL_MONITOR, __LINE__, 9999,\
   "PT: sending %d bytes checking value %d...", sendsize, value);
SerialOp.write(data->serial,SendStream,sendsize);
if (start)
  ThreadOp.sleep(240);
else if( !fastcvget )
  ThreadOp.sleep(40);
ack = 0;
/* wait for UART: */
ack=waitUARTempty_scanACK(data->serial);
for( i = 0; i < (fastcvget ? 5:120) && ack == 0; i++ ) {
  ack = scanACK(data->serial);
  if( !fastcvget )
    SerialOp.waitMM(data->serial,5000,100);
}


con questo:

Codice:
SerialOp.flush(data->serial);
sendsize = __createCVgetpacket(cv, value, SendStream, start);
if( value % 10 == 0 || !fastcvget )
  TraceOp.trc( __FILE__, TRCLEVEL_MONITOR, __LINE__, 9999,\
    "PT: sending %d bytes checking value %d...", sendsize, value);
SerialOp.write(data->serial,SendStream,sendsize);
if (start)
  ThreadOp.sleep(240);
else if( !fastcvget )
  ThreadOp.sleep(40);
/* wait for UART: */
ack = waitUARTempty_scanACK(data->serial);
for( i = 0; (ack == 0) && i < (fastcvget ? 5:120); i++ ) {
  ack = scanACK(data->serial);
  SerialOp.waitMM(data->serial,5000,100);
}


Non è molto diverso, ma è quel tanto che basta per fare la differenza! Ora posso finalmente scaricare il profilo di velocità della mia E191.003 FuoriMuro.

Immagine

Ed infatti, eccolo qui. Giusto qualche minuto di attesa e finalmente ho sotto mano la curva.
Ora posso sistemare la velocità massima e tutte le intermedie come si deve.

A presto!


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: mercoledì 30 settembre 2015, 7:01 
Non connesso

Iscritto il: sabato 27 ottobre 2007, 9:02
Messaggi: 2852
Località: Torino
Ciao Nicola, stai facendo un bel lavoro!
L'unica pecca è che stai andando troppo nel tecnico... :mrgreen: ...mi sa che, tolti io, Nuccio e forse una decina di altri utenti....con rispetto x gli altri utenti del forum...qui nessuno sa cos'è un make file ne tanto meno un ciclo for.... :lol: :lol: :lol: quindi non ti aspettare tanti commenti in merito. :wink:
Andando sul tecnico; la tua modifica in pratica rallenta la lettura rapida fastgetcv portandola alla lettura con timming normale e vanificandola, hai provato a giocare con i ritardi per trovare un compromesso tra velocità e affidabilità di lettura?
Per caricare in Eclipse e compilare il progetto di Rocrail, hai modificato dei sorgenti? (Lo so ... è una domanda sciocca ma non ci ho ancora provato....ergo...ti uso da "apripista" :mrgreen: :mrgreen: :mrgreen: )

Ciao
Despx


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: mercoledì 30 settembre 2015, 11:27 
Non connesso

Iscritto il: venerdì 22 settembre 2006, 18:39
Messaggi: 211
Località: Casalecchio di Reno (Bo)
Ciao Despx,
grazie per la tua risposta. Sono d'accordo sul fatto che questi argomenti possano non interessare a tutti, ma d'altra parte anche tu, Nucco e l'altra decina siete pure utenti del forum no? ;-)
Quanto al numero di commenti il tuo è già 1 ed io sono già contento così. E se anche dovesse restasse il solo nessun problema: magari più avanti su altri argomenti ci saranno altri commenti. :-)

Andiamo sul tecnico: sono d'accordo con te sul fatto che facendo così ho ritardato la lettura rapida e che si potrebbe giocare sui ritardi; posso sicuramente fare qualche prova. Ancora meglio sarebbe sostituire l'approccio di tipo polling con uno in stile interrupt così da essere del tutto asincroni, ma non vorrei stravolgere troppo il codice, soprattutto se qualcuno vorrà mai applicare una patch.

Infine, circa Eclipse, no, non ho modificato sorgenti di alcun tipo. Ho lavorato sulla release 9130 e gli unici ritocchi necessari affinché tutto girasse a dovere li ho fatti ai makefile.

A presto!
Nicola


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: mercoledì 30 settembre 2015, 13:04 
Non connesso

Nome: Andrea Brogi
Iscritto il: giovedì 12 gennaio 2006, 15:03
Messaggi: 1111
if (TroppoTecnico=DecisamenteTroppoComplicato) then {FineDivertimento}
elseif (Computer=Lavoro AND Computer=Fermodellismo) then exit{LavoroModellismo}
Void (FacciamoUnAltraCosa)

Macheronico un po generalizzato ma (spero) comprensibile :wink: :wink: :wink:

Poi servono anche queste cose in mezzo a legno, attrezzi, e binari.
Però un sistema che richiede di andare così a fondo per renderlo funzionale
mi da l'idea che sia un sistema intrinsecamente difettoso
e mi fa orientare verso scelte molto diverse...


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: mercoledì 30 settembre 2015, 14:38 
Non connesso

Iscritto il: venerdì 22 settembre 2006, 18:39
Messaggi: 211
Località: Casalecchio di Reno (Bo)
No, tranquillo, il digitale non è certo così complicato. :-D
E' solo che visto il lavoro che faccio, se non ci sono problemi, tendo a crearmeli. :roll:
E poi mi piace un sacco mettermi alla prova su questi argomenti.

L'approccio più veloce ed economico, secondo me, è un sistema come questo (link) collegato ad un programma di controllo come questo (link).

Nicola


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: mercoledì 30 settembre 2015, 16:09 
Non connesso

Iscritto il: giovedì 21 giugno 2012, 14:23
Messaggi: 3765
Località: Massa Finalese (MO)
Ci sono anch'io che capisco (più o meno, non capendo una cippa di DCC) quello che fai. E' che resto meravigliato!


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: mercoledì 30 settembre 2015, 17:43 
Non connesso

Iscritto il: venerdì 22 settembre 2006, 18:39
Messaggi: 211
Località: Casalecchio di Reno (Bo)
Se serve un aiuto, io son qui. Ma qui sul forum ci sono membri ben più preparati di me!
Nick

Inviato dal mio GT-I9060I utilizzando Tapatalk


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: mercoledì 30 settembre 2015, 17:43 
Non connesso

Iscritto il: sabato 27 ottobre 2007, 9:02
Messaggi: 2852
Località: Torino
No No Nicola, non mollare! Non devi mollare, continua a deliziarci! Con tutti i topic di fuffa che ci sono in questo forum, basta già solo il tuo per alzare la media oltre la sufficienza! :mrgreen:

Certo che l'interrupt sarebbe la soluzione ottimale per intercettare in tempo (quasi) reale l'evento tutavia, se da una parte semplifichi eliminando ritardi e amenità tipo delay(100), dall'altra bisogna stare attenti a mantenere in sincronia l'int con il main loop altrimenti va tutto a pallino....ci vorrebbero dei semafori ma si va a cadere nell'Ufficio Complicazioni Pratiche Semplici.... dopotutto meglio rimanere sul pooling... mica siamo in un critical event con RTOS.... :lol:

Continuo a seguirti con interesse....

Ciao
Paolo


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: giovedì 1 ottobre 2015, 23:10 
Non connesso

Iscritto il: venerdì 13 gennaio 2006, 17:29
Messaggi: 1801
Località: Torino
Ma scusa stai ricompilando il generatore dcc di rocrail su seriale ? Se si lascia perdere avrei comunque dei pesanti limiti sul segnale generato.


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: venerdì 2 ottobre 2015, 5:30 
Non connesso

Iscritto il: venerdì 22 settembre 2006, 18:39
Messaggi: 211
Località: Casalecchio di Reno (Bo)
Sì, é quello che sto facendo. Per ora non ho riscontrato mancanze. A quali limiti ti riferisci? Sono curioso :-)
NT in viaggio

Inviato dal mio GT-I9060I utilizzando Tapatalk


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: venerdì 2 ottobre 2015, 6:50 
Non connesso

Iscritto il: sabato 27 ottobre 2007, 9:02
Messaggi: 2852
Località: Torino
Se ho capito il senso della frase di Nuccio, vuole dire che, non tutti i tipi di pacchetti DCC possono essere generati usando la seriale. È un problema noto da tempo con tutti i programmi che usano questa tecnica. Al giorno d'oggi, anche la più "infima" centrale, magari realizzata con un Arduino, è più prestante.
Adesso ho capito il perché ti stai scontrando con i problemi di latenza....Nicola, lascia perdere questa strada e demanda la generazione del segnale DCC e la lettura dell'ack ad una elettronica dedicata collegata al PC via USB op COM op LAN.

Se non sai da dove partire....inizia da progetti già esistenti, ti basta mettere su google "rail DCC pic18” op "DCC Arduino".

Ciao
Despx


Top
 Profilo  
 
 Oggetto del messaggio: Re: PLASTICO: Il plastico di Caprazzino
MessaggioInviato: venerdì 2 ottobre 2015, 6:53 
Non connesso
Avatar utente

Iscritto il: giovedì 17 febbraio 2011, 16:03
Messaggi: 2205
Località: Agram
ma quanto dura un ciclo di pollig del mainloop? metti una traccia e vedi in ms. non sono fenomeni velocissimi, non sono sicuro che se vai ad interrupt guadagni chissá che...


Top
 Profilo  
 
Visualizza ultimi messaggi:  Ordina per  
Apri un nuovo argomento Rispondi all’argomento  [ 376 messaggi ]  Vai alla pagina Precedente  1, 2, 3, 4, 5, 6, 7 ... 26  Prossimo

Tutti gli orari sono UTC + 1 ora [ ora legale ]


Chi c’è in linea

Visitano il forum: massimo.s.1957 e 40 ospiti


Non puoi aprire nuovi argomenti
Non puoi rispondere negli argomenti
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi inviare allegati

Cerca per:
Vai a:  

Duegi Editrice - Via Stazione 10, 35031 Abano Terme (PD). Italy - Tel. 049.711.363 - Fax 049.862.60.77 - duegi@duegieditrice.it - shop@duegieditrice.it
Direttore editoriale: Luigi Cantamessa - Amministratore unico: Aldo Baldi - Direttori responsabili: Pietro Fattori - Daniela Ottolitri.
Registro Operatori della Comunicazione n° 37957. Partita iva IT 05448560283 Tutti i diritti riservati Duegi Editrice Srl