开云体育


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:

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:


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.

sen = sensors.getSensor('LNT-Jython')

# See if the listener has been created.
try:
??? appListener
except NameError:
??? appListener = None

if appListener:
??? # remove listener from objects
??? sen.removePropertyChangeListener(appListener)

appListener = SomeListenerClass()

print 'Listener = {}'.format(appListener)

# add new listener to objects
sen.addPropertyChangeListener(appListener)

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:
My mainline freights always have a last car with a FRED which is drawing power. A lighted caboose would be the same. So the occupancy light trips as soon as the loco enters, and doesn't release until the last car leaves. No need for resistor wheels on intermediate rolling stock.


Re: The future of control and automation - thoughts?

 

But also remember that a lot of us like to drive the trains and operate the layout entirely manually. Automation holds absolutely no attention from me.??
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


Re: The future of control and automation - thoughts?

 

At Wed, 19 Mar 2025 04:55:45 -0400 "Mick Moignard" <mick@...> wrote:

Don't forget that Soundtraxx offer Bluetooth-controllable decoders as well.

But also remember that a lot of us like to drive the trains and operate the
layout entirely manually. Automation holds absolutely no attention from me.
Sometimes it can be more interesting to have an additional train or two
operated "by the computer" along with the one mnually operated train.


I'd also point out that a software controlled block detection which attempts
to detect when a block ceases to be occupied by seeing the loco, and
estimating block clearance by working with throttle setting and train length
is bound to fail - derailed trains, split trains, train stopping in section,
not moving at the expected speed, and so on. All of those are why the
prototype would only rely on actual detections, and then fail safe. Isn't it
just easier and waaaaay faster and probably cheaper too, as well as more
accurate and prototypical to add resistor wheel sets to the last vehicle in
a train, typically a caboose/brake van or parlour car?
It is effectively prototypial to have "resistive" wheelsets, if you count a
solid steel axle as a "resistor"...


Mick
________________________________
Mick Moignard
Specialising in DCC Sound
m: +44 7774 652504

The week may start M,T but it always ends WTF.







--
Robert Heller -- Cell: 413-658-7953 GV: 978-633-5364
Deepwoods Software -- Custom Software Services
-- Linux Administration Services
heller@... -- Webhosting Services


Re: Block occupancy without resistive wheelsets

 

The dispatcher functionality was only implemented from 5.10. I need to update and have a look. I was impressed by which implements a solution in the detector hardware (arduino) to calculate (estimate) the end of train position. It will be interesting to compare all the options!?


Re: Current state of DMX support on Apple Silicon Macs? #mac-m1 #powerline

 

Returning to the original question in this thread: Would an Apple Silicon Mac, e.g. an M4, be able to run a DMX512 connection natively?

I’ve made some more progress on this: I have been able to set up a M1 Mac with the right native libraries (as opposed to x86_64 Intel libraries) and JMRI is able to make a HID connection to another device in the same way an Anyma connection would be made. So that works.

I think the answer is “Yes, if the Mac is set up with native libraries”. I don’t have an actual Anyma DMX512 system to check with, so I can’t be 100% sure.

Bob

Bob Jacobsen
rgj1927@...