Trenineko: simulazione arrivi e partenze

Tutto sulla simulazione ferroviaria, da Train Simulator a Trainz al simulatore della E.444R

Moderatore: Redazione

Autore
Messaggio
Avatar utente
nineko
**
**
Messaggi: 1180
Iscritto il: ven 24 giu 2011 11:25
Località: Lodi
Contatta:

Re: Trenineko: simulazione arrivi e partenze

#31 Messaggio da nineko » mar 29 ott 2013 14:44

Non avevo pensato di rendere personalizzabili IF e tipi di treno, perché ero convinto di avere incluso tutti i casi più frequenti, e mi dispiace di essermi sbagliato. A questo punto, visto che un paio di suggerimenti validi sono arrivati tramite questo topic (il tuo e l'idea di Alessandro di mettere il quadro a schermo intero), appena avrò un po' di tempo provo a riprendere in mano il codice per vedere che cosa si può fare.

Sono molto contento, comunque, che tu apprezzi questo programma, seppur nella sua semplicità :)
Immagine
33% Trio Pluviofilo

Avatar utente
Trullo
**
**
Messaggi: 2025
Iscritto il: mar 20 gen 2009 16:05
Località: 15 km a nord della Madonnina

Re: Trenineko: simulazione arrivi e partenze

#32 Messaggio da Trullo » mar 29 ott 2013 14:53

Mi unisco ai complimenti, l'ho scaricato e nei prossimi giorni ci "giocherò" un po'
Per curiosità/deformazione professionale puoi dirci qualcosa di più sulle tecnologie usate per svilupparlo?
E mentre marciavi con l'anima in spalle
Vedesti un uomo in fondo alla valle
Che aveva il tuo stesso identico umore
Ma la divisa di un altro colore

Avatar utente
nineko
**
**
Messaggi: 1180
Iscritto il: ven 24 giu 2011 11:25
Località: Lodi
Contatta:

Re: Trenineko: simulazione arrivi e partenze

#33 Messaggio da nineko » mar 29 ott 2013 15:24

Puro e semplice Visual Basic 5, per garantire compatibilità da Windows 95 in avanti (e lo dico pur essendo un oppositore di Microsoft).

Tutto il codice gira intorno ad un controllo Timer, ed ogni 5 secondi l'orario di sistema viene confrontato con quelli dei treni in arrivo ed in partenza, memorizzati in due array (elenchi) separati ed ordinati in fase di caricamento del programma. Una volta individuato il primo treno (separatamente per arrivi e partenze) il cui orario è maggiore dell'orario di sistema, tale treno viene scritto nella prima riga del monitor corrispondente, e l'array viene fatto scorrere o fino ad occupare 10 righe o fino alla fine dei dati (per cui se sono memorizzati solo 9 treni il primo non verrà visualizzato due volte). Ci sono poi vari IF (no, non "Imprese Ferroviarie", ma IF nel senso di istruzione IF, "SE" in inglese) che fanno lampeggiare le lucine se ci si trova nell'intervallo da -45 a +15 secondi rispetto all'orario del treno. Niente magia nera o codice da arte della programmazione, a conti fatti è un programma estremamente semplice, ma che purtroppo ho avuto poco tempo di sviluppare. Paradossalmente, una delle cose su cui ho perso più tempo è stata la parte grafica, per ricreare in maniera fedele i monitor reali utilizzando un documento indicatomi da Alessandro (seppur con le variazioni del caso tra cui l'assenza dei loghi per motivi di copyright). La grafica è da sempre un mio tallone d'achille, sono capace di scrivere codice complicato senza pensarci due volte, ma non chiedetemi di disegnare, se dipendesse da me accoglierei ben volentieri il ritorno dei monitor a caratteri verdi, altro che Windows e tante palle. I computer devono fare i computer, se voglio vedere un film vado al cinema.

Una di queste notti spero di riuscire ad implementare le nuove funzionalità proposte.
Immagine
33% Trio Pluviofilo

Avatar utente
ALn 668-015
*
*
Messaggi: 194
Iscritto il: mer 05 giu 2013 11:22

Re: Trenineko: simulazione arrivi e partenze

#34 Messaggio da ALn 668-015 » mar 29 ott 2013 16:33

nineko ha scritto:Non avevo pensato di rendere personalizzabili IF e tipi di treno, perché ero convinto di avere incluso tutti i casi più frequenti, e mi dispiace di essermi sbagliato. A questo punto, visto che un paio di suggerimenti validi sono arrivati tramite questo topic (il tuo e l'idea di Alessandro di mettere il quadro a schermo intero), appena avrò un po' di tempo provo a riprendere in mano il codice per vedere che cosa si può fare.

Sono molto contento, comunque, che tu apprezzi questo programma, seppur nella sua semplicità :)

Perfetto! :D
Se hai bisogno di qualche suggerimento sulle sigle delle IF da aggiungere fammi sapere.

Ma quando riprenderai in mano i codici ed inserirai appunto le altre IF, tale modifica comporterà l'installazione da capo degli orari fatti da te oppure si può inserire tale modifica a quelli che mi sono creato io?

Avatar utente
nineko
**
**
Messaggi: 1180
Iscritto il: ven 24 giu 2011 11:25
Località: Lodi
Contatta:

Re: Trenineko: simulazione arrivi e partenze

#35 Messaggio da nineko » mar 29 ott 2013 17:03

Si può implementare in vari modi; personalmente, credo che le ipotesi più valide siano due:
  • usare due files esterni in cui scrivere i nomi delle IF e dei tipi di treno a proprio piacere, ma ciò renderebbe gli orari creati da qualcuno incompatibili con gli orari creati da qualcun'altro, a meno di copiare anche tali files esterni (ed è il motivo principe per cui non ho optato per questa soluzione fin dal principio, puntando al contrario su un elenco statico);
  • inserire le definizioni di IF e tipi di treno nel file dei dati stesso, sotto forma di LUT modificabile tramite il foglio di Excel. Probabilmente agirò così;
  • per completezza, cito la soluzione numero 3 che però non prendo nemmeno in considerazione, ovvero salvare IF e tipo di treno come qualsiasi altro valore testuale e modificabile a piacere per ogni treno. Per quanto estremamente semplice da un punto di vista della programmazione (paradossalmente, più semplice anche del sistema in uso adesso), questa soluzione farebbe lievitare le dimensioni dei files dei dati, e nonostante al giorno d'oggi l'unità di misura sia sempre più orientata verso il Terabyte io continuo e continuerò sempre a comportarmi da programmatore degno di questo nome, considerando l'ottimizzazione come un dovere, e poco importa se ci sono tanti fighetti che usano variabili a 64-bit per memorizzare un numero da 1 a 10. Io non lo faccio e non lo farò mai. Ho programmato su un Commodore 16, so quanto ciascun byte sia importante. Metto le mani avanti, se qualcuno dovesse propormi di salvare il file dei dati in formato XML potrei togliergli il saluto.
Immagine
33% Trio Pluviofilo

Avatar utente
sr
***
***
Messaggi: 12043
Iscritto il: mar 25 mag 2004 13:39
Località: milano (a est del Lambro Meridionale e a ovest della roggia Ticinello)

Re: Trenineko: simulazione arrivi e partenze

#36 Messaggio da sr » mer 30 ott 2013 7:33

Perchè non fai il salvataggio dei file in XML? :mrgreen:

(piuttosto di excel, userei CSV) :wink:
CONFRATELLO DELLA LOGGIA DEL CALAMARO®
Fondatore del CRRZFTz©
Comitato Richiesta Relazioni Zingarate Ferroviarie Tz

Andate in Transalp!

Avatar utente
Trullo
**
**
Messaggi: 2025
Iscritto il: mar 20 gen 2009 16:05
Località: 15 km a nord della Madonnina

Re: Trenineko: simulazione arrivi e partenze

#37 Messaggio da Trullo » mer 30 ott 2013 7:39

Non ho capito quali informazioni sono associate al codice numerico impresa ferroviaria e al codice numerico tipo treno
Se sono solo i nomi per esteso delle due entità, perchè non hai previsto di inserirle "in chiaro" già nell'excel? Rispetto alle altre informazioni che memorizzi, come origine e destinazione, la maggiore occupazione di spazio è relativamente trascurabile
E mentre marciavi con l'anima in spalle
Vedesti un uomo in fondo alla valle
Che aveva il tuo stesso identico umore
Ma la divisa di un altro colore

Avatar utente
nineko
**
**
Messaggi: 1180
Iscritto il: ven 24 giu 2011 11:25
Località: Lodi
Contatta:

Re: Trenineko: simulazione arrivi e partenze

#38 Messaggio da nineko » mer 30 ott 2013 15:46

sr ha scritto:piuttosto di excel, userei CSV
Oh, certamente un file .csv sarebbe infinite volte meglio di un file .xls, ma come specificato in un mio post precedente, il file di Excel viene completamente ignorato dal mio programma, è solo uno strumento che ho scritto per permettere di modificare facilmente il file con gli orari, che non è in formato .xls, ma è in un formato binario preparato da me, ancora più adeguato rispetto ad un file .csv, manipolato dalle macro in VBA del file di Excel stesso. Tutte le informazioni numeriche vengono codificate in maniera efficiente, ad esempio gli orari non vengono salvati come 3 campi distinti, ma vengono convertiti in secondi e divisi per 5, per essere salvati come una variabile a 16-bit. Scrivere "12:00:00" in un file .csv occupa come minimo 6 bytes, mentre nel mio formato binario ne uso solo 2. Quindi ok, accetto il tuo commento e confermo che .csv è meglio di .xls, ma rilancio dicendo che il mio formato è meglio di .csv :)

Per cui non fraintendere lo scopo di Excel, ancora una volta ripeto che non viene utilizzato per salvare i quadri orari, è un mero strumento di modifica di cui sfrutto la comoda struttra a celle per permettere un agevole inserimento manuale degli orari, ma di fatto sono le macro in VBA a funzionare come dei veri e propri programmi. Di fatto sì, avrei potuto scrivere un programma esterno a sé stante per modificare gli orari, creare le mie piccole tabelle ed ottenere lo stesso identico risultato. Ma come si dice in gergo, non ha senso reinventare la ruota.

Spero di avere fatto chiarezza.
Trullo ha scritto:perchè non hai previsto di inserirle "in chiaro" già nell'excel? Rispetto alle altre informazioni che memorizzi, come origine e destinazione, la maggiore occupazione di spazio è relativamente trascurabile
Il motivo è proprio la maggiore occupazione di spazio. Come dicevo prima, ciascun byte è importante, anche se è "relativamente trascurabile". Non mi interessa se adesso c'è chi fa il figo con hard disk da 50 terabytes. Salvare dati ricorrenti usando una LUT è un dovere di chi vuole scrivere un database efficiente. Pensa che avrei voluto fare la stessa cosa anche con i nomi delle stazioni... e non è escluso che lo farò nella prossima revisione del programma, così da ottimizzare ulteriormente il file dei dati.
Immagine
33% Trio Pluviofilo

Avatar utente
Trullo
**
**
Messaggi: 2025
Iscritto il: mar 20 gen 2009 16:05
Località: 15 km a nord della Madonnina

Re: Trenineko: simulazione arrivi e partenze

#39 Messaggio da Trullo » gio 31 ott 2013 6:04

Sicuramente sui nomi delle stazioni il risparmio di spazio sarà più efficace. L'importante è che la giusta preoccupazione per l'efficienza non vada a scapito di altri obiettivi di programmazione altrettanto "nobili" quali usabilità e integrabilità, naturalmente ... In questo senso la seconda delle opzioni che hai prospettato martedi pomeriggio mi sembra la migliore
E mentre marciavi con l'anima in spalle
Vedesti un uomo in fondo alla valle
Che aveva il tuo stesso identico umore
Ma la divisa di un altro colore

Avatar utente
nineko
**
**
Messaggi: 1180
Iscritto il: ven 24 giu 2011 11:25
Località: Lodi
Contatta:

Re: Trenineko versione 0.1 (2013-10-17 02:24:56)

#40 Messaggio da nineko » mar 05 nov 2013 3:29

Trenineko versione 0.2 (2013-11-05 03:37:20)
Il link per scaricare la nuova versione è, come sempre, nel primo post di questo topic. Attenzione: se avete fatto modifiche al vostro quadro orario, non sovrascrivete il vostro file test.dat con quello di esempio incluso nell'archivio. Il nuovo file di Excel è in grado di importare il vecchio test.dat, in maniera tale da non perdere le modifiche che avete fatto. Trenineko 0.2, a sua volta, è in grado di leggere file di dati nel vecchio formato, per cui non è comunque necessario convertire test.dat al nuovo formato, anche se può essere opportuno (vedi sotto).

Novità:
  • ottimizzato ulteriormente il file dei dati, salvando i nomi delle stazioni in una LUT: il file ora occupa meno della metà dello spazio che occupava in precedenza;
  • è ora possibile modificare le LUT relative ad imprese ferroviare e tipi di treno, utilizzando il secondo foglio del file di Excel;
  • è ora possibile modificare il messaggio scorrevole nella riga inferiore dei monitor arrivi e partenze, utilizzando il secondo foglio del file di Excel;
  • è ora possibile premere F11 dopo aver selezionato le schermate arrivi e partenze: non è una modalità a schermo intero, ma la schermata selezionata diventerà 4 volte più grande (vi sconsiglio di farlo se la vostra risoluzione è 1024×768 o meno, è opportuno usare da 1360×768 in su);
  • ottimizzate alcune funzionalità del codice e risolti alcuni bug (di cui uno piuttosto grave): il programma ora dovrebbe "girare meglio", per usare un termine tecnico.
Non-novità:
  • il file dei dati continua a chiamarsi test.dat per semplicità;
  • alcuni dei campi del file di Excel non sono ancora verificati rigorosamente, per cui inserire valori sballati potrebbe ancora portare ad errori di vario genere.
Buon divertimento :)
Immagine
33% Trio Pluviofilo

Avatar utente
ALn 668-015
*
*
Messaggi: 194
Iscritto il: mer 05 giu 2013 11:22

Re: Trenineko: simulazione arrivi e partenze

#41 Messaggio da ALn 668-015 » mar 05 nov 2013 9:03

Quindi io che ho modificato il mio quadro orario, devo solo lanciare l'eseguibile ed il nuovo file Excel? Ma i dati che ho inserito nel foglio Excel già presente nel mio database vanno copiati in automatico nel nuovo foglio Excel che hai fatto?

Avatar utente
nineko
**
**
Messaggi: 1180
Iscritto il: ven 24 giu 2011 11:25
Località: Lodi
Contatta:

Re: Trenineko: simulazione arrivi e partenze

#42 Messaggio da nineko » mar 05 nov 2013 10:27

Ti basta sostituire il file di Excel e l'eseguibile del programma, mantenendo il file test.dat da te creato. Come ho già detto in un paio di altri post, il contenuto vero e proprio del file Excel è irrilevante, poiché esso viene ignorato dal programma, io mi limito a sfruttare la comoda struttura a righe e colonne di Excel per modificare gli orari e le informazioni, ma il file EditorOrario.xls può anche essere integralmente svuotato se il file test.dat è stato salvato correttamente. Se dal nuovo file di Excel fai clic sul pulsante "Carica", i dati contenuti nel tuo file test.dat verranno importati, e potrai proseguirne la modifica. Il trucco per non fare confusione è davvero vedere EditorOrario.xls non come un foglio di dati, ma come un mero strumento di modifica in grado di leggere e scrivere il file test.dat, che è la vera chiave di tutto.
Immagine
33% Trio Pluviofilo

Avatar utente
ALn 668-015
*
*
Messaggi: 194
Iscritto il: mer 05 giu 2013 11:22

Re: Trenineko: simulazione arrivi e partenze

#43 Messaggio da ALn 668-015 » mer 06 nov 2013 14:59

Ho installato la nuova versione ed effettivamente il programma mi ha riportato tutti i dati del vecchio Excel al nuovo, quindi continuava a leggere il file test.dat che già avevo.
Solo che aprendo il nuovo file Excel non trovando più nessun dato, ho erroneamente premuto i tasti salva e carica con la conseguente cancellazione di tutto ciò che avevo fatto :wall: Va bè, perderò altro tempo per crearmi un altro quadro orario :D

E' invece possibile creare più quadri orari sullo stesso PC?
Magari creando due directory diverse. ::-?:

Avatar utente
nineko
**
**
Messaggi: 1180
Iscritto il: ven 24 giu 2011 11:25
Località: Lodi
Contatta:

Re: Trenineko: simulazione arrivi e partenze

#44 Messaggio da nineko » gio 07 nov 2013 2:05

Finché non implementerò la possibilità di gestire file con nomi diversi, puoi aggirare il problema rinominando tu stesso i quadri orari non utilizzati, dando loro altri nomi (ad esempio test1.dat).

E sì, avevo lasciato il file di Excel vuoto proprio di proposito, per dimostrare nero su bianco che i dati in esso riportati sono del tutto ininfluenti (volendo, puoi anche cancellarlo del tutto una volta creati i tuoi quadri orari).
Immagine
33% Trio Pluviofilo

Avatar utente
ALn 668-015
*
*
Messaggi: 194
Iscritto il: mer 05 giu 2013 11:22

Re: Trenineko: simulazione arrivi e partenze

#45 Messaggio da ALn 668-015 » gio 07 nov 2013 19:44

Ciao nineko, ho un grosso problema.
Ieri sera mi sono ritrascritto tutti gli orari e le destinazioni, creandomi un mio quadro orari.
Per mancanza di tempo non ho messo i binari, ma il programma andava lo stesso.
Stasera il programma andava, ovviamente senza i binari di arrivo/partenza; allora decido di cominciare ad inserili, ma aprendo il file Excel trovo solo i numeri dei treni e le destinazioni, ma senza più gli orari (anche se nel programma si vedevano ugualmente).
Ho inserito i binari salvando e caricando come sempre fatto ed a quel punto aprendo il programma mi è sparito tutto, mentre nel file Excel sono rimasti cmq i dati di partenza ed arrivo.
La mia domanda è, i miei dati sono andati tutti persi è devo riscrivere tutto da capo? :shock:

Rispondi

Chi c’è in linea

Visitano il forum: Nessuno e 2 ospiti