Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turnout technologies #62

Open
Asbelos opened this issue Nov 18, 2020 · 8 comments
Open

Turnout technologies #62

Asbelos opened this issue Nov 18, 2020 · 8 comments
Labels
Enhancement New feature or request TPL For TPL feature
Milestone

Comments

@Asbelos
Copy link
Contributor

Asbelos commented Nov 18, 2020

TPL needs to be able to refer to turnouts by simple id. There is no place for the bizarre mixture of commands that JMRI uses to transparently handle turnouts without the knowledge of the command station. Nor is there any sense in defining these dynamically.

TPL code currently provides support for the following turnout hardware configurations:

  1. DCC Accessory (equivalent to old )
  2. Servo connected to servo control board over I2C
  3. 2-Pin switch on native CPU pin
  4. 2-pin switch on I2C pin expander board

Others may be added as required.

The issue is "how to construct turnout control code such that the old commands work if TPL is not in use and TPL code is not built into the executable when its not used. "

@Asbelos
Copy link
Contributor Author

Asbelos commented Nov 20, 2020

We should also take consideration of the situation where a DCC based turnout is switched while the track power is off... This should not flip any status and should return or something is this is attempted from a command.

Also note the other improvement possibilities where DCC accessory messages are sent down channel B ... so make sure which track is powered.

@davidcutting42 davidcutting42 added TPL For TPL feature Enhancement New feature or request labels Nov 21, 2020
@davidcutting42 davidcutting42 added this to the v3.1.0 milestone Nov 21, 2020
@davidcutting42
Copy link

Make sure that you also include:

  1. Turnouts on the accessory buses

@davidcutting42
Copy link

Also, TPL needs to go in and set all of the DCC/accessory bus turnouts at startup instead of assuming anything. Better yet, set the turnouts at the beginning of every route just to be sure.

@Asbelos
Copy link
Contributor Author

Asbelos commented Nov 21, 2020 via email

@FrightRisk
Copy link
Member

I've asked Marada1 to join us here on this issue (or the TPL channel on Discord), but he posted this: "Quick question concerning this situation. If turnouts are all set for a route at the beginning wouldn't that limit operation to just one train since another might need turnouts in a different position? Seems to me to defeat the purpose. In my mind seems it would have to work in conjunction with block detection or some other detection or software analytic."

@FrightRisk
Copy link
Member

We have EEPROM and SDCards to be able to save to. The question remains how to handle something manually changed when the power is off. So a pie in the sky question is, do we require sensors? Do we have own hardware that devices need to be attached to? Do we need our own (or existing) bus structure with bi-directional communication? We have 2 possible busses, the DCC signal on the tracks and a separate direct control bus. How do we handle those? And do we have a "reset state" where we don't take anything for granted, we read what it was supposed to be from the last save and just force everything to that state?

@Asbelos
Copy link
Contributor Author

Asbelos commented Nov 21, 2020 via email

@marada1
Copy link

marada1 commented Nov 21, 2020

Whether it is TPL or LCN, (nrf network), ethernet or serial, for Command Station to become a defacto standard it will have to do something that DCC does not and that Command Station can achieve. That is 2-way communication. I do not think that for future needs eeprom would be an answer. Going to have to be something like an SD Card or flash memory. Have it so that any of the control systems through DCC++ update a file and when I command is received, the file can be referenced to determine position in the case of a turnout. After the turnout is moved, Command Station is notified of the movement and updates the file or memory. That also could work to the benefit of Command Station. CS concentrates on controlling engines and communicating with say Engine Driver and whatever will connect to Command Station to process instructions. So a seperate not for Ethernet, LCN, TPL, whatever. They can communicate via serial communications. Also prevents software bloat. The more you have one program try to do the odds increase that things will go wrong. This would also allow for upward compatibility. Someone starting out with DC can move up and they can. Also allows for future advances that have not been thought of yet such as RFID or even GPS for just the layout. Thoughts?

daniviga pushed a commit to daniviga/CommandStation-EX that referenced this issue Mar 26, 2023
* Rename docs/Automation/EX-RAIL-ref.rst to docs/automation/EX-RAIL-ref.rst
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Enhancement New feature or request TPL For TPL feature
Projects
None yet
Development

No branches or pull requests

4 participants