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
toggle quoted message
Show quoted text
----- Original message -----
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
?
|
I agree.
Daniel
On 2024-09-08 02:53, Steve_G wrote:
toggle quoted message
Show quoted text
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.
?
|
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.
?
|
No, I was looking for a test item.?
toggle quoted message
Show quoted text
----- Original message -----
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 -----
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 -----
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 -----
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
|
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:
toggle quoted message
Show quoted text
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 -----
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 -----
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 -----
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
|
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
toggle quoted message
Show quoted text
----- Original message -----
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
|
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
toggle quoted message
Show quoted text
----- Original message -----
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
|
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
toggle quoted message
Show quoted text
------ 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@...
|
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
|
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: ?
|
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
|
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
|
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
?
toggle quoted message
Show quoted text
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)
?
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@...
|
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
toggle quoted message
Show quoted text
On 7 Sep 2024, at 18:37, JerryG via groups.io <jerryg2003@...> wrote:
?
?
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@...
?
|
?
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
?
toggle quoted message
Show quoted text
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@...
|