Author |
Topic |
|
Max
Junior Member
Italy
164 Posts |
Posted - 12/03/2024 : 11:03:07
|
Ciao Renzo, ho notato che nel pacchetto segnali 2007 non è presente il segnale di fine binario. Come si può fare ad aggiungerlo? Ho provato a prenderlo dal pack 1960 aggiungendo la stringa relativa al sigscr.dat, ma pur vedendolo da TSRE5, da simulazione non funziona e alla fine del tronco non vedo nessun segnale sul track monitor. Qualche suggerimento? Grazie. Ciao.
Massimo. https://openrailsactivities.wixsite.com/activities |
|
Max
Junior Member
Italy
164 Posts |
|
renzo428
Forum Admin
Italy
1601 Posts |
Posted - 13/03/2024 : 20:54:29
|
Ciao Massimo, è così, devi pero fare attenzione. Il file config è composto da tre parti, la prima è l'header che adesso non interessa, poi c'è il SignalTypes dove sono associate le luci agli stati ed infine il SignalShapes dove associ il relativo shape. Questo è del tipo:
SignalShape ( "Sgn1C_1V.s" "1C_1V - 1a Cat. e Avv. - 1 Vela " SignalSubObjs ( 4 SignalSubObj ( 0 "HEAD1" "Signal Head 1" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "FS3Light" ) ) SignalSubObj ( 1 "" "Code Extender" SigSubType ( SIGNAL_HEAD ) SigSubSType ( "FS3Virt" ) ) SignalSubObj ( 2 "" "Avviso accoppiato" SigSubType ( USER1 ) SignalFlags ( OPTIONAL DEFAULT ) ) SignalSubObj ( 3 "" "Distanza ridotta" SigSubType ( USER2 ) SignalFlags ( OPTIONAL ) ) ) ) Le parti in rosso sono i nomi dalle funzioni che devono essere presenti nella sezione precedente che associa luci e stati. Ovvero:
SignalType ( "FS3Virt" SignalFnType ( REPEATER ) SignalDrawStates ( 1 SignalDrawState ( 0 "VirtAux" ) ) SignalAspects ( 1 SignalAspect ( STOP "VirtAux" ) ) )
Naturalmente le stesse funzioni devono essere presenti nel file script che è quello che dice al programma come devono comportarsi:
SCRIPT FS3Virt
extern float block_state (); extern float route_set (); extern float next_sig_lr (); extern float dist_multi_sig_mr (); extern float sig_feature (); extern float state; extern float enabled; float next_shunting_state; float reduct_dist; float next_code; float dev; float avv;
avv = sig_feature (SIGFEAT_USER1); reduct_dist = sig_feature (SIGFEAT_USER2);
if (!enabled || block_state() != # BLOCK_CLEAR || !route_set()) { state = SIGASP_STOP; } else { next_shunting_state = dist_multi_sig_mr (SIGFN_SHUNTING, SIGFN_NORMAL); if (next_shunting_state ==# 0) dev = 4; else dev = next_shunting_state - 3; next_code = 8 * next_sig_lr (SIGFN_NORMAL) + next_sig_lr (SIGFN_REPEATER);
// Avviso occupato o sezione di blocco oltre il virtuale occupata
if (next_code ==# 25 || next_code ==# 16) state = SIGASP_STOP;
// Libero fino al prossimo segnale else {
// Con avviso accoppiato
if (avv) {
// R; Rp; G+G if (next_code ==# 0 || next_code ==# 8 || next_code ==# 19) state = SIGASP_STOP;
// G; Gx+Vx else if (next_code ==# 24 || next_code ==# 27 || next_code ==# 28 || next_code ==# 29) { if (dev !=# 4) { state = SIGASP_APPROACH_1; } else { if (reduct_dist) state = SIGASP_CLEAR_1; else state = SIGASP_CLEAR_2; } }
// GL; V else if (next_code ==# 30 || next_code ==# 63) { if (dev !=# 4) state = SIGASP_APPROACH_1; else state = SIGASP_CLEAR_2; } }
// Senza avviso accoppiato
else {
// R; Rp; G+G if (next_code ==# 0 || next_code ==# 8 || next_code ==# 19) state = SIGASP_STOP;
// G; Gx+Vx; GL; V else if (next_code ==# 24 || next_code ==# 27 || next_code ==# 28 || next_code ==# 29 || next_code ==# 30 || next_code ==# 63) { if (dev !=# 4) state = SIGASP_APPROACH_1; else state = SIGASP_CLEAR_2; } } } }
Ho preso un esempio sfortunato e piuttosto lungo ma è per dare una idea di quello a cui si deve fare attenzione quando si modificano questi file.
un caro saluto, renzo. |
|
|
Max
Junior Member
Italy
164 Posts |
Posted - 14/03/2024 : 08:44:37
|
Grazie mille Renzo, spiegazione davvero molto esauriente. A quasto punto però, visto che i segnali sono già stati tutti piazzati, ho timore a modificare i due file visto che non sono assolutamente un esperto. Ho aggiunto il segnale di fine binario che nel pacchetto non c'era e ho solo aumentato il numero delle shape, non sono però sicuro del suo corretto funzionamento. Riporto un esempio. Arrivo in deviata su binario tronco. Prima del segnale di avviso, sul track monitor vedo il successivo segnale di protezione rosso:
Superato il segnale di avviso, quello di protezione passa a rosso/giallo (terza vela spenta), mentre quello di fine binario non è presente sul track monitor:
Infine, a destinazione, vedo il segnale di fine binario dalla cabina ma non dal track monitor:
Cosa non sta funzionando?
Grazie.
Massimo. https://openrailsactivities.wixsite.com/activities |
|
|
e444
Junior Member
Italy
106 Posts |
Posted - 14/03/2024 : 11:57:19
|
Da quello che vedo dalle immagini e da quello che hai scritto, purtroppo non hai inserito i segnali in modo corretto. Il segnale di avviso dovrebbe avere due luci predisposte in questo caso a Giallo-Verde indicante via libera e che successivamente dovrai andare in deviata a 30 Km/h, invece nell'immagine si intravede il segnale di avviso che espone solo la luce gialla, il segnale di protezione non deve mostrare sul Track-Monitor la luce rossa, ma bensì deve essere visualizzata la luce verde, non deve cambiare da rosso a verde una volta che si supera il segnale di avviso, mentre sul percorso il segnale di protezione deve essere predisposto a rosso-giallo indicante che dovrai andare in deviata a 30 Km/h e che la deviata viene effettuata su un tronchino o binario corto o che il prossimo segnale è disposto sul rosso via impediata (tutto questo indipendentemente se è presente o no in caso di un tronchino il segnale di fine binario. Per quanto riguarda il segnale di fine binario spero che tu abbia utilizzato il segnale "1960FineBinario", se così è, allora il segnale è stato posizionato male, mi spiego meglio, il segnale è presente sul punto in cui l'hai messo, tant'è che si vede, ma in una posizione che non è stata registrata nel track-database (quindi anche se presente, ufficialmente non esiste), nel posizionarlo occorre fare attenzione perchè se si posiziona il segnale molto vicino al termine del binario tronco, questi potrebbe non essere visto/registrato sul track-database, occorre quindi mantenersi a una certa distanza dalla fine del binario, quindi ti consiglio di riposizionarlo. |
|
|
Max
Junior Member
Italy
164 Posts |
Posted - 14/03/2024 : 14:27:39
|
Grazie! il problema era proprio il posizionamento del segnale di fine binario, troppo al limite. Adesso sembra tutto ok:
avviso:
protezione:
fine binario:
Grazie ancora.
Massimo. https://openrailsactivities.wixsite.com/activities |
|
|
|
Topic |
|
|
|