开云体育

Date

Locked Re: Parse Error: Reporter (Which I don't need) #reporters

 

Bill,

To remove the reporters content edit the "Layout.xml" file. ?This is done while JMRI is NOT running.

This is a collapsed view but you want to delete the "reporters" entity and its contents. ?That includes the initial tag and the end tag.

There is a possibility that you might have created references to a reporter item. ?This is most likely to occur from the Blocks table. ?If so, things get more complicated.

Dave Sand


----- Original message -----
From: sontrak <sontrak@...>
Subject: Re: [jmriusers] Parse Error: Reporter (Which I don't need)
Date: Saturday, September 07, 2024 7:16 PM

I poorly stated I was trying to Load Table Content and Panels.? When I try that, I get the error message above.
?
I'm reasonably conversant with editing XML files in that I've done some machine language programming on USAF Flight Simulators (F-4E, C-141, C-5A).
?
If you can direct me to open the correct file, find the line, and how to edit it, I think I can follow those directions.? I:m not conversant with Java to be able to develop my own code.? In my 80s, I think its too late to learn that.? I've been retired 35 years from doing this stuff, but I still understand how to do it.
?
Thanks for the response,? it gives me some hope.
?
Bill B
?


Locked Re: Getting throttle settings with LogixNG #logixng

 

开云体育

I agree.

Daniel

On 2024-09-08 02:53, Steve_G wrote:

I would prefer to limit the public attributes as it cramps our style when evolving the product.? the setting attributes should be strictly limited as dispatcher is intended to be in total control.?
Steve G.
?


Locked Re: Getting throttle settings with LogixNG #logixng

 

I would prefer to limit the public attributes as it cramps our style when evolving the product.? the setting attributes should be strictly limited as dispatcher is intended to be in total control.?
Steve G.
?


Locked Re: Getting throttle settings with LogixNG #logixng

 

No, I was looking for a test item.?

----- Original message -----
From: danielb987 <jmri@...>
Subject: Re: [jmriusers] Getting throttle settings with LogixNG
Date: Saturday, September 07, 2024 7:25 PM

Dave,

Do you want me to create a PR to make the method public? I didn't do that because I wasn't sure if there was more methods you want to be public as well.

Daniel

On 2024-09-07 18:31, Dave Sand wrote:
Daniel,

Thank you for identifying my oversight.

I have confirmed that calling the public getActiveTrainsList() method works as expected. ?It creates a LogixNG array of active train objects.

The goal is to create a module that takes the train name and returns the current speed. ?This can be used instead of calling a Jython script.

Dave Sand


----- Original message -----
From: danielb987 <jmri@...>
Subject: Re: [jmriusers] Getting throttle settings with LogixNG
Date: Saturday, September 07, 2024 11:04 AM

Dave,

The method DispatcherFrame.getSignalTypeString() is protected. And since LogixNG is executing Java methods from a different package, it's not possible for LogixNG to access that method.

I'm surprised Jython can do it. It seems that Jython in some way circumvent Java protected status.

The solution is to change the method getSignalTypeString() to public. Maybe other methods in that class should be made public as well?

Daniel

On 2024-09-07 17:18, Dave Sand wrote:
Daniel,

Here is the LogixNG:

LogixNG: Dispatcher Manager Test
??? ConditionalNG: Dispatcher Manager
??????? ! A
??????????? Many
?????????????? ::: Local variable "mgr", init to None ""
?????????????? ::: Local variable "sigtype", init to String ""
??????????????? ! A1
??????????????????? Digital Formula: mgr = InstanceManager.getDefault("jmri.jmrit.dispatcher.DispatcherFrame")
??????????????????????? ?* E1
????????????????????????????
??????????????? ! A2
??????????????????? Log local variables
??????????????? ! A3
??????????????????? Digital Formula: value = mgr.getSignalTypeString()
??????????????????????? ?* E1
????????????????????????????
??????????????? ! A4
??????????????????? Log local variables

An error occurs during the execute of the LogixNG:

I selected the About option.

Here is the system console:

10:04:36,264 apps.util.Log4JUtil?????????????????? INFO? - * JMRI log ** [main]
10:04:36,269 apps.util.Log4JUtil?????????????????? INFO? - This log is stored in file: /Users/das/Library/Preferences/JMRI/log/session.log [main]
10:04:36,270 apps.util.Log4JUtil?????????????????? INFO? - This log is appended to file: /Users/das/Library/Preferences/JMRI/log/messages.log [main]
10:04:36,275 apps.Apps???????????????????????????? INFO? - PanelPro version 5.8+Rbc21ce2ce7 starts under Java 17.0.11 on Mac OS X aarch64 v14.6.1 at Sat Sep 07 10:04:36 CDT 2024 [main]
10:04:38,759 apps.Apps???????????????????????????? INFO? - Starting with profile Dispatcher.3ccc2fc9 [main]
10:04:38,802 jmri.util.node.NodeIdentity?????????? INFO? - Using aea674cb-bb05-467f-be01-3844e010f99f as the JMRI storage identity for profile id 3ccc2fc9 [AWT-EventQueue-0]
10:04:38,824 jmri.jmrix.ConnectionConfigManager??? INFO? - No local configuration found. [main]
10:04:38,932 jmri.jmrix.loconet.LnPacketizer?????? INFO? - lnPacketizer Started [main]
10:04:38,933 i.jmrix.loconet.hexfile.LnHexFilePort INFO? - LocoNet Simulator Started [LocoNet HexFileFrame]
10:04:39,029 jmri.jmrit.roster.Roster????????????? INFO? - Reading roster file with rootFromName(/Users/das/JMRI/_Profiles/) [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path program: is /Applications/JMRI/ [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path preference: is /Users/das/JMRI/_Profiles/Dispatcher.jmri/ [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path profile: is /Users/das/JMRI/_Profiles/Dispatcher.jmri/ [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path settings: is /Users/das/Library/Preferences/JMRI/ [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path home: is /Users/das/ [main]
10:04:39,208 jmri.util.FileUtilSupport???????????? INFO? - File path scripts: is /Users/das/JMRI/_Profiles/Dispatcher.jmri/ [main]
10:04:39,631 apps.PanelPro.PanelPro??????????????? INFO? - Main initialization done [main]
10:04:44,142 jmri.configurexml.LoadXmlConfigAction INFO? - Loading selected file: /Users/das/JMRI/_Profiles/ [AWT-EventQueue-0]
10:04:45,138 t.display.layoutEditor.BlockValueFile INFO? - 4 of 4 block values restored. Rule=RESTOREONLYIFALLOCCUPIED, Power=OFF [AWT-EventQueue-0]
10:05:07,501 jmri.jmrit.audio.JoalAudioFactory???? INFO? - Initialised JOAL using OpenAL: vendor - OpenAL Community version - 1.1 ALSOFT 1.23.1 [Listed Table Generation]
10:06:10,519 rit.logixng.actions.LogLocalVariables WARN? - Log local variables: [JMRI LogixNGThread]
10:06:10,520 rit.logixng.actions.LogLocalVariables WARN? -???? Name: sigtype, Value: , java.lang.String [JMRI LogixNGThread]
10:06:10,520 rit.logixng.actions.LogLocalVariables WARN? -???? Name: mgr, Value: jmri.jmrit.dispatcher.DispatcherFrame[frame0,564,261,954x512,invalid,layout=java.awt.BorderLayout,title=Dispatcher,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,28,954x484,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true], jmri.jmrit.dispatcher.DispatcherFrame [JMRI LogixNGThread]
10:06:10,525 rit.logixng.actions.LogLocalVariables WARN? - Log local variables done [JMRI LogixNGThread]
10:06:14,747 g.implementation.DefaultConditionalNG WARN? - ConditionalNG IQC:AUTO:0001 was aborted during execute: jmri.jmrit.logixng.util.parser.CannotCallMethodException: Can not call method getSignalTypeString() on object jmri.jmrit.dispatcher.DispatcherFrame[frame0,564,261,954x512,invalid,layout=java.awt.BorderLayout,title=Dispatcher,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,28,954x484,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true] [JMRI LogixNGThread]
jmri.jmrit.logixng.util.parser.CannotCallMethodException: Can not call method getSignalTypeString() on object jmri.jmrit.dispatcher.DispatcherFrame[frame0,564,261,954x512,invalid,layout=java.awt.BorderLayout,title=Dispatcher,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,28,954x484,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
at jmri.jmrit.logixng.util.parser.ExpressionNodeMethod.calculate(ExpressionNodeMethod.java:173) ~[jmri.jar:?]
at jmri.jmrit.logixng.util.parser.ExpressionNodeComplex.calculate(ExpressionNodeComplex.java:24) ~[jmri.jar:?]
at jmri.jmrit.logixng.util.parser.ExpressionNodeAssignmentOperator.calculate(ExpressionNodeAssignmentOperator.java:234) ~[jmri.jar:?]
at jmri.jmrit.logixng.actions.DigitalFormula.execute(DigitalFormula.java:145) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultMaleDigitalActionSocket.execute(DefaultMaleDigitalActionSocket.java:45) ~[jmri.jar:?]
at jmri.jmrit.logixng.tools.debugger.DebuggerMaleDigitalActionSocket.execute(DebuggerMaleDigitalActionSocket.java:35) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultFemaleDigitalActionSocket.execute(DefaultFemaleDigitalActionSocket.java:37) ~[jmri.jar:?]
at jmri.jmrit.logixng.actions.DigitalMany.execute(DigitalMany.java:116) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultMaleDigitalActionSocket.execute(DefaultMaleDigitalActionSocket.java:45) ~[jmri.jar:?]
at jmri.jmrit.logixng.tools.debugger.DebuggerMaleDigitalActionSocket.execute(DebuggerMaleDigitalActionSocket.java:35) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultFemaleDigitalActionSocket.execute(DefaultFemaleDigitalActionSocket.java:37) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultConditionalNG.internalExecute(DefaultConditionalNG.java:173) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultConditionalNG$ExecuteTask.run(DefaultConditionalNG.java:216) ~[jmri.jar:?]
at jmri.jmrit.logixng.util.LogixNG_Thread.lambda$new$0(LogixNG_Thread.java:148) ~[jmri.jar:?]
at java.lang.Thread.run(Thread.java:840) [?:?]

Doing a Jython print of the result of jmri.InstanceManager.getDefault(..) returns the same content, but Jython is still able to resolve the method calls.

Dave Sand



----- Original message -----
From: danielb987 <jmri@...>
Subject: Re: [jmriusers] Getting throttle settings with LogixNG
Date: Saturday, September 07, 2024 3:34 AM

Dave,

> For Dispatcher, the DispatcherFrame class is both the Dispatcher manager and the main JmriJFrame.? The "InstanceManager" function returns the JFrame, not the object.

Can you explain this?

Create a ConditionalNG that calls the InstanceManager to get the instance of DispatcherFrame and put it in a local variable. Then use LogLocalVariables with show class name. What class name do you get?

Daniel

On 2024-09-06 16:43, Dave Sand wrote:
Daniel,

It could be done using LogixNG except for one problem.

The "InstanceManager" function normally returns a manager object, for example using a formula such as:

mgr = InstanceManager.getDefault("jmri.Sensor")

where "mgr" is a local variable. ?For Dispatcher, the DispatcherFrame class is both the Dispatcher manager and the main JmriJFrame. ?The "InstanceManager" function returns the JFrame, not the object.

Dave Sand


----- Original message -----
From: danielb987 <jmri@...>
Subject: Re: [jmriusers] Getting throttle settings with LogixNG
Date: Friday, September 06, 2024 9:07 AM

Jos,

No, not currently. But you can use a Jython script to do that. Hopefully someone else will join in and give you an example on a Jython script for it.

Daniel

On 2024-09-06 15:11, Jos Smeele wrote:
Is there a way that I can query an active throttle with LogixNG and, for instance, store the current speed in a local variable with LogixNG?
I want to get the current train speed with LogixNG when Dispatcher is executing Transits.
I've learned that Memory variables can be queried with: memories.getMemory(<memory name>) so is there something similar for throttle data?
Thanks,
Jos





Locked Re: Getting throttle settings with LogixNG #logixng

 

开云体育

Dave,

Do you want me to create a PR to make the method public? I didn't do that because I wasn't sure if there was more methods you want to be public as well.

Daniel

On 2024-09-07 18:31, Dave Sand wrote:

Daniel,

Thank you for identifying my oversight.

I have confirmed that calling the public getActiveTrainsList() method works as expected. ?It creates a LogixNG array of active train objects.

The goal is to create a module that takes the train name and returns the current speed. ?This can be used instead of calling a Jython script.

Dave Sand


----- Original message -----
From: danielb987 <jmri@...>
Subject: Re: [jmriusers] Getting throttle settings with LogixNG
Date: Saturday, September 07, 2024 11:04 AM

Dave,

The method DispatcherFrame.getSignalTypeString() is protected. And since LogixNG is executing Java methods from a different package, it's not possible for LogixNG to access that method.

I'm surprised Jython can do it. It seems that Jython in some way circumvent Java protected status.

The solution is to change the method getSignalTypeString() to public. Maybe other methods in that class should be made public as well?

Daniel

On 2024-09-07 17:18, Dave Sand wrote:
Daniel,

Here is the LogixNG:

LogixNG: Dispatcher Manager Test
??? ConditionalNG: Dispatcher Manager
??????? ! A
??????????? Many
?????????????? ::: Local variable "mgr", init to None ""
?????????????? ::: Local variable "sigtype", init to String ""
??????????????? ! A1
??????????????????? Digital Formula: mgr = InstanceManager.getDefault("jmri.jmrit.dispatcher.DispatcherFrame")
??????????????????????? ?* E1
????????????????????????????
??????????????? ! A2
??????????????????? Log local variables
??????????????? ! A3
??????????????????? Digital Formula: value = mgr.getSignalTypeString()
??????????????????????? ?* E1
????????????????????????????
??????????????? ! A4
??????????????????? Log local variables

An error occurs during the execute of the LogixNG:

I selected the About option.

Here is the system console:

10:04:36,264 apps.util.Log4JUtil?????????????????? INFO? - * JMRI log ** [main]
10:04:36,269 apps.util.Log4JUtil?????????????????? INFO? - This log is stored in file: /Users/das/Library/Preferences/JMRI/log/session.log [main]
10:04:36,270 apps.util.Log4JUtil?????????????????? INFO? - This log is appended to file: /Users/das/Library/Preferences/JMRI/log/messages.log [main]
10:04:36,275 apps.Apps???????????????????????????? INFO? - PanelPro version 5.8+Rbc21ce2ce7 starts under Java 17.0.11 on Mac OS X aarch64 v14.6.1 at Sat Sep 07 10:04:36 CDT 2024 [main]
10:04:38,759 apps.Apps???????????????????????????? INFO? - Starting with profile Dispatcher.3ccc2fc9 [main]
10:04:38,802 jmri.util.node.NodeIdentity?????????? INFO? - Using aea674cb-bb05-467f-be01-3844e010f99f as the JMRI storage identity for profile id 3ccc2fc9 [AWT-EventQueue-0]
10:04:38,824 jmri.jmrix.ConnectionConfigManager??? INFO? - No local configuration found. [main]
10:04:38,932 jmri.jmrix.loconet.LnPacketizer?????? INFO? - lnPacketizer Started [main]
10:04:38,933 i.jmrix.loconet.hexfile.LnHexFilePort INFO? - LocoNet Simulator Started [LocoNet HexFileFrame]
10:04:39,029 jmri.jmrit.roster.Roster????????????? INFO? - Reading roster file with rootFromName(/Users/das/JMRI/_Profiles/) [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path program: is /Applications/JMRI/ [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path preference: is /Users/das/JMRI/_Profiles/Dispatcher.jmri/ [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path profile: is /Users/das/JMRI/_Profiles/Dispatcher.jmri/ [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path settings: is /Users/das/Library/Preferences/JMRI/ [main]
10:04:39,207 jmri.util.FileUtilSupport???????????? INFO? - File path home: is /Users/das/ [main]
10:04:39,208 jmri.util.FileUtilSupport???????????? INFO? - File path scripts: is /Users/das/JMRI/_Profiles/Dispatcher.jmri/ [main]
10:04:39,631 apps.PanelPro.PanelPro??????????????? INFO? - Main initialization done [main]
10:04:44,142 jmri.configurexml.LoadXmlConfigAction INFO? - Loading selected file: /Users/das/JMRI/_Profiles/ [AWT-EventQueue-0]
10:04:45,138 t.display.layoutEditor.BlockValueFile INFO? - 4 of 4 block values restored. Rule=RESTOREONLYIFALLOCCUPIED, Power=OFF [AWT-EventQueue-0]
10:05:07,501 jmri.jmrit.audio.JoalAudioFactory???? INFO? - Initialised JOAL using OpenAL: vendor - OpenAL Community version - 1.1 ALSOFT 1.23.1 [Listed Table Generation]
10:06:10,519 rit.logixng.actions.LogLocalVariables WARN? - Log local variables: [JMRI LogixNGThread]
10:06:10,520 rit.logixng.actions.LogLocalVariables WARN? -???? Name: sigtype, Value: , java.lang.String [JMRI LogixNGThread]
10:06:10,520 rit.logixng.actions.LogLocalVariables WARN? -???? Name: mgr, Value: jmri.jmrit.dispatcher.DispatcherFrame[frame0,564,261,954x512,invalid,layout=java.awt.BorderLayout,title=Dispatcher,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,28,954x484,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true], jmri.jmrit.dispatcher.DispatcherFrame [JMRI LogixNGThread]
10:06:10,525 rit.logixng.actions.LogLocalVariables WARN? - Log local variables done [JMRI LogixNGThread]
10:06:14,747 g.implementation.DefaultConditionalNG WARN? - ConditionalNG IQC:AUTO:0001 was aborted during execute: jmri.jmrit.logixng.util.parser.CannotCallMethodException: Can not call method getSignalTypeString() on object jmri.jmrit.dispatcher.DispatcherFrame[frame0,564,261,954x512,invalid,layout=java.awt.BorderLayout,title=Dispatcher,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,28,954x484,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true] [JMRI LogixNGThread]
jmri.jmrit.logixng.util.parser.CannotCallMethodException: Can not call method getSignalTypeString() on object jmri.jmrit.dispatcher.DispatcherFrame[frame0,564,261,954x512,invalid,layout=java.awt.BorderLayout,title=Dispatcher,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,0,28,954x484,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]
at jmri.jmrit.logixng.util.parser.ExpressionNodeMethod.calculate(ExpressionNodeMethod.java:173) ~[jmri.jar:?]
at jmri.jmrit.logixng.util.parser.ExpressionNodeComplex.calculate(ExpressionNodeComplex.java:24) ~[jmri.jar:?]
at jmri.jmrit.logixng.util.parser.ExpressionNodeAssignmentOperator.calculate(ExpressionNodeAssignmentOperator.java:234) ~[jmri.jar:?]
at jmri.jmrit.logixng.actions.DigitalFormula.execute(DigitalFormula.java:145) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultMaleDigitalActionSocket.execute(DefaultMaleDigitalActionSocket.java:45) ~[jmri.jar:?]
at jmri.jmrit.logixng.tools.debugger.DebuggerMaleDigitalActionSocket.execute(DebuggerMaleDigitalActionSocket.java:35) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultFemaleDigitalActionSocket.execute(DefaultFemaleDigitalActionSocket.java:37) ~[jmri.jar:?]
at jmri.jmrit.logixng.actions.DigitalMany.execute(DigitalMany.java:116) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultMaleDigitalActionSocket.execute(DefaultMaleDigitalActionSocket.java:45) ~[jmri.jar:?]
at jmri.jmrit.logixng.tools.debugger.DebuggerMaleDigitalActionSocket.execute(DebuggerMaleDigitalActionSocket.java:35) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultFemaleDigitalActionSocket.execute(DefaultFemaleDigitalActionSocket.java:37) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultConditionalNG.internalExecute(DefaultConditionalNG.java:173) ~[jmri.jar:?]
at jmri.jmrit.logixng.implementation.DefaultConditionalNG$ExecuteTask.run(DefaultConditionalNG.java:216) ~[jmri.jar:?]
at jmri.jmrit.logixng.util.LogixNG_Thread.lambda$new$0(LogixNG_Thread.java:148) ~[jmri.jar:?]
at java.lang.Thread.run(Thread.java:840) [?:?]

Doing a Jython print of the result of jmri.InstanceManager.getDefault(..) returns the same content, but Jython is still able to resolve the method calls.

Dave Sand



----- Original message -----
From: danielb987 <jmri@...>
Subject: Re: [jmriusers] Getting throttle settings with LogixNG
Date: Saturday, September 07, 2024 3:34 AM

Dave,

> For Dispatcher, the DispatcherFrame class is both the Dispatcher manager and the main JmriJFrame.? The "InstanceManager" function returns the JFrame, not the object.

Can you explain this?

Create a ConditionalNG that calls the InstanceManager to get the instance of DispatcherFrame and put it in a local variable. Then use LogLocalVariables with show class name. What class name do you get?

Daniel

On 2024-09-06 16:43, Dave Sand wrote:
Daniel,

It could be done using LogixNG except for one problem.

The "InstanceManager" function normally returns a manager object, for example using a formula such as:

mgr = InstanceManager.getDefault("jmri.Sensor")

where "mgr" is a local variable. ?For Dispatcher, the DispatcherFrame class is both the Dispatcher manager and the main JmriJFrame. ?The "InstanceManager" function returns the JFrame, not the object.

Dave Sand


----- Original message -----
From: danielb987 <jmri@...>
Subject: Re: [jmriusers] Getting throttle settings with LogixNG
Date: Friday, September 06, 2024 9:07 AM

Jos,

No, not currently. But you can use a Jython script to do that. Hopefully someone else will join in and give you an example on a Jython script for it.

Daniel

On 2024-09-06 15:11, Jos Smeele wrote:
Is there a way that I can query an active throttle with LogixNG and, for instance, store the current speed in a local variable with LogixNG?
I want to get the current train speed with LogixNG when Dispatcher is executing Transits.
I've learned that Memory variables can be queried with: memories.getMemory(<memory name>) so is there something similar for throttle data?
Thanks,
Jos




Locked Re: Parse Error: Reporter (Which I don't need) #reporters

 

I poorly stated I was trying to Load Table Content and Panels.? When I try that, I get the error message above.
?
I'm reasonably conversant with editing XML files in that I've done some machine language programming on USAF Flight Simulators (F-4E, C-141, C-5A).
?
If you can direct me to open the correct file, find the line, and how to edit it, I think I can follow those directions.? I:m not conversant with Java to be able to develop my own code.? In my 80s, I think its too late to learn that.? I've been retired 35 years from doing this stuff, but I still understand how to do it.
?
Thanks for the response,? it gives me some hope.
?
Bill B
?


Locked Re: Precise position of trains and maneuvers automation

 

Nags,

The phrase, "exited one block and entered a new block", is not true. ?The time to traverse a block is the elapsed time from the entry of a block to the entry of the next block in the direction of travel. ?This eliminates any issues with train length or the presence of detectable wheel sets on rolling stock.

Dave Sand

----- Original message -----
From: "Nags via groups.io" <snowy999=bigpond.com@groups.io>
Subject: Re: [jmriusers] Precise position of trains and maneuvers automation
Date: Saturday, September 07, 2024 4:58 PM

As far as I understand warrants, JMRI uses the entry into a block (oblock) as a reference point to determine what if any actions it needs to take. It is unaware of anything within the block.
?
Therefore, when the block becomes occupied JMRI 'knows it has exited one block and entered a new block. This allows it to determine two things:
  • the trains performance - how long it took to traverse the previous block and whether it was too fast or slow requiring tuning of the throttle/speed ratio.
  • what the train needs to do next. On entering the block it knows the current speed, it knows the length of this block and upcoming paths and blocks. It determines what if any actions are needed for any upcoming speed requirements e.g. a danger signal, it has the reference point to calculate the distance to cover and then determine the throttle settings and timing for deceleration required to stop the train to avoid passing the signal.
--
H.O. Australia (Layout in Progress)
Digikeijs DR5000 LocoNet
JMRI v5.8 DecoderPro/Warrants/CPE/SML/LogixNG
Windows 10


Locked Re: Parse Error: Reporter (Which I don't need) #reporters

 

Bill,

What do you mean by "load all files"? ?There is only one file that contains table content and panels. ?There are separate files for operations, and the roster, but the main PanelPro content with tables and panels is in one file.

How good are you at editing xml?

Dave Sand


----- Original message -----
From: sontrak <sontrak@...>
Subject: [jmriusers] Parse Error: Reporter (Which I don't need)
Date: Saturday, September 07, 2024 4:12 PM

I was experimenting with reporters just to see what they do, then abandoned that to go on to something I elt was more impotant at my stage of panel development.? Saved the files and shut down? for the night.? Today I can't Load? all files but ge this error message.
?
Parse error
while parsing file /C:/Users/Tra, ins/JMRI/My_JMRI_ Railroad.jmri/Layout.xml
Exception: org.jdom2.input.JDOMParseException: Error on line 2215: cvc-complex-type.2.4.a: Invalid content was found starting with element reporter. One of [systemName, path)' is expected
See for more information.
Skip message for this session only?
OK
?
Can someone help me erase the offending enrty, or otherwise clear the problem?
?
Thanks so much for participating in this group and helping us who get in trouble.? Without you guys, I would not be able to set up and run JMRI.
Bill B


Locked Parse Error: Reporter (Which I don't need) #reporters

 

I was experimenting with reporters just to see what they do, then abandoned that to go on to something I elt was more impotant at my stage of panel development.? Saved the files and shut down? for the night.? Today I can't Load? all files but ge this error message.
?
Parse error
while parsing file /C:/Users/Tra, ins/JMRI/My_JMRI_ Railroad.jmri/Layout.xml
Exception: org.jdom2.input.JDOMParseException: Error on line 2215: cvc-complex-type.2.4.a: Invalid content was found starting with element reporter. One of [systemName, path)' is expected
See for more information.
Skip message for this session only?
OK
?
Can someone help me erase the offending enrty, or otherwise clear the problem?
?
Thanks so much for participating in this group and helping us who get in trouble.? Without you guys, I would not be able to set up and run JMRI.
Bill B


Locked Re: MQTT high volume issues - some progress #mqtt

 

I've worked on other devices (Raspberry Pi Pico microprocessors, over
WiFi to router, then wired ethernet to Mosquitto broker on a Raspberry
Pi 3). My default timeouts are 60 seconds, and I found that the time
for an actual disconnect is 120 seconds. So, matching the "doubling"
from the log-files in this thread.

I had client devices which were only subscribed (listening) to topics,
and found it was necessary to add in an explicit "ping" message from the
client to keep things running. Otherwise I was getting timeout
disconnects. My "ping" is at 5 seconds, though my traffic volume is
very low. In normal use, the broker won't be handling more than 10
messages per second, and most of the time it might be one per minute,
other than the device ping messages.

Don't know if this is relevant, or if adding a Ping would help with the
issue ?


- Nigel

------ Original Message ------
From "Bob Jacobsen" <rgj1927@...>
To jmriusers@groups.io
Date 07/09/2024 19:04:24
Subject Re: [jmriusers] MQTT high volume issues - some progress #mqtt

I’ve been going over your logs, Thanks for providing that info!

I would think that this is a networking problem causing loss of connection. Except JMRI and the MQTT broker are running on the same machine. That makes a network-broken connection unlikely.

The MQTT library we use has a 60-second “heartbeat” exchange. I think that underlies the 120-second delay we’re seeing: Something fails, and it takes 2 cycles of the heartbeat for JMRI to notice and try to reconnect. But that assumes that the failure was right at the original heartbeat, not 15 second or 20 seconds or whatever later. That also seems unlikely.

Still working on this. Would be great if anybody else had some good ideas, too!

Bob


Bob Jacobsen
rgj1927@...









Locked Re: Trouble loading Java #java

 

Inspectordave:

I'd need to read what data layout changes have occurred with that large jump in revs... But, if you have the time I'd go for it if only for the learning experience.

Assuming Win10/11..? What is the Java source? Azul? If so what file format did you download the <dot>MSI? That's the one you need.

Jim Albanowski


Locked Re: Trouble loading Java #java

 

I suggest you remove JMRI and any existing JAVA versions. Load Azul Java 8 and then JMRI 4.26. Run it. Then you can do the upgrades per instructions. Changes happen to the panels that prevent you from jumping them right into JMRI 5.x.
--
Ken
NYNH&H, Old Colony Division, Cape Cod Branch (1949-1959)
Loconet * JMRI 5.9.3 * OSX,Win10,Ubuntu
Blog: ?


Locked Trouble loading Java #java

 

I'm helping a friend with updating his JMRI from 4.2 to 5.8. I made the mistake of not doing the update in the steps suggested when doing so. I removed Java and now, his machine will not load Java 1.8 again. It hangs with an error code and the Java site states they don't know why this happens and the workarounds don't work for me. Java 11 loads just fine. I'm wondering if I just copy his roster and panel folders onto a flash drive, remove JMRI and then load Java 11 and then JMRI version 5.8. I then should be able to just pop in the roster and panel folders and life should be good again. Thoughts??
Thanks
Inspectordave


Locked Re: SML signal mast problem #sml

 

Hi Dave
?
You are correct that the base address is 100.?
I am not at home until tomorrow but I am excited to try your suggestion.?
?
Best
KenF in Ecuador


Locked Re: Precise position of trains and maneuvers automation

 

Sebastien,

I haven't used the parts of JMRI you are trying to use. But, in general, I'm certain you are trying to accomplish more things with more precision than JMRI was designed for. Your goal seems very ambitious.

Unless you somehow do an inventory of all the locomotives and cars/wagons at startup, I don't see how the control program could know where the units are to make up desired trains, and then to put units/cars/wagons at their desired locations after their journeys.

Also, to actually work, your trackwork and equipment must be "flawless". Coupling and uncoupling must work every time when intended. Train speeds must be known with high precision and at multiple throttle settings, and with varying loads. Most of us have difficulty accomplishing fault free switching/shunting while observing our trains in real time.

What you are trying to do is something many of us would like. I think you will have a great deal of trouble making it work, and work reliably and faultlessly. Be prepared to lose some sleep getting this working! As for video cameras, couldn't more than one be used? Add another one for each station under the visible portion of the railroad, for example? With internet AI, maybe it would be possible to adjust the program for train characteristics in nearly real time.

Best of luck with this! If you get it to work, it might become a widely useful addition to JMRI.

Don W

--
Don Weigt
Connecticut


Locked Re: Celebrating JMRI 25th Anniversary (3 Oct 2024) #announcement

 

It is amazing how far JMRI - Decoder Pro - Panel Pro has come over the 20 plus years I have been using this fantastic software.
?
It not only makes complex sound decoder management easier, but it has also permitted me and several nearby operators to model CTC panels in both modern and US&S styles.
?
Most interesting for me is what Bob J helped me to implement with Ken McCorry's full size loco simulator.? Details on my web site at:
?
Thanks to all of the developers and their contributions to making this hobby so much more capable.
?
Bob Bucklew
www.quaker-valley.com
?


From: JerryG <jerryg2003@...>
To: jmriusers <jmriusers@groups.io>
Date: Saturday, 7 September 2024 1:37 PM EDT
Subject: [jmriusers] Celebrating JMRI 25th Anniversary (3 Oct 2024)

[The announcement below is also available for re-distribution as a PDF in the Files section: /g/jmriusers/files/JMRI%2025th%20Anniversary%20Announcement%20Oct%202024%20%28FOR%20PUBLICATION%29.pdf.? Thanks every for your participation in the JMRI Community!? ? From JerryG and BobJ on behalf of all of us]
?

Announcement from the JMRI community: October 3, 2024

?

The Java Model Railroad Interface (JMRI?) community announces two major milestones:? the 25th anniversary of the first use of JMRI and the 10,000th update to the Java Model Railroad Interface software used by almost 50,000 model railroad hobbyists for managing and operating today’s digitally controlled model railroads.? With over 300 developers worldwide having contributed, the “community sourced” JMRI project began in 1999 to provide a way for model railroaders to manage the complexity of train engines fitted with digital decoders.? Today, model railroaders worldwide use the greatly expanded JMRI system for everything having to do with the development and enjoyment of modern model trains and layouts.

Bob Jacobsen, a member of the original team and still a senior developer, said “JMRI has helped bring the sophistication of modern electronics and computers to thousands of model railroads - all based on open source software.” ?Not only model railroad hobbyists, but millions of people of all ages have seen JMRI in operation at holiday train displays, hobby shows, and train exhibits at multiple museums around the world.

?

“JMRI was one of the key steppingstones in the wide adoption of Digital Command Control across the model railroading community by making the process of implementation easier, visual, and common across all manufacturers,” noted Peter Ely, a founding member of the NMRA DCC Working Group. ?“JMRI itself grew in complementary directions to allow the typical model railroader to do things at the system-wide railway level only dreamed about by the original working group.”

Jacobsen said that JMRI development continues to keep pace with changes in technology and that another 10,000 updates are likely over the next decade.? It is through the continued interest and contribution of time and effort of the community members that JMRI feature are expanded and technology updated.? Interest in JMRI extends over dozens of user forums and social media platforms, with over 8,000 users participating in the primary user forum on groups.io, asking questions and contributing answers and suggestions that are used to expand and improve JMRI capabilities.

?

Congratulations and thanks to all who have participated in using and improving JMRI, now and into the future.

?

About JMRI

?

The Java Model Railroad Interface project was initially a modest undertaking of some dozen model railroad hobbyists who wanted to bring their computer skills to the emerging field of digitally controlled model trains.? Forming an open source software development project, their first output was called DecoderPro? and provided easy-to-use screens for managing “configuration variables” in the small computers that manufacturers and hobbyists were installing in train engines. ?The effort expanded to create PanelProTM with features for controlling all types of electronic devices and automating train operations by monitoring sensors around the layout.

Unfortunately, the community was soon embroiled in a copyright and patent dispute that resulted (after seven years of litigation) in the landmark Jacobsen v. Katzer case that helped establish the legal basis for today’s open software movement. The Electronic Frontier Foundation cites this case as one that has allowed the internet to flourish and find its way into millions of computers in homes, offices, and businesses.

?

JMRI today provides functions including management of Digital Command Control decoders in train engines, cars, and other devices, graphic display of small and large train layouts, on-line real-time operational monitoring of sensors and other devices, automation of train operations, and management of realistic train operation scenarios.? JMRI also provided the first widespread implementation of the WiThrottle protocol.

?

New releases of JMRI are made available to users approximately monthly.? JMRI is comprised of several thousand source files available at GitHub, the free open source code repository, and is maintained and expanded by community members. ?One of the milestones celebrated today is the 10,000th developer update to the JMRI repository on GitHub, indicating the robustness and on-going development of this important open source project.

?

For more information, contact Bob Jacobsen via email: info@...

?


Locked Re: MQTT high volume issues - some progress #mqtt

 

I’ve been going over your logs, Thanks for providing that info!

I would think that this is a networking problem causing loss of connection. Except JMRI and the MQTT broker are running on the same machine. That makes a network-broken connection unlikely.

The MQTT library we use has a 60-second “heartbeat” exchange. I think that underlies the 120-second delay we’re seeing: Something fails, and it takes 2 cycles of the heartbeat for JMRI to notice and try to reconnect. But that assumes that the failure was right at the original heartbeat, not 15 second or 20 seconds or whatever later. That also seems unlikely.

Still working on this. Would be great if anybody else had some good ideas, too!

Bob


Bob Jacobsen
rgj1927@...


Locked Re: Celebrating JMRI 25th Anniversary (3 Oct 2024) #announcement

 

开云体育

HUGE pat on the back to everyone. Though the complexity far exceeds any help I can give today, I’m glad to be one of the original pioneers

And most people possibly won’t be aware of the significant legal battle back in 2006 that ensured JMRI remained in the public domain. Glad some of my articles in the UK model press helped there too

It really is amazing when I look back to see how the humble DecoderPro has evolved

Phil G

On 7 Sep 2024, at 18:37, JerryG via groups.io <jerryg2003@...> wrote:

?
[The announcement below is also available for re-distribution as a PDF in the Files section: /g/jmriusers/files/JMRI%2025th%20Anniversary%20Announcement%20Oct%202024%20%28FOR%20PUBLICATION%29.pdf.? Thanks every for your participation in the JMRI Community!? ? From JerryG and BobJ on behalf of all of us]
?

Announcement from the JMRI community: October 3, 2024

?

The Java Model Railroad Interface (JMRI?) community announces two major milestones:? the 25th anniversary of the first use of JMRI and the 10,000th update to the Java Model Railroad Interface software used by almost 50,000 model railroad hobbyists for managing and operating today’s digitally controlled model railroads.? With over 300 developers worldwide having contributed, the “community sourced” JMRI project began in 1999 to provide a way for model railroaders to manage the complexity of train engines fitted with digital decoders.? Today, model railroaders worldwide use the greatly expanded JMRI system for everything having to do with the development and enjoyment of modern model trains and layouts.

Bob Jacobsen, a member of the original team and still a senior developer, said “JMRI has helped bring the sophistication of modern electronics and computers to thousands of model railroads - all based on open source software.” ?Not only model railroad hobbyists, but millions of people of all ages have seen JMRI in operation at holiday train displays, hobby shows, and train exhibits at multiple museums around the world.

?

“JMRI was one of the key steppingstones in the wide adoption of Digital Command Control across the model railroading community by making the process of implementation easier, visual, and common across all manufacturers,” noted Peter Ely, a founding member of the NMRA DCC Working Group. ?“JMRI itself grew in complementary directions to allow the typical model railroader to do things at the system-wide railway level only dreamed about by the original working group.”

Jacobsen said that JMRI development continues to keep pace with changes in technology and that another 10,000 updates are likely over the next decade.? It is through the continued interest and contribution of time and effort of the community members that JMRI feature are expanded and technology updated.? Interest in JMRI extends over dozens of user forums and social media platforms, with over 8,000 users participating in the primary user forum on groups.io, asking questions and contributing answers and suggestions that are used to expand and improve JMRI capabilities.

?

Congratulations and thanks to all who have participated in using and improving JMRI, now and into the future.

?

About JMRI

?

The Java Model Railroad Interface project was initially a modest undertaking of some dozen model railroad hobbyists who wanted to bring their computer skills to the emerging field of digitally controlled model trains.? Forming an open source software development project, their first output was called DecoderPro? and provided easy-to-use screens for managing “configuration variables” in the small computers that manufacturers and hobbyists were installing in train engines. ?The effort expanded to create PanelProTM with features for controlling all types of electronic devices and automating train operations by monitoring sensors around the layout.

Unfortunately, the community was soon embroiled in a copyright and patent dispute that resulted (after seven years of litigation) in the landmark Jacobsen v. Katzer case that helped establish the legal basis for today’s open software movement. The Electronic Frontier Foundation cites this case as one that has allowed the internet to flourish and find its way into millions of computers in homes, offices, and businesses.

?

JMRI today provides functions including management of Digital Command Control decoders in train engines, cars, and other devices, graphic display of small and large train layouts, on-line real-time operational monitoring of sensors and other devices, automation of train operations, and management of realistic train operation scenarios.? JMRI also provided the first widespread implementation of the WiThrottle protocol.

?

New releases of JMRI are made available to users approximately monthly.? JMRI is comprised of several thousand source files available at GitHub, the free open source code repository, and is maintained and expanded by community members. ?One of the milestones celebrated today is the 10,000th developer update to the JMRI repository on GitHub, indicating the robustness and on-going development of this important open source project.

?

For more information, contact Bob Jacobsen via email: info@...

?


Locked Celebrating JMRI 25th Anniversary (3 Oct 2024) #announcement

 

[The announcement below is also available for re-distribution as a PDF in the Files section: /g/jmriusers/files/JMRI%2025th%20Anniversary%20Announcement%20Oct%202024%20%28FOR%20PUBLICATION%29.pdf.? Thanks every for your participation in the JMRI Community!? ? From JerryG and BobJ on behalf of all of us]
?

Announcement from the JMRI community: October 3, 2024

?

The Java Model Railroad Interface (JMRI?) community announces two major milestones:? the 25th anniversary of the first use of JMRI and the 10,000th update to the Java Model Railroad Interface software used by almost 50,000 model railroad hobbyists for managing and operating today’s digitally controlled model railroads.? With over 300 developers worldwide having contributed, the “community sourced” JMRI project began in 1999 to provide a way for model railroaders to manage the complexity of train engines fitted with digital decoders.? Today, model railroaders worldwide use the greatly expanded JMRI system for everything having to do with the development and enjoyment of modern model trains and layouts.

Bob Jacobsen, a member of the original team and still a senior developer, said “JMRI has helped bring the sophistication of modern electronics and computers to thousands of model railroads - all based on open source software.” ?Not only model railroad hobbyists, but millions of people of all ages have seen JMRI in operation at holiday train displays, hobby shows, and train exhibits at multiple museums around the world.

?

“JMRI was one of the key steppingstones in the wide adoption of Digital Command Control across the model railroading community by making the process of implementation easier, visual, and common across all manufacturers,” noted Peter Ely, a founding member of the NMRA DCC Working Group. ?“JMRI itself grew in complementary directions to allow the typical model railroader to do things at the system-wide railway level only dreamed about by the original working group.”

Jacobsen said that JMRI development continues to keep pace with changes in technology and that another 10,000 updates are likely over the next decade.? It is through the continued interest and contribution of time and effort of the community members that JMRI feature are expanded and technology updated.? Interest in JMRI extends over dozens of user forums and social media platforms, with over 8,000 users participating in the primary user forum on groups.io, asking questions and contributing answers and suggestions that are used to expand and improve JMRI capabilities.

?

Congratulations and thanks to all who have participated in using and improving JMRI, now and into the future.

?

About JMRI

?

The Java Model Railroad Interface project was initially a modest undertaking of some dozen model railroad hobbyists who wanted to bring their computer skills to the emerging field of digitally controlled model trains.? Forming an open source software development project, their first output was called DecoderPro? and provided easy-to-use screens for managing “configuration variables” in the small computers that manufacturers and hobbyists were installing in train engines. ?The effort expanded to create PanelProTM with features for controlling all types of electronic devices and automating train operations by monitoring sensors around the layout.

Unfortunately, the community was soon embroiled in a copyright and patent dispute that resulted (after seven years of litigation) in the landmark Jacobsen v. Katzer case that helped establish the legal basis for today’s open software movement. The Electronic Frontier Foundation cites this case as one that has allowed the internet to flourish and find its way into millions of computers in homes, offices, and businesses.

?

JMRI today provides functions including management of Digital Command Control decoders in train engines, cars, and other devices, graphic display of small and large train layouts, on-line real-time operational monitoring of sensors and other devices, automation of train operations, and management of realistic train operation scenarios.? JMRI also provided the first widespread implementation of the WiThrottle protocol.

?

New releases of JMRI are made available to users approximately monthly.? JMRI is comprised of several thousand source files available at GitHub, the free open source code repository, and is maintained and expanded by community members. ?One of the milestones celebrated today is the 10,000th developer update to the JMRI repository on GitHub, indicating the robustness and on-going development of this important open source project.

?

For more information, contact Bob Jacobsen via email: info@...

?


Locked Re: Actually getting Raildriver working (on windows) How to Calibrate??? #raildriver

 

Bob J,
I believe the ReDACIOModule was used for the full-size AAR control stand that PI Engineering produced.? It is quite different than the desktop Rail Driver.
?
Bob Bucklew
?


From: Bob <rgj1927@...>
To: jmriusers <jmriusers@groups.io>
Date: Saturday, 7 September 2024 9:03 AM EDT
Subject: Re: [jmriusers] Actually getting Raildriver working (on windows) How to Calibrate???

I don’t think JMRI has a calibration menu for the RailDriver. There used to be a little Windows program that could do the calibration, but I don’t know where to get that now.

There are two files in the JMRI distribution that carry calibration data:

xml/jinputDevices/ReDACIOModule.xml

xml/jinputDevices/RailDriverModernDesktop.xml

I don’t know why there are two.

Bob

> On Sep 7, 2024, at 10:21?AM, joshuaclough via groups.io <joshuaclough@...> wrote:
>
> TL;DR
> How do you calibrate this thing in JMRI?
> .................................................................................................
>
> So I have come to the conclusion that do to "reasons" (jhidrawplugin-win.dll only existing in 32bit form) Raildriver only works on 32bit versions of JMRI. This Translates to using version 4.26 as the last 32bit compatible version.
> So after downgrading I do actually get the "raildriver" menu item (under debug) to do something. I does actually seem like it's trying to work, unfortunately it is said that one should calibrate the deadzones least it overloads JMRI and it runs out of memory.
> Well that seems to be exactly what is happening.
> Where is this calibration window that never seems to appear?



Bob Jacobsen
rgj1927@...