Keyboard Shortcuts
Likes
- Jmriusers
- Messages
Search
Re: Changing signal Mast Aspect with jython
#jython
#signalheads
On 3/19/2025 9:28 PM, Canadian Locomotive Logistics via groups.io wrote:
Here is a list of signal mast i have set upSee JMRI's SignalMastFollower.py script. It uses: self.outSignal.setAspect(self.inSignal.getAspect()) This is what that script needs to do to make one signal mast reflect another signal mast's aspect. There are a number of requirements that make this a usable solution. One limitation is that the signal referred to in "self.outSignal" does NOT implement Signal Mast Logic! One can instead allow a script to "selectively-override" a mast's SML-defined Aspect information. One can implement Signal Mast Logic for the signal mast, and implement a "listener" to trigger a script bit that can determine when the aspect is not appropriate, and "override" the Aspect. Note that the mast might possibly show the original Aspect, briefly before showing the "overridden" Aspect. To avoid this, one _could_ implement something more like a "signalMastFollower.py" script, with optional Aspect-overriding, and displaying the overridden Aspect on the physical mast. This would probably not be appropriate for any kind of JMRI "automation", though, unless your automation mechanism does not rely on the overridden Aspect, or unless some other "hack" is used. (It _might_ be appropriate to create a new "signal mast" type for the "Prototype Signaling System", rather than hacking a Jython script, though! That might be a better solution than hacking the Aspect via Jython...) |
Locked
Re: Best Command Station to use with Decoder Pro
Heath,
?
?Not a command station, but my PR4 will reliably read all the CV's on a LokSound in about 20-25 minutes. That's not as fast as the LokProgrammer, because as Ross pointed out, the LokProgrammer uses a proprietary method. But it is quicker than at least some command stations.
?
What I did before the PR4, and still do to a lesser extent, is open the CV's tab and tell it to read the page. Then I find something else to busy myself with until it finishes.
?
HTH,
Steve
"Breezlys"
?
?
?
? |
Locked
Re: Best Command Station to use with Decoder Pro
Standard DCC is a one-way protocol: [NMRA] standard DCC command stations can
only send messages to DCC decoders and DCC decoders cannot send messages to [NMRA] standard DCC command stations (yes, there is RailCom, but that is something different). Normally, DCC decoder CVs cannot be directly "read". Reading CVs is done via a trick. The DCC command station asks if a bit is a one or zero and the decoder does (or does not) run the motor a little if the bit is a one and the command station detects the slight current draw. To read a CV byte, the DCC command station asks 8 times, once for each bit in the byte. This process takes time. All [NMRA] standard DCC command stations do this the same way, so all take the same amount of time. At Wed, 19 Mar 2025 17:17:52 -0700 "Human[c]ity Junction" <heath@...> wrote: -- Robert Heller -- Cell: 413-658-7953 GV: 978-633-5364 Deepwoods Software -- Custom Software Services -- Linux Administration Services heller@... -- Webhosting Services |
Changing signal Mast Aspect with jython
#jython
#signalheads
Here is a list of signal mast i have set up
does anyone have the syntax for jython to change the aspect of the signal.?
i’m not finding it anywhere.?
|
Locked
Re: Best Command Station to use with Decoder Pro
开云体育Heath, ? The NMRA method of ‘reading’ CV values is the JMRI read time ‘weak link.’ ? The LokProgrammer uses a proprietary method for quickly reading and writing CV values.? ?However, LokProgrammer isn’t compatible with JMRI. ? FWIW – you can read the CV values with LokProgrammer, then export them to a file that can be imported into JMRI.? ? ? Ross ? From: [email protected] <[email protected]>
On Behalf Of Human[c]ity Junction
Sent: Wednesday, March 19, 2025 8:18 PM To: [email protected] Subject: [jmriusers] Best Command Station to use with Decoder Pro ? I really like Decoder Pro. But, the ESU Programmer is significantly faster at reading/writing ESU decoders. Is there a command station or other computer to DCC interface that I can use with JMRI Decoder Pro that would give me similar read/write as the ESU Programmer? ? It is my understanding that the weak link of decoder pro is the computer to track interface. -- Heath @ Human[c]ity |
Locked
Best Command Station to use with Decoder Pro
I really like Decoder Pro. But, the ESU Programmer is significantly faster at reading/writing ESU decoders. Is there a command station or other computer to DCC interface that I can use with JMRI Decoder Pro that would give me similar read/write as the ESU Programmer?
?
It is my understanding that the weak link of decoder pro is the computer to track interface.
--
Heath @ Human[c]ity |
Re: Anyone Have a Schedule Strategy to Put Long Train Into Multiple Staging Cassettes?
#operationspro
开云体育I have never used Operations. But if you have a track with removable cassettes, why not set the track length to a much higher value, for example 24 cars? Daniel On 2025-03-19 22:20, Ken Heywood via
groups.io wrote:
|
Anyone Have a Schedule Strategy to Put Long Train Into Multiple Staging Cassettes?
#operationspro
My staging cassette will accept maybe six 40ft boxcars.
I'd like my daily turn to drag more than just six cars to staging.
Right now, ops build will only populate a train for that staging "track" capacity.
Has someone developed a strategy to select multiple cassettes for destination rather than the default empty one?
I tried to figure out using "alternate" track but mind twists in a knot.
?
The cassette is designated "staging".
Should it be designated something else to enable a strategy?
--
Ken NYNH&H, Old Colony Division, Cape Cod Branch (1949-1959) Loconet * JMRI 5.11.4 * OSX,Win10,Ubuntu Blog: ?
Youtube:
|
Re: Block occupancy without resistive wheelsets
Yes, there is a"software" solution ... rather two solutions now.
Steve_G added a "ghost" block to be connected to a turnout.
When both real detectors on either side of the turnout are active, the "ghost" is active.
?
I haven't used the "ghost" as my layout predates that feature.
I summarize my "software" approach in my blog ?...
--
Ken NYNH&H, Old Colony Division, Cape Cod Branch (1949-1959) Loconet * JMRI 5.11.1 * OSX,Win10,Ubuntu Blog: ?
Youtube:
|
Re: How to edit script, re-exec without restarting?
#scripting
I don't know the best way to remove old listeners, but I have tested this and it seems to work.
Jython variables that are not within a class are global for the duration of the JMRI session. The first run will create the listener. ?Subsequent runs will remove the old listener and add a new one. Dave Sand ----- Original message ----- From: stevemac <steveo@...> Subject: [jmriusers] How to edit script, re-exec without restarting? #scripting Date: Wednesday, March 19, 2025 11:06 AM I'm working on a script to facilitate virtual block handling (time before unoccupied, etc) by considering time entered and exited and block length. Since every car being pulled draws power I can estimate how long it will be in a virtual block (assuming same speed). ? The script is loaded at startup and adds property change listeners. ? Since I'm learning JMRI I have to make incremental changes and every time I have to restart since the old listener is still active. ? Maybe I could save my chained listener objects in a memory and check if it's there if I re-execute the script but wanted to check with experts first. Is there any advice for avoiding a restart? |
Re: The future of control and automation - thoughts?
With tiny cameras in our phones, and AI, and ever higher integration, someday soon it should be possible to have a camera in every loco, and have it run on clear track, obey signals if they are used, and stop short of other trains or end of track. I enjoy running my trains manually, but my loop to loop railroad doesn't lend itself to having a train or two run in the background while I switch (shunt) cars or change motive power. The railroad is much more enjoyable when more than one train runs, in my opinion. But, I make mistakes when I try to run two or three at a time by myself. -- Don Weigt Connecticut |
Re: How to edit script, re-exec without restarting?
#scripting
stevemac,
?
The document at provided two implementations of () and one of those might be used as your script closes down for the next trial run.
?
If your development is still at the stage of unexpected termination, this idea might not be very useful.
?
Suggestions for all beginning Jython programmers: Keep the Console window open and at least partially visible and put in a lot of print or log statements.
?
Cliff in Baja SoCal |
Re: Block occupancy without resistive wheelsets
开云体育Brsidesa, you are trusting the operator to run at a very precise speerd. Probably impossible. Rspecially with track conditions and other issues. ? Dana Zimmerli Z System Designs ? From: [email protected] <[email protected]> On Behalf Of Dave Sand
Sent: Tuesday, March 18, 2025 8:18 PM To: [email protected] Subject: Re: [jmriusers] Block occupancy without resistive wheelsets ? Operations has a max train length value. ?This is used to limit train sizes between switching locations. ? Dispatcher has a max train length for automatically controlled trains. ? I am not aware of any other places where train length might be stored. ? ? Dave Sand ? ? ----- Original message ----- From: "p.lavers via groups.io" <p.lavers=[email protected]> Subject: Re: [jmriusers] Block occupancy without resistive wheelsets Date: Tuesday, March 18, 2025 9:48 PM ? That JMRI has the facility to store the train length. This would allow the calculation of the position of the end of the train. ? |
How to edit script, re-exec without restarting?
#scripting
I'm working on a script to facilitate virtual block handling (time before unoccupied, etc) by considering time entered and exited and block length. Since every car being pulled draws power I can estimate how long it will be in a virtual block (assuming same speed).
?
The script is loaded at startup and adds property change listeners.
?
Since I'm learning JMRI I have to make incremental changes and every time I have to restart since the old listener is still active.
?
Maybe I could save my chained listener objects in a memory and check if it's there if I re-execute the script but wanted to check with experts first.
Is there any advice for avoiding a restart? |
Re: Signal Mast Logic
#sml
David, Step 1: ?Use the Layout Editor "Tools -> Check" menu items to clean up the non-contiguous blocks. Step 2: ?Run the GrandReset.py script. ?This will delete all of the transits, sections, SML and block paths. ?After doing a Store and re-start, use "Auto Generate Signaling Pairs" in the Signal Mast Logic table menu to create new SML. I have not looked at all of the signals yet, but it appears that the inner loop signals are all set for counter clockwise traffic. ?If so, that explains why the buffer signals have no SML. ?There is no source signal for clockwise traffic. Dave Sand ----- Original message ----- From: "David Smith via groups.io" <daversmth=[email protected]> Subject: [jmriusers] Signal Mast Logic Date: Wednesday, March 19, 2025 6:43 AM Hi All, ? I have added the panel file ?exhib.xml to the David Smith folder in ProblemsBeingWorked? There are some issues with some of the signal masts. Could someone please advise what the problem may be ? ? Buffer masts Mst_Buff_SdS4, Mst_Buff_SdS5, Mst_Buff_SdS6 are set to Unknown ? Mst_SE3, Mst_SE2, Mst_SW3e, Mst_SW3f, Mst_W4 signal logic does not see other masts correctly ( I am aware that I could fix the issues by manually editing the signal logic but would prefer not to ) ? Can I also please ask, if ?I add a mast that is not visible on the panel, is there a way to see or edit it afterwards ? ? Also, can I ask why all of the signal heads appear in the Turnouts table ? ? Thanks Dave |
Re: The future of control and automation - thoughts?
Speaking of WS2812 3-color LED controller IC's, RR-CirKits offers an LCC-based signal controller for their "Simple Serial?Signal Bus" that controls signal LEDs using these inexpensive IC's!
?
Even if signals & switch controllers were wireless, you'd still have to wire power to them.
?
And while controlling track switches via the DCC track bus, using stationary decoders, simplifies and saves wiring, running a train against such a switch would short out both the track and the means by which to rectify the problem from the throttle/panel.
?
-- Andy |
Re: Signal Mast Logic
#sml
If it helps when looking at the panel, the script below will initalise all the sensors and points to a known value.
?
import jmri
vSnsLst=['V_E1a', 'V_E1b','V_E2a','V_E2b','V_E2c','V_E3a','V_E3b','V_E3c','V_E4',\
? ? ? ? ?'V_NE1a','V_NE1b','V_NE1c','V_NE2a','V_NE2b','V_NE2c','V_NE2d',\ ? ? ? ? ?'V_NE3a','V_NE3b','V_NE3c','V_NE3d','V_NE4a','V_NE4b','V_NE4c','V_NE4d',\ ? ? ? ? ?'V_NW1a','V_NW1b','V_NW2','V_NW3','V_NW4a','V_NW4b',\ ? ? ? ? ?'V_SE1a','V_SE1b','V_SE2a','V_SE2b','V_SE3a','V_SE3b',\ ? ? ? ? ?'V_SE4a','V_SE4b','V_SE5a','V_SE5b','V_SE6a','V_SE6b',\ ? ? ? ? ?'V_SW1a','V_SW1b','V_SW1c','V_SW1d','V_SW1e','V_SW1f',\ ? ? ? ? ?'V_SW2a','V_SW2b','V_SW2c','V_SW2d','V_SW2e','V_SW2f',\ ? ? ? ? ?'V_SW3a','V_SW3b','V_SW3c','V_SW3d','V_SW3e','V_SW3f',\ ? ? ? ? ?'V_SW4a','V_SW4b','V_SW4c','V_SW4d','V_SW4e','V_SW4f',\ ? ? ? ? ?'V_SdE','V_SdN3a','V_SdN3b','V_SdN4a','V_SdN4b','V_SdN5a','V_SdN5b',\ ? ? ? ? ?'V_SdNE1a','V_SdNE1b','V_SdNE2a','V_SdNE2b',\ ? ? ? ? ?'V_SdNW1a','V_SdNW1b','V_SdNW2a','V_SdNW2b',\ ? ? ? ? ?'V_SdNxa','V_SdNxb','V_SdNxc','V_SdNxd','V_SdNxe',\ ? ? ? ? ?'V_SdS1a','V_SdS1b','V_SdS2a','V_SdS2b','V_SdS3a','V_SdS3b',\ ? ? ? ? ?'V_SdS4a','V_SdS4b','V_SdS5a','V_SdS5b','V_SdS6a','V_SdS6b',\ ? ? ? ? ?'V_W1a','V_W1b','V_W1c','V_W1d','V_W1e',\ ? ? ? ? ?'V_W2','V_W3','V_W4a','V_W4b'] for sns in vSnsLst:
?sensors.provideSensor(sns).setState(4) print '## All Sensors initialised to Inactive ##' ptLst=['Pt_E1_NE1','Pt_E1_SE1','Pt_E1_SdN','Pt_E2_SE3','Pt_E3_SE5',\
? ? ? ?'Pt_NE1_NE2','Pt_NE2_NE1','Pt_NE2_NE3','Pt_NE3_NE4','Pt_NE4_NE3','Pt_NE4_SdNa','Pt_NE4_SdNb','Pt_NE4_SdNc',\ ? ? ? ?'Pt_SE1_SdS1','Pt_SE1_SdS2','Pt_SE1_SdS3','Pt_SE6_SdS4','Pt_SE6_SdS5','Pt_SE6_SdS6',\ ? ? ? ?'Pt_SW1_SW2','Pt_SW2_SE3','Pt_SW2_SW1','Pt_SW2_SW3','Pt_SW3_SE5','Pt_SW3_SW4','Pt_SW4_SW3',\ ? ? ? ?'Pt_W1_SdNa','Pt_W1_SdNb','Pt_W4_SdNa','Pt_W4_SdNb','Pt_W4_SdNc'] class ds_init_pts(jmri.jmrit.automat.AbstractAutomaton):
? def handle(self): ? ? for pt in ptLst: ? ? ? turnouts.provideTurnout(pt).setState(2) ? ? ? self.waitMsec(200) ? ? print '## All Points initialised to Closed ##' ? ? return False a=ds_init_pts()
a.start() |
Re: The future of control and automation - thoughts?
Regarding Bluetooth control:? is it possible to control more than 1 locomotive at the same time from a single throttle over Bluetooth with any of the current systems?? I don't have any experience with any of them.
?
Also, I'd just like to add that while some people certainly aren't interested in automatic operations - and that's fine - other people do like automation, and that's fine too.? I personally loved the challenge of setting up my layout so it could be operated fully manually, semi-automatically, or fully automatically, and enjoy using it in any of those modes depending on how I feel at the time.? That's the beauty of "My Railroad, My Rules", and the great thing about the flexibility of JMRI.
?
Cheers,
Trevor. |
Re: Block occupancy without resistive wheelsets
Roger, With turnouts in a separate block, and not even very long trains, you'd see the occupancy indicator of the turnout go off while both blocks at either side remain on - unless there's added logic. Wouter On Wed, 19 Mar 2025 at 12:17, Roger Thomas via <rogert=[email protected]> wrote:
|
Re: The future of control and automation - thoughts?
Same here. OperationsPro is my sole use of JMRI these days. (And occasionally DecoderPro, but mostly LokProgrammer)
?
So in that vein, I've begun to wonder if I could use AI (namely, v0.dev) to write code modifications for OpsPro to mold it more to my niche-prototype likings. Would love to have suggestions on how specifically to do so if anyone has any, as I'm willing to learn but would prefer not to if I can help it. Am the wrong kind of engineer by trade!
?
More to OP's original question, I think Bluetooth is the future (especially for loco-to-loco comms) but the current offerings (namely Blunami & RailPro) are neither mature nor featured enough to get me to switch from DCC.
?
Isaac |