Keyboard Shortcuts
Likes
- Jmriusers
- Messages
Search
Locked
Re: Operations - Somewhat complex senario - would like help
John,
Set the number of cars requested out of staging in your route to 135 or more.? For the barge, you need 20 moves, 10 to put cars on the barge, and 10 to pull them off.? Set the number of cars to return to staging to 135 or more. Dan |
Locked
MQTT Connection in JMRI
I just noticed last night that there is now a MQTT connection type in JMRI. This is exciting. Especially for me, since I was planning on using MQTT connection in JMRI through a custom script. IT seems though that this connection type is still in development even though it is in a production release. From what I read it is only available in for turnouts right now. When I added the connection and went to turnouts it seems that it created another internal connection type for the MQTT connection.?
I was hoping if someone could share if this development is going to actively grow for this connection type to include sensors, lights, records, etc.? I think that in the connection type a username and password field should be included in case someone has username and password required on the MQTT server and also the ability to choice what the master topic will be.? Again, I think that this is great for JMRI. Especially since, model railroads are using Arduino based boards such as the ESP8266 and ESP32 which are commonly used with MQTT.? Chris? |
Locked
Genesis OEM TSU2
Hi, i am trying to help a friend, over the phone!, with his Athearn Genesis F45 with TSU2. The basic problem is this engine is not listed in the choices when reading the loc with decoder pro. The F45 and FP45 are listed in the TSU1 but some of the CV's have been changed with different options in the TSU2. ?I was using GP38-2 as a stand in but this became problematical also. Is there any chance that the F45 could be added to the list? ?Thanks to Michael Mosher I could get the new file on the WOWV3and 4 diesel, download and install into the current version of decoder pro. Thanks Again, Rick.
|
Locked
Re: Operations - Somewhat complex senario - would like help
¿ªÔÆÌåÓýJohn A train departing Staging must pull all the cars on the track.? Your train has a route that calls for 10 pick ups at Staging. The departure track has 135. So, for your number of pick ups 1 through 10 cars on the track will work. Train will depart staging (Storage), there are 1 tracks? ? Staging track (Storage ) has 0 loco(s) and 135 cars?
? Staging track (Storage ) has more cars (135) than
requested by train's route (10)?
? ? Staging track (Storage ) cannot service train (S to B to
S)?
Jim |
Locked
Re: Scripts
In one way or another, we are all outsiders from time to time. Certainly I am an outsider when it comes to understanding the documentation of RailCom or any of the other implementations of the collection of DCC transmitter-receiver pairs that are collectively called Reporters in the JMRI context. Also, there is much more of the JMRI software that I don't understand, than there is of the PanelPro sections that I do have a working grasp of.
Your original post referenced both "AutomatonExample.py" and "BackAndForth.py" and I took those as the beginning of a common vocabulary. No software code of more than a few lines has ever made sense to me "at first sight" and I used to teach Computer Science back when that was an embryonic field of study.
A single loco automatically trundles back and forth between locations named D and G perhaps going through locations E and F. Other trains can intrude at either or both D and G but cannot go into E or into F. Someone is controlling each of those other trains and watching to prevent a collision with the automatically controlled train. Is this an over simplification? Or did you also want the automatically controlled train to wait at E if D is occupied?
In the simplification, "each of these terminal blocks" means locations D and G? JMRI uses "blocks" with a subtly different meaning and often someone on this list will interchange Sensor for Block when there is a one-to-one correlation.
The portion of the script that is intended to do what you describe is only sketched at this stage since I remain ignorant of the workings of RailCom. In particular, some of the documentation that I have found uses the apparent interchange of the words "Sensor" and "Detector" and "Reporter" as if they have the same meaning in this context. Starting at line # 168 with the text:
an endless loop of wait until the Sensor identified as "fpSensor" changes to ACTIVE and the DCC loco number matches. Since the method named "AreWeThereYet()" is called for each direction the train is moving and is supplied with the predetermined destination Sensor for that direction, only one effort is needed to debug the RailCom portion of the script. The intention was that once the Sensor becomes ACTIVE, the code could determine what the loco DCC address was and change the value of "temP_Int" to that address. IF that DCC address matches the value of "self.LocoAddress" then the condition requested at line # 170 becomes True and we then stop the automatically controlled locomotive and return to the calling procedure to continue. That section contains numerous links to JMRI documentation webpages but is largely based on wishful thinking and perhaps even dead end misunderstanding. After looking at "ReporterFormatter.py" that Paul identified, it is now likely that what is happening in the while -- loop is waiting for the wrong information. If you are serious about understanding the syntax and indentation rules that drive Python programmers crazy, it is important to get a good editor that understands most of the rules of the language. My favorite is NotePad++ that is free and I discovered at a long time ago. There are a lot of other good choices available. When I was in the software business, we used to claim it was easier to start a war by claiming one editor was best than any other way. If this is beginning to help, we can discuss what would be next. It was my hope that some RailCom or Reporter experts would have pointed out what you needed to know in this area and let them proceed. The example scripts that refer to Reporters do not yet make much connection to what I can find in the help webpages. Cliff |
Locked
Operations
I am interested in trying out a new operating scheme.However I want to do this without disturbing my current program. Does the program allow for a way for this to be accomplished
Jerry Hampton? |
Locked
Re: Operations - Somewhat complex senario - would like help
Guessing I have something wrong in the set up of staging?
Build Report for train (S to B to S) built on 8/15/18 1:36 PM?
?JMRI version 4.13.2+R8a2b21d?
? Build report detail level: Normal?
? ?Build report detail level: Detailed?
? ? Build report detail level: Very Detailed?
? ? Router build report level: Very Detailed?
?
? ?Train Build Options:?
? ?Build option is set to aggressive?
? ?Perform 2 passes?
? ?Make departure track available after train is built?
? ?
? ?Staging build options:?
? ?Make departure track available after train is built?
? ?Allow cars to return to staging?
? ?
? ?Car routing options:?
? ?Car routing via yards is enabled?
? ?Car routing through staging is enabled?
? ?
? ?Specific build options for train (S to B to S):?
? ?Allow cars to return to staging?
? ?Allow local moves if car has a custom load or FD?
? ?Allow cars to travel from origin to terminal?
?
? Train (S to B to S) route (StBtS):?
? 6r1 Staging (Storage) request 10 pick ups, maximum train length 10,000 feet?
? 6r2 Location (Charleston Barge) requests 10 moves, maximum train length 10,000 feet?
? 6r3 Staging (Storage) requests 10 set outs?
?Route (StBtS) requests 15 cars and 30 moves?
?
?Train requirements:?
?Train does not require any locomotives?
?
??
?Train terminates into staging at (Storage), there are 1 tracks?
?Train will return to staging (Storage) reuse departure track?
??
?Train will depart staging (Storage), there are 1 tracks?
? Staging track (Storage ) has 0 loco(s) and 135 cars?
? Staging track (Storage ) has more cars (135) than requested by train's route (10)?
? ? Staging track (Storage ) cannot service train (S to B to S)?
?
?Train requirements:?
?Train does not require any locomotives?
?
?Could not find a departure staging track at Storage that meets the train requirements?
?Build failed for train (S to B to S)?
John Crellin Bradenton, FL |
Locked
Re: Full timetable automation - AutoDispatcher 2 - abstraction - documentation - scripting
Hi,
We use both JRMI and Traincontroller at the museum on a Win 10 i3 box (not at the same time).? JMRI seems to be better at 'undertanding' the various Digitrax pieces (DCS240, lots of boosters, BDL's, DS64's, throttles, etc.) presumably because of the long development history with this product line.? By that I mean real time 'fixing' of detection issues, initialization, getting loco info from DecoderPro, consisting on the fly, product installation, monitoring Loconet, etc.)? The table driven interface makes for easy access to most items.? We are moving to more modern products from RR-Cirkits and their setup is also easier. But we use the layout editor components more as a 'magnetic board' to move markers defining trains (e.g. "<SP5007" - a train moving West on the layout) to the designated Train Order locations/instructions given by the dispatcher (human) to engineers and let the subsequent tracking show progress.? JMRI Web services and WiFi throttle components are much easier to use than in TC in that I can also provide a simple alternative layout 'screen' to engineers in the gallery showing occupied blocks and 'pseudo signals' for their perusal. (the 5k square foot layout is not walk around.)? We also deploy virtual panels in yards to set ladders, etc.? It requires a dispatcher to be more involved/savvy.? I have tried AutoDispatcher and Dispatcher to automate train running but have not been able to get to a JMRI presentation so the various slides available from the files section without notes (and the questions that might have been answered) has made a steep learning curve for me to implement.? This also makes it not the software of choice for people 'learning' to dispatch. TC requires a great deal of setup (e.g. getting the locos (400+) and trains into the database and any rules about train operations). ?? But it is very easy to route/transit with a drag and drop method from one destination to another and TC takes care of all conflicts.? We can have up to 10-15 trains running during an Open House.? TC also simplifies the 'issue' of incorporating turnouts in layout blocks/sections (there are over 100 on the mainline) in that they do not matter as they are only route paths.? I still have trouble getting the 3 double slips on my home layout to function in JMRI automation and complex CP's (3/4 crossovers) at the museum are a signaling and routing 'challenge' (using either SSL or Signal Masts).? Note that no 'scripting' is necessary.? What you should expect out of a $$$ product. [Note: I am a long time Linux user and would prefer it as the OS.? Virtual Box or some other app is better for Windows emulation, especially TC.? I have had success at home with Parallels on a Mac.? Wine just does not work well.] My 2 cents worth, Martin Booker, Superintendent, Pasadena Model Railroad Museum www.pmrrc.org |
Locked
Large Scale Bachmann Thomas DCC Sound Decoder
Hello-
Recently I purchased a Large Scale Bachmann Thomas & Friends DCC Sound Decoder. JMRI did recognize the decoder as being from Soundtraxx, but did not supply a specific decoder model to go with it. I chose the OEM Bachmann EZ Command 2 function decoder. Things seems to be working fine. It's reading and writing to the decoder just fine. At this time I'm just testing the decoder. Once I get it installed into Thomas I'll play around more with acceleration/deceleration, speed tables, etc. I know not all of the available CV's for the Thomas decoder show up on JMRI under the OEM Bachmand EZ decoder, but the big thing for me is being able to do accel/decel and speed tables. Some of the few CV's left to program for the Thomas decoder are easy enough the old fashion way using the throttle. But I'm left wondering if it's possible to add the?Large Scale Bachmann Thomas & Friends DCC Sound Decoder to the JMRI decoder selection roster? Eric |
Locked
Re: Z21 and POM
Paul,
toggle quoted message
Show quoted text
On Tue, Aug 14, 2018 at 06:38 PM, Paul Bender wrote: I have the write in POM mode working correctly now. ?You can download a daily build of JMRI that includes the update here:I downloaded build #2641 and I noted these problems: 1) Simple CV programmer: I have no error, CV is written correctly, but textbox "value" become 1 after each operation (I have "6" in the value textbox, I click "Write CV" button, CV is written but the textbox value become 1; if I re-read CV, I got 6). This is a bit confusing for me. 2) Editing 2 or more CVs on a sheet of a loco and pressing "Write changes on sheet" freeze the window after the second write operation and I have to close the window; is impossible to write 3 or more CVs. This occurs with all decoders (esu, zimo, lenz) I tested. Moreno |
Locked
Re: RPi-JMRI image updated
I have uploaded a new version which fixes the issue with PiSPROG. The new file is dated August 14.
Please give it a go and advise. --SteveT |
Locked
Re: How to terminate python script
Fred,
toggle quoted message
Show quoted text
Here is my take. import java import javax.swing import jarray import jmri class TestA(jmri.jmrit.automat.AbstractAutomaton) : def doClose(self, event): print("Close") # **** close command here **** self.f.setVisible(False) self.f.dispose() self.stop() def setup(self): print "Setup" self.f = javax.swing.JFrame("TEST",preferredSize = (200,80)) self.f.contentPane.setLayout(javax.swing.BoxLayout(self.f.contentPane,javax.swing.BoxLayout.Y_AXIS)) self.f.setDefaultCloseOperation(javax.swing.JFrame.DO_NOTHING_ON_CLOSE) self.f.setLocationRelativeTo(None) relButton = javax.swing.JButton("CLOSE WINDOW") relButton.actionPerformed = self.doClose panel1 = javax.swing.JPanel(preferredSize = (170,30)) panel1.add(relButton) self.f.contentPane.add(panel1) self.f.pack() self.f.show() self.start() return def handle(self): self.waitMsec(10000) print "loop" return True a = TestA() a.setName("TestA Code") a.setup() Since this thread is about terminating a script, I included the stop() call. I also changed the ON CLOSE to do nothing instead of DISPOSE. Otherwise the script keeps running without a window, which might be appropriate in some cases. Since this class is an AbstractAutomaton, I added the handle() method so that stop() does not create an error. Dave Sand On Aug 15, 2018, at 9:14 AM, Fred Miller via Groups.Io <tractionfan@...> wrote: |
Locked
Re: Signal Masts and Signal Mast Logic vs SSL
Allen,
toggle quoted message
Show quoted text
From the Dispatcher menu, select "Options >> Dispatcher Options". You can choose either "Signal Heads/SSL" or "Signal Masts/SML¡±. After you have made your changes, select "Options >> Save Options". Dave Sand On Aug 14, 2018, at 9:41 PM, ahouse3761 <trainmail1@...> wrote: |
Locked
Re: How to terminate python script
Bob,? thanks for your patient response to my query.? Unfortunately, I still am not "getting it."? Would you be so kind as to make what ever changes are necessary to close the window in the following script:
import java import javax.swing import jarray import jmri class TestA(jmri.jmrit.automat.AbstractAutomaton) : ?def doClose(self,event): ??print("Close") ??# **** close command here **** ??return ??def setup(self): ??print "Setup" ??f = javax.swing.JFrame("TEST",preferredSize = (200,80)) ??f.contentPane.setLayout(javax.swing.BoxLayout(f.contentPane,javax.swing.BoxLayout.Y_AXIS)) ??f.setDefaultCloseOperation(javax.swing.JFrame.DISPOSE_ON_CLOSE) ??f.setLocationRelativeTo(None) ??self.relButton = javax.swing.JButton("CLOSE WINDOW") ??self.relButton.actionPerformed = self.doClose ??self.panel1 = javax.swing.JPanel(preferredSize? = (170,30)) ??self.panel1.add(self.relButton) ??f.contentPane.add(self.panel1) ??f.pack() ??f.show() ??self.start() ??return a = TestA() a.setName("TestA Code") a.setup() |
Locked
Re: Scripts
Dear Ken,
Our last two messages have crossed each other. As far as I understand, I try to replace the sensor part in AutomatonExample.py by ReporterFormatter.py suggested by Paul Bender (second post in this topic). I am going to do that but being the first instance ever I write a script, I reserve the right of failure. Thank you very much. Yours, ????????????? Gabor |
Locked
Re: Scripts
Complement to the latter: the state of a sensor changes also when my train leaves its area; of course, this change is to be ignored, as well.
|
Locked
Re: Scripts
Gabor,
So for your purpose, you would change the script to use the reporters instead of the sensors. It would watch for the reporter to change, read it, if it sees the matching loco, then it would do the rest of the job be it stopping, pausing, reversing, etc... as needed. So you are setting up reporter listeners, which watch for the loco id, instead of the sensor listener, which watches the state of the sensor. Should be a fairly easy job of replacing the one part with the other. Just hope the other trains know how to stay out of the way of the train in the script. -Ken Cameron, Member JMRI Dev Team www.jmri.org www.fingerlakeslivesteamers.org www.cnymod.com www.syracusemodelrr.org |
Locked
Re: Scripts
The first alternative is the case: the (address of the) loco I want to move is known, action (stopping it and reversing its direction) is to be taken only when it gets reported by a sensor, while other possible change of sensor? state (caused by another train) is to be ignored.
Gabor |
Locked
Re: Operations - Somewhat complex senario - would like help
Thank you so much.? ?I will work on your recommendations this week and see what I get.? ?I had just started working with schedules so I will dive into this more along with your recomendation.
thanks. John Crellin Bradenton, FL |
Locked
Re: Two computers
¿ªÔÆÌåÓýGrahamI'm assuming you're running a recent version of Windows, as I don't see any explicit list of your computer's OS or hardware.? If I'm wrong, ignore the following. To perhaps gain insight into your problem, open task manager, go to the performance pane, and at the bottom, click on resource monitor.? Between the various task manager panes, and the resource monitor presentation, you should be able to identify where your bottleneck resides.? In particular, in Task Manager, remember that you can click at the top of each column and the column will sort in ascending or descending order, making it simple to identify the biggest performance hogs, memory hogs, disk hogs, etc.? Blair On 8/15/2018 7:37 AM, whmvd wrote:
|