开云体育


Re: JMRI script; Digitrax DCS52 resetting speed to 0 while JMRI script running

 

And since you are already in a Digitraxx profile, open the slot monitor to see which slots have which addresses set, and clear out any leftovers.
--

---
Thomas
DeSoto, TX


Re: JMRI script; Digitrax DCS52 resetting speed to 0 while JMRI script running

 

and from experience, lots of script changes happened between those releases.
So starting with an old JMRI version can cause LOTS of issues later.
Keeping up with the current release may seem hassle, until you find a feature you need is not in the old version and you have to do a big bang update.
just saying... (Experience!)
--

---
Thomas
DeSoto, TX


Re: Reading CVs #zimo #mxulf

 

开云体育


If the same hardware works correctly with different software, then it is pointing to a bug in JMRI.听听

So, raise a bug report, and you're probably hoping that a developer will work with you to identify what's going on, and fix it.听 听


- Nigel


------ Original Message ------
From "jonas_sth via groups.io" <jonasj245@...>
Date 21/04/2025 19:43:17
Subject Re: [jmriusers] Reading CVs #zimo #mxulf

Hi Nigel

I can read all type of decoder with DCC setting with ZSP and if I repeat it, the value will be the same.

If read tree times CV1 I get three different result and the last one is OK the engine has address 3.
MXULF is only connected by a solitary track.


Re: Reading CVs #zimo #mxulf

 

Sorry, I don't think you see the log on my previous picture....
From PC Seq 163 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 125 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 163 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 126 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 163 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 127 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 163 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 128 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 164 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From CS Seq 129 (S) Reply 2 to/from CS (MX1) Read CV Loco: 0 DCC CV: 29 Set To: 14
From PC Seq 165 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 130 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 165 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 131 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 165 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 132 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 165 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 133 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 166 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From CS Seq 134 (S) Reply 2 to/from CS (MX1) Read CV Loco: 0 DCC CV: 17 Set To: 192
From PC Seq 167 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 135 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 167 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 136 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 167 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 137 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 167 (S) Prim to/from CS (MX1) Read CV Loco: 0 DCC CV: 1
From CS Seq 138 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From PC Seq 168 (S) Ack/Reply 1 to/from CS (MX1) Prog CV听
From CS Seq 139 (S) Reply 2 to/from CS (MX1) Read CV Loco: 0 DCC CV: 18 Set To: 128


Re: LogixNG - Sanity check and guidance

 

Nick,

For your turnouts, you might look at using a Route instead of LogixNG. 听It is designed to set a group of turnouts with a delay between each one.

You can use LogixNG to trigger the route.

Dave Sand



----- Original message -----
From: "nicklocke via groups.io" <nick.locke=21jubileepark.com@groups.io>
Subject: Re: [jmriusers] LogixNG - Sanity check and guidance
Date: Monday, April 21, 2025 3:01 PM

Hi Daniel,
I think I understand now. In my mind, I was over-simplifying the "single thread" idea.听 So was thinking that the "Execute A after......" would block the thread for ten seconds, then execute the "return" and only then would the next ConditionalNG get access to the thread and be able to run. I think your "only one ConditionalNG can run at a time. So they have to wait for each other" threw me a little bit.
Internal Sensors coming right up!
I agree that implementing "wait" would be wrong!
Please may I also ask the best way to introduce a variable into the "Execute A after....."?听 I have another ConditionalNG, again running only at startup. It requests that various Turnouts move to their startup positions and, obviously I don't want all the servos to move at once, so have used "Execute A after...." to set a turnout, then wait, then set another turnout and so on. Empirical evidence suggests that is working fine!听

I hope that is a legitimate use of "Execute A after...."!
But I would like to avoid repeatedly hardcoding "1" in each of the many places where I am waiting. I tried adding a Memory Variable......

.....with the intention of then having something like:

But, there doesn't seem to be an obvious way.听 Trying "reference", unsurprisingly won't save. Trying LocalVariable or Formula save, but then fall over at run-time, again unsurprisingly as I have a Memory Variable not a Local Variable or a Formula . If you have time, it would be great to have a view on how best to introduce a variable (which ideally needs to be visible across multiple ConditionalNGs).
Thanks, Nick


Re: LogixNG - Sanity check and guidance

 

Hi Daniel,
I think I understand now. In my mind, I was over-simplifying the "single thread" idea.听 So was thinking that the "Execute A after......" would block the thread for ten seconds, then execute the "return" and only then would the next ConditionalNG get access to the thread and be able to run. I think your "only one ConditionalNG can run at a time. So they have to wait for each other" threw me a little bit.
Internal Sensors coming right up!
I agree that implementing "wait" would be wrong!
Please may I also ask the best way to introduce a variable into the "Execute A after....."?听 I have another ConditionalNG, again running only at startup. It requests that various Turnouts move to their startup positions and, obviously I don't want all the servos to move at once, so have used "Execute A after...." to set a turnout, then wait, then set another turnout and so on. Empirical evidence suggests that is working fine!听
I hope that is a legitimate use of "Execute A after...."!
But I would like to avoid repeatedly hardcoding "1" in each of the many places where I am waiting. I tried adding a Memory Variable......
.....with the intention of then having something like:
But, there doesn't seem to be an obvious way.听 Trying "reference", unsurprisingly won't save. Trying LocalVariable or Formula save, but then fall over at run-time, again unsurprisingly as I have a Memory Variable not a Local Variable or a Formula . If you have time, it would be great to have a view on how best to introduce a variable (which ideally needs to be visible across multiple ConditionalNGs).
Thanks, Nick


Re: Reading CVs #zimo #mxulf

 

Hi Nigel

I can read all type of decoder with DCC setting with ZSP and if I repeat it, the value will be the same.

If read tree times CV1 I get three different result and the last one is OK the engine has address 3.
MXULF is only connected by a solitary track.


Re: Nce power cab issue

 

开云体育

All jumpers on the NCE-USB gives you the widest range of supported commands and runs at 19,200 baud. Some of the other ones tell JMRI that it can鈥檛 do this or that. Getting the right match matters. But generally, all off or all on are the most often used selections. All off jumpers gives the oldest and most limited features.

-Ken Cameron, Member JMRI Dev Team


Re: Command Line Options...

 

开云体育

Robert,

Back in the days before Profiles, the command line was the trick. At one time my desktop had 20-30 different PanelPro icons, one for each layout I worked on. I think it is still there.

-Ken Cameron, Member JMRI Dev Team


Re: LogixNG - Sanity check and guidance

 

开云体育

Nick,

The problem with your solution is that the action "Execute A after 10 seconds" does not stop the ConditionalNG. The ConditionalNG continues to run and stops as soon as all the actions are completed. And then the rest of the ConditionalNGs run. The "Return" action is executed after 10 seconds, but at that time the other ConditionalNGs have already been run.

I could add a new LogixNG action "Wait" that would stop the ConditionalNG from running for some time, but it would be bad programming practice to use it. And there is a huge risk that non experienced users would use it in a bad way. LogixNG is intended to be used also by users which are not experienced developers but want to do some programming.

The solution I gave you with the internal sensor will keep the other ConditonalNGs from doing their stuff before they are supposed to do so.

Daniel

On 2025-04-21 16:59, nicklocke via groups.io wrote:

Thanks Daniel.
Much appreciated that you took the trouble/time to ask on the JMRI developers list.听 I can see that Bob has replied, but it looks like I don't have access to answer there. Bob makes a good point about responses not necessarily being received, although the send queue becomes empty. In my specific use case, that is fine though. All I am trying to prevent is more and more messages being added by the NGs, making the send queue longer and longer- the responses coming back later "asynchronously" is fine.听I do agree with Bob's point about possible user confusion though.
Thanks for confirming that the single threading is going to work how I expected.
I think I might be missing something with your recommendation though. All I am trying to do with the "Execute A after 10 seconds" is make sure that there is time to breathe before the next ConditionalNG kicks into life. I agree that if they were running "all over the place" then it would make sense to use an internal sensor. But here, I am running the ConditionalNGs once when JMRI starts and never again. So, unless I am missing something (which is very likely), I can't see any functional difference between:
  • Wait ten seconds ....... Return ....... Next Conditional NG starts (because the thread is now free).
  • Wait ten seconds ....... Set Internal Sensor ...... Next Conditional NG starts (because the thread is now free) ....... NG checks the sensor, which will always be set by now, and carries on.
Maybe though, good practice says I should use the internal flag approach, just in case the ConditionalNGs are not always only run at startup in the future.
Thanks, Nick.


Re: JMRI script; Digitrax DCS52 resetting speed to 0 while JMRI script running

 

On Mon, Apr 21, 2025 at 12:46 PM, <bluebuffalo2004@...> wrote:

I am running JMRI version 4.26, Jarva 1.8.0_40 on a Win 11 PC. The layout is controlled using Loconet: DCS52 and CAN via MERG.

Just curious, but why are you using a version of JMRI that's 3.5 years old? There have been half a dozen newer production versions since then...
Steve
"Breezlys"


Re: Nce power cab issue

 

开云体育

Waking up this morning to another possible reason for Peter鈥檚 problem.

IIRC,听 the NCE USB has some jumper settings that define its appearance to JMRI.听

_IF_ the OP has different profiles in JMRI the connection definition could be different between the two profiles, resulting in one Power Cab profile having settings that work, and the other with settings that don鈥檛.听听

I also have memories that one set of USB jumper configurations was kind of 鈥渦niversal鈥�.

My own hardware is packed away at the moment, so I鈥檓 unable to check settings.

Perhaps this will help others recall some of the idiosyncrasies of the USB configuration.

Best regards,

Steve


Re: JMRI script; Digitrax DCS52 resetting speed to 0 while JMRI script running

 

On 4/21/2025 1:25 PM, bluebuffalo2004 via groups.io wrote:
Any help or suggestions would be appreciated.
You are probably dealing with the typical "two LocoNet throttles controlling the same LocoNet slot" problem.

Each throttle is supposed to send its speed to its slot number at at least once per (n) seconds. One (or more!) of them is requesting the slot to be at a speed of zero. Your script has presumably requested some other speed, And the script loses control - until its throttle determines that it should re-send its (non-zero) speed! And, when the other throttle re-sends its "speed equals zero", it just stops. Etcetera...

Your script probably _needed_ to deal with the LocoNet "Steal" mechanism. But you ignored it or just said "ok, just steal it". But that DID NOT tell the other thorttle to "stop using the slot", so the other throttle WILL continue to send its "set speed to zero" message.

So, you probably _need_ to deal with the _other throttle_. That means "Releasing" that loco from _any_ throttle where it exists. (And possibly dispatching from tetherless throttles, _AND_, in my opinion, turning off the throttle power and/or pulling the batteries from the throttle if possible.

And, the loco needs to be released from any JMRI or other software throttle. And be aware that "debugging" a JMRI script-based throttle can, potentially, be left "alive" in some circumstances. I would recommend that you might need to occasionally "quit" JMRI and re-start JMRI, to ensure that you do not have "old", "crashed" script code still running...


Re: Reading CVs #zimo #mxulf

 

开云体育

What happens if you read the not-Zimo decoders using ZSP ?听 That might start to isolate whether problem is in MXULF, or in how JMRI operates.听听

Alternatively, do you have a conventional command station which could interface to JMRI, rather than the Zimo programmer ?



Sent from


From: jmriusers@groups.io <jmriusers@groups.io> on behalf of jonas_sth via groups.io <jonasj245@...>
Sent: Monday, April 21, 2025 2:36:55 PM
To: jmriusers@groups.io <jmriusers@groups.io>
Subject: Re: [jmriusers] Reading CVs #zimo #mxulf
By the way,
I am running Win 11 and both ZSP and ZCS application work with MXULF.


Re: [cats-users] Command Line Options...

 

Yes, the profile selector uses the "user name".
The hex value makes the profile name unique.

Dave Sand



----- Original message -----
From: "Robert Heller via groups.io" <heller=deepsoft.com@groups.io>
Subject: Re: [jmriusers] [cats-users] Command Line Options...
Date: Monday, April 21, 2025 12:40 PM

At Mon, 21 Apr 2025 13:13:08 -0400 "Bob Jacobsen via groups.io" <rgj1927=gmail.com@groups.io> wrote:

>
>
> > On Apr 21, 2025, at 1:06锟斤拷锟斤拷锟斤拷PM, Robert Heller via groups.io <heller锟�epsoft.com@groups.io> wrote:
> >
> > OK, it seems you have to somehow "know" the magic hex identifier tacked onto
> > the profile name in order for the -p option to work (this means digging into
> > the profiles.xml file to find it).听 Arg...
>
> No, you can use the path to the profile directory if you don't have the profile ID.听 C.f. the quoted documentation.
>
> If you still want the profile ID, you can get it from the messages emitted when you start JMRI:
>
>听听听听听 [java] 13:07:24,492 apps.Apps听听听听听听听听听听听听听听听听听听听听听听听听听听听听 INFO听 - Starting with profile Dispatch_Work_in_Progress.3f79267a [main]
>
> Bob

Yes, this works, but I am thinking it *should* be possible for JMRI to figure
this out and allow a "simplified profile ID" on the command line. Firefox (for
example) manages to do this. So, it should be doable in JMRI. The GUI uses
the simplified profile ID, which would be the "obvious" thing to use on the
command line, but appearently not. Which is counter intutitive.

>
>
> 锟斤拷锟斤拷锟斤拷
> Bob Jacobsen
>
>
>
>
>
>
>听
>
>
>
>

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







JMRI script; Digitrax DCS52 resetting speed to 0 while JMRI script running

 

Hi,

I have only recently started using JMRI, a steep learning curve, and scripting using modified JMRI example scripts.

I am running JMRI version 4.26, Jarva 1.8.0_40 on a Win 11 PC. The layout is controlled using Loconet: DCS52 and CAN via MERG.

I hope that this list is the appropriate place for my query.

Using the BackandForth.py (modified) I have managed to get a loco to go back & forth several times. The problem I have is that the loco randomly stops.

Using the Loconet Monitor I found that the DCS52 sends 鈥淪et speed of loco in slot 9 to 0鈥� at intervals, which causes the loco to stop mid script.

Is there some way to stop these DSC52 commands? Or am I not taking proper control in the script.

I have attached a copy of the script.

Any help or suggestions would be appreciated.

Regards,

Tim


Re: Reading CVs #zimo #mxulf

 

By the way,
I am running Win 11 and both ZSP and ZCS application work with MXULF.


Re: [cats-users] Command Line Options...

 

At Mon, 21 Apr 2025 13:13:08 -0400 "Bob Jacobsen via groups.io" <rgj1927@...> wrote:



On Apr 21, 2025, at 1:06芒聙炉PM, Robert Heller via groups.io <heller辝psoft.com@groups.io> wrote:

OK, it seems you have to somehow "know" the magic hex identifier tacked onto
the profile name in order for the -p option to work (this means digging into
the profiles.xml file to find it). Arg...
No, you can use the path to the profile directory if you don't have the profile ID. C.f. the quoted documentation.

If you still want the profile ID, you can get it from the messages emitted when you start JMRI:

[java] 13:07:24,492 apps.Apps INFO - Starting with profile Dispatch_Work_in_Progress.3f79267a [main]

Bob
Yes, this works, but I am thinking it *should* be possible for JMRI to figure
this out and allow a "simplified profile ID" on the command line. Firefox (for
example) manages to do this. So, it should be doable in JMRI. The GUI uses
the simplified profile ID, which would be the "obvious" thing to use on the
command line, but appearently not. Which is counter intutitive.



芒聙聪
Bob Jacobsen
rgj1927@...










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


Re: [cats-users] Command Line Options...

 

OK, it seems you have to somehow "know" the magic hex identifier tacked onto
the profile name in order for the -p option to work (this means digging into
the profiles.xml file to find it). Arg...

Firefox does something simular: prefixes profile names with a unique id
string, BUT the firefox -P option does not expect the user to know this unique
id string, instead it using a matching process.

At Mon, 21 Apr 2025 12:18:33 -0400 "Bob Jacobsen via groups.io" <rgj1927@...> wrote:


You can specify the profile from the command line when starting JMRI from a command line:



Bob

On Apr 21, 2025, at 11:06芒聙炉AM, Robert Heller via groups.io <heller辝psoft.com@groups.io> wrote:

I know that I am probably one of the very few people who use the command line
(maybe the only person?), but it is just tiresome to have to manually go
through the File menu to load files (into PanelPro, CATS, etc.). What is
involved to make it possible to add CLI options to do this on the command
line? Also having to always deal with selecting the profile when starting
LccPro, etc. is also anoying -- is there a CLI option for that?
芒聙聪
Bob Jacobsen
rgj1927@...










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


Re: Command Line Options...

 

The profile selector needs to be disabled using "Preferences -> Config Profiles".

The command line uses the profile id:
This is found in the "profiles.xml" file at ~/.jmri.

Dave Sand



----- Original message -----
From: "Bob Jacobsen via groups.io" <rgj1927=gmail.com@groups.io>
Subject: Re: [jmriusers] Command Line Options...
Date: Monday, April 21, 2025 11:34 AM



> On Apr 21, 2025, at 12:30鈥疨M, Robert Heller via groups.io <heller=deepsoft.com@groups.io> wrote:
>听
>听
> I can't seem to get this听 to work.听 I am not sure what I am doing wrong.
>听
> I use:
>听
> LccPro -p fruitloopshub
>听
> But it still pops up the "Use configuration profile: " dialog.


I don鈥檛 use this myself, but note that the help page says:

"The profile can be specified by its complete path or by its internal Id.鈥�

So I鈥檇 try听

LccPro -p ~/.jmri/fruitloopshub.jmri

Or get the internal iD from the ~//jmri/profiles.xml file and use that.

Bob

鈥�
Bob Jacobsen