Keyboard Shortcuts
ctrl + shift + ? :
Show all keyboard shortcuts
ctrl + g :
Navigate to a group
ctrl + shift + f :
Find
ctrl + / :
Quick actions
esc to dismiss
Likes
- Jmriusers
- Messages
Search
Re: DecoderPro Opens every time as a new install
Thanks Cliff, Quick question, are you using a password on the windows 10 log in? ? I noticed earlier that when I log in using the club password, and since there is no internet connection, Windows puts up a message after it accepts the login password that it is creating a temporary profile.? I suspect this is why Windows keeps making the new temp folder each time it is started. I’ve ordered an inexpensive Wi-Fi router to connect to the PC (this PC has an Ethernet port but no wifi card) to use my cell phone to connect to the internet to see if this will correct the problem. George Ronn On Fri, Mar 28, 2025 at 1:13 PM Cliff Anderson via <cliffaa=[email protected]> wrote:
|
Re: DecoderPro Opens every time as a new install
George,
?
Your log shows a folder named "C:\Users\TEMP.WINDOWS-T0ML932.003\JMRI" that Dave refers to as a "sandbox" and this suggests that some antivirus might have interfered with either the installation of the distributed folder or the execution of the program app.??
?
Since you stated that your club does not have an internet service connection, the antivirus suggestion might be a misleading rabbit hole, but checking for that possibility could provide some new clues. ?Some other program running or or some setting on your computer has forced that decision at run time. ?
?
Our club does not have an internet connection either.? We run PanelPro 5.10 on a Windows10 computer for the layout and DecoderPro 5.11.3 on a windows 7 computer for our workbench.? Both computers using Zulu Java version 17 with only a few hiccups during the installation process.? ?The layout computer is hardwired to the WiFi router.? There is no antivirus running on either machine.??
?
The layout and the workbench both use Digitrax DCS 210 connections, but that is extraneous to this puzzle.
?
Updates are carried in on memory sticks but one member has been advocating using a cellphone hotspot connection.? We have not tried that.
?
Cliff in Baja SoCal |
Re: DecoderPro Opens every time as a new install
开云体育Might also be worth checking that this IS Windows running stand-alone on a pc, and not virtual Windows environment under some other OSPhil F On 28 Mar 2025, at 17:09, Dave Sand via groups.io <ds@...> wrote:
|
Re: DecoderPro Opens every time as a new install
George, According to the messages.log file, Windows is launching JMRI in what is known as a "sandbox". ?This is an isolated and temporary environment. ?When JMRI is stopped, the sandbox is destroyed. Since I rarely use Windows, someone else will need to figure out is happening. In the meantime, you can look at Windows S Mode: ?. This might be forcing JMRI into a sandbox. You can also look at any anti-virus settings., ?Dave Sand ----- Original message ----- From: "Glikestrains via groups.io" <Glikestrains=[email protected]> Subject: Re: [jmriusers] DecoderPro Opens every time as a new install Date: Friday, March 28, 2025 11:09 AM Dave, the JMRI under the user name path is completely blank. ?Most of the folders/files you listed are available under the Program Files (x86) folder but Log is not one of them. ? if I run Decoder Pro it creates all the folders and files you specified in a temporary directory that is created each day the PC starts up. ?This PC does not have access to the internet, so I am going to copy the message file to a thumb drive and load it when I get home. ? I suspect that the lack of internet service to this PC may be the source of the problem as I believe windows is creating the new temp folder each time the PC is started. ? George Ronn |
Re: DecoderPro Opens every time as a new install
Dave, the JMRI under the user name path is completely blank. ?Most of the folders/files you listed are available under the Program Files (x86) folder but Log is not one of them.
?
if I run Decoder Pro it creates all the folders and files you specified in a temporary directory that is created each day the PC starts up. ?This PC does not have access to the internet, so I am going to copy the message file to a thumb drive and load it when I get home.
?
I suspect that the lack of internet service to this PC may be the source of the problem as I believe windows is creating the new temp folder each time the PC is started.
?
George Ronn |
Re: Script output delayed
#scripting
The logic runs each time the sensor changes state. You can modify the propertyChange function to check the new state.
Use INACTIVE for the sensor becoming inactive. You can simplify the signal mast aspect commands by combining the getSignalMast and setAspect commands.
Dave Sand ----- Original message ----- From: "Canadian Locomotive Logistics via groups.io" <CanadianLocomotiveLogistics=[email protected]> Subject: Re: [jmriusers] Script output delayed #scripting Date: Thursday, March 27, 2025 8:54 PM I'm finding the sensor trips the script, but... ? The log? is showing multiple events.... ? I do have the 'Delay to Inactive' on the sensor set to 60000 ? With this setting, I thought the code would run through once, and then wait for the next active. ? 21:42:36,534 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 12, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:46,368 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:46,635 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:46,904 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:47,179 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:47,447 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:51,535 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:43:06,533 rit.jython.exec.AbstractAutomatonDemo INFO ?- Setting Signal Mast, Table 10, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:43:21,534 rit.jython.exec.AbstractAutomatonDemo INFO ?- Setting Signal Mast, Table 12, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:43:36,535 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 12, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:43:51,536 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6]? |
Re: YouTube Video of JMRI Running Auto Train
Thanks, Mick.? Enjoyed watching a couple of the McKinley Railway videos.
?
That's quite an ambitious project, and it's fun to see where he's going with it.? I see he's using RFID to track individual "carriages"? and Train Controller software.
?
I'm using BDL168s for detection, so I don't have the identification feature he's enjoying.? I'm also deep enough into JMRI that I won't be changing my control software.? I may be adding some IR sensors for more precise train stopping later.
?
I've saved a link to this for future reference.
?
Thanks again.
Bill
, |
Re: Script output delayed
#scripting
I'm finding the sensor trips the script, but...
?
The log? is showing multiple events....
?
I do have the 'Delay to Inactive' on the sensor set to 60000
?
With this setting, I thought the code would run through once, and then wait for the next active.
?
21:42:36,534 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 12, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:46,368 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:46,635 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:46,904 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:47,179 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:47,447 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:42:51,535 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:43:06,533 rit.jython.exec.AbstractAutomatonDemo INFO ?- Setting Signal Mast, Table 10, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:43:21,534 rit.jython.exec.AbstractAutomatonDemo INFO ?- Setting Signal Mast, Table 12, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:43:36,535 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 12, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6] 21:43:51,536 rit.jython.exec.AbstractAutomatonDemo INFO ?- Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal [__builtin__$SignalLogic$6]? |
Re: Script output delayed
#scripting
here is where i stand now....
I need to split the routine of the signal changing...
?
I'll put another sensor at another location to rest the signals to 'Stop Signal' instead of just waiting for a time.
?
But for now, this is great, thank you
?
This at least lets the engineer 'see' the signal change.
?
Maybe for the time, I can change the resetting of the signals to only be done when the sensor becomes inactive?
?
Thou i did the editing, I'm still not 100 percent in understanding. If i had to start from scratch, I could not do it.
# Use log.info messages instead of print messages. ?This insures that the script messages are # included in the JMRI System Console. from org.slf4j import LoggerFactory log = LoggerFactory.getLogger("jmri.jmrit.jython.exec.AbstractAutomatonDemo") log.info('Start Demo')
# Run the signal logic in a separate thread to enable delays between steps.
# The logic runs one time and quits when done. It is started by an occupancy sensor change. class SignalLogic(jmri.jmrit.automat.AbstractAutomaton): ? ? def init(self): ? ? ? ? return ? ? def handle(self):
? ? ? ? log.info("Setting Signal Mast, Table 10, Track 5, West Bound set to Limited Clear") ? ? ? ? mast_1 = masts.getSignalMast('Signal Mast, Table 10, Track 5, West Bound') ? ? ? ? mast_1.setAspect('Limited Clear') ? ? ? ? self.waitMsec(15000) ? ? ? ? log.info("Setting Signal Mast, Table 12, Track 5, West Bound set to Limited Clear")
? ? ? ? mast_2 = masts.getSignalMast('Signal Mast, Table 12, Track 5, West Bound') ? ? ? ? mast_2.setAspect('Limited Clear') ? ? ? ? self.waitMsec(15000) ? ? ? ? log.info("Signal Bridge, Table 12, Track 5, West Bound set to Limited Clear")
? ? ? ? mast_3 = masts.getSignalMast('Signal Bridge, Table 12, Track 5, West Bound') ? ? ? ? mast_3.setAspect('Limited Clear') ? ? ? ? self.waitMsec(15000) ? ? ? ? log.info("Signal Bridge, Table 11, Track 5, West Bound set to Limited Clear")
? ? ? ? mast_4 = masts.getSignalMast('Signal Bridge, Table 11, Track 5, West Bound') ? ? ? ? mast_4.setAspect('Limited Clear') ? ? ? ? self.waitMsec(30000)
? ? ? ? log.info("Setting Signal Mast, Table 10, Track 5, West Bound set to Stop Signal")
? ? ? ? mast_1 = masts.getSignalMast('Signal Mast, Table 10, Track 5, West Bound') ? ? ? ? mast_1.setAspect('Stop Signal') ? ? ? ? self.waitMsec(15000) ? ? ? ? log.info("Setting Signal Mast, Table 12, Track 5, West Bound set to Stop Signal")
? ? ? ? mast_2 = masts.getSignalMast('Signal Mast, Table 12, Track 5, West Bound') ? ? ? ? mast_2.setAspect('Stop Signal') ? ? ? ? self.waitMsec(15000) ? ? ? ? log.info("Signal Bridge, Table 12, Track 5, West Bound set to Stop Signal")
? ? ? ? mast_3 = masts.getSignalMast('Signal Bridge, Table 12, Track 5, West Bound') ? ? ? ? mast_3.setAspect('Stop Signal') ? ? ? ? self.waitMsec(15000) ? ? ? ? log.info("Signal Bridge, Table 11, Track 5, West Bound set to Stop Signal")
? ? ? ? mast_4 = masts.getSignalMast('Signal Bridge, Table 11, Track 5, West Bound') ? ? ? ? mast_4.setAspect('Stop Signal') ? ? ? ? return False
# Listen for changes to an occupancy sensor. ?When a change occurs, create and run the signal logic.
class SensorListener(java.beans.PropertyChangeListener): ? ? def propertyChange(self, event): ? ? ? ? SignalLogic().start() # Get a sensor
sensor = sensors.provideSensor('N4S55') #? # Check for existing listeners
try: ? ? demoListener except NameError: ? ? # Create new listener variable ? ? demoListener = None # Remove the old listener if it exists.
if demoListener is not None: ? ? # remove the listener from the sensor ? ? sensor.removePropertyChangeListener(demoListener) # Create a new listener and add it the sensor.
demoListener = SensorListener() sensor.addPropertyChangeListener(demoListener) log.info('Demo setup is done')
|
Re: Script output delayed
#scripting
Yes, making the changes to demo should verify that things are working. I assume that you are going to want this kind of logic for more than one occupancy sensor. ?I have expanded the script to support any number of sensors and any combination of signal masts. ?The new file is at?/g/jmriusers/files/ProblemsBeingWorkedOn/dsand/Demo-v2.py Some comments about the changes: Lines 12-14: This is a list of the occupancy sensors. ?For testing, I used "provideSensor" but these should be "getSensor" with the user names instead of system names. Lines 19-24: ?This is a Python dictionary that has the sensor name as a key and a list of tuples as the value. ?A tuple is a short list of values. ?In this case the signal mast user name, the aspect name and the number of seconds to wait before setting the aspect. ?The second entry shows everything on one line. ?The first entry shows how to split the line if it becomes too long. Lines 31-35: ?The "setup" function is passed the sensor name and the new state. ?The state will be 2 for Active and 4 for Inactive. ?The name is used to select the proper actionList entry. ?The current logic in the "handle" function runs for both the sensor becoming active and inactive. ?Since I don't understand what you are actually trying to do I decided to include the sensor state in case it is needed. Line 38: ?Convert the value (a list of tuples) into a Python list with a row for each tuple. Line 40: ?This splits the tuple into three variables. Lines 49-55: ?Expand the "propertyChange" event to extract the data, create the SignalLogic instance, pass the data and give it a name. Lines 65-75: ?Use the sensorList to remove old listeners and add new listeners. Here is the console log with the changes. 17:44:41,972 rit.jython.exec.AbstractAutomatonDemo INFO? - Start Demo [AWT-EventQueue-0] 17:44:41,983 rit.jython.exec.AbstractAutomatonDemo INFO? - Add listener for ISoccupancySensor [AWT-EventQueue-0] 17:44:41,983 rit.jython.exec.AbstractAutomatonDemo INFO? - Add listener for ISanotherSensor [AWT-EventQueue-0] 17:44:41,983 rit.jython.exec.AbstractAutomatonDemo INFO? - Demo setup is done [AWT-EventQueue-0] 17:44:59,243 rit.jython.exec.AbstractAutomatonDemo INFO? - SignalLogic setup: name = ISoccupancySensor, state = 4 [AWT-EventQueue-0] 17:44:59,245 rit.jython.exec.AbstractAutomatonDemo INFO? - S1 :: Clear [ISoccupancySensor] 17:45:02,251 rit.jython.exec.AbstractAutomatonDemo INFO? - S2 :: Approach [ISoccupancySensor] 17:45:04,257 rit.jython.exec.AbstractAutomatonDemo INFO? - S3 :: Stop [ISoccupancySensor] 17:45:14,625 rit.jython.exec.AbstractAutomatonDemo INFO? - SignalLogic setup: name = ISanotherSensor, state = 4 [AWT-EventQueue-0] 17:45:14,626 rit.jython.exec.AbstractAutomatonDemo INFO? - Q1 :: Clear [ISanotherSensor] 17:45:17,632 rit.jython.exec.AbstractAutomatonDemo INFO? - Q2 :: Approach [ISanotherSensor] 17:45:22,639 rit.jython.exec.AbstractAutomatonDemo INFO? - Q3 :: Stop [ISanotherSensor] Dave Sand ----- Original message ----- From: "Canadian Locomotive Logistics via groups.io" <CanadianLocomotiveLogistics=[email protected]> Subject: Re: [jmriusers] Script output delayed #scripting Date: Thursday, March 27, 2025 5:15 PM OK I got this. ? 18:13:12,901 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal one [__builtin__$SignalLogic$0] 18:13:16,704 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal one [__builtin__$SignalLogic$0] 18:13:17,904 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal two [__builtin__$SignalLogic$0] 18:13:21,707 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal two [__builtin__$SignalLogic$0] 18:13:22,905 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal three [__builtin__$SignalLogic$0] 18:13:26,708 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal three [__builtin__$SignalLogic$0] 18:13:27,907 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal four [__builtin__$SignalLogic$0] 18:13:31,710 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal four [__builtin__$SignalLogic$0]? ? SO I should change the sensor to mine, ? Then confirm it. ? them change the signals to change.... |
Locked
File /ProblemsBeingWorkedOn/dsand/Demo-v2.py uploaded
#file-notice
Group Notification
The following items have been added to the Files area of the [email protected] group. By: Dave Sand <ds@...> Description: |
Re: Script output delayed
#scripting
OK I got this.
?
18:13:12,901 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal one [__builtin__$SignalLogic$0]
18:13:16,704 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal one [__builtin__$SignalLogic$0] 18:13:17,904 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal two [__builtin__$SignalLogic$0] 18:13:21,707 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal two [__builtin__$SignalLogic$0] 18:13:22,905 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal three [__builtin__$SignalLogic$0] 18:13:26,708 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal three [__builtin__$SignalLogic$0] 18:13:27,907 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal four [__builtin__$SignalLogic$0] 18:13:31,710 rit.jython.exec.AbstractAutomatonDemo INFO ?- signal four [__builtin__$SignalLogic$0]? ?
SO I should change the sensor to mine,
?
Then confirm it.
?
them change the signals to change.... |
Re: PanelPro New Feature - Panel Swipe Navigation on Tablet
Ken,
I believe he is asking about swiping the web panels in a browser, not JMRI panels on a computer.
?
Vinny,
It seems unlikely you really want the swipe to randomly select the next panel to show. You're going to want to put them in some sort of sequence A <> B <> C, etc.
I'd recommend using the linking labels to do that. Place a linking label on the right and left edges of each panel, linked to the desired panel in that "direction".
--SteveT |
Re: Script output delayed
#scripting
After you run the script, go to the sensor table and change the sensor state for the ISoccupancySensor sensor. ?Then you will see the messages in the?SignalLogic class. Dave Sand ----- Original message ----- From: "Canadian Locomotive Logistics via groups.io" <CanadianLocomotiveLogistics=[email protected]> Subject: Re: [jmriusers] Script output delayed #scripting Date: Wednesday, March 26, 2025 8:55 PM David, ? I ran the script. ? I got these results ? 21:48:03,160 rit.jython.exec.AbstractAutomatonDemo INFO ?- Start Demo [AWT-EventQueue-0] 21:48:03,210 rit.jython.exec.AbstractAutomatonDemo INFO ?- Demo setup is done [AWT-EventQueue-0] ? So here to from here. ? I'm use to top down design from Visual Basic. ? |
Re: Script output delayed
#scripting
David,
?
I ran the script.
?
I got these results
?
21:48:03,160 rit.jython.exec.AbstractAutomatonDemo INFO ?- Start Demo [AWT-EventQueue-0]
21:48:03,210 rit.jython.exec.AbstractAutomatonDemo INFO ?- Demo setup is done [AWT-EventQueue-0] ?
So here to from here.
?
I'm use to top down design from Visual Basic.
? |
Re: PanelPro New Feature - Panel Swipe Navigation on Tablet
开云体育Vinny, ? The concept sounds reasonable. But checking? that that the swipe action is available via the Java look and feel for our three platforms would be the first thing to check. Sometimes there are things that the libraries don’t support. I’m saying this as I don’t know of any code in JMRI that uses swipes. It may be your idea is just the first or maybe it isn’t supported. I don’t know. ? -Ken Cameron, Member JMRI Dev Team
? ? |
Re: truncated text labels
#labels
Billybob,
toggle quoted message
Show quoted text
the scaling down to 100% worked,? thanks for the tip... John
-- Sent from my gosh darn droid! Please excuse the fat finger mistakes... John |
Re: PanelPro New Feature - Panel Swipe Navigation on Tablet
We use tablets with our panels on it? lloyd 310 951-9097 On Wed, Mar 26, 2025, 11:33?AM Vinny DeRobertis via <vinny.derobertis=[email protected]> wrote:
|
EngineDriver Beta v2.40.197 released to Play Store
#enginedriver
EngineDriver users, we've released an update for EngineDriver to the Beta program, v2.40.197. You can find the list of changes here:
The update should arrive on your devices shortly.
?
As always, Thanks to Peter Akers for his tireless efforts, and thanks to the Beta testers and others who provide the feedback to make EngineDriver better!
Please let us know of any issues, here, or via email.
--SteveT |
to navigate to use esc to dismiss