-
Notifications
You must be signed in to change notification settings - Fork 329
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
Encapsulated or Per-node Profiles #69
Comments
Objectives of this enhancement are:
The workflows I want to add support for by doing this are:
|
Currently connections are saved and read in the following manner:
|
I don't yet understand how this looks to the user. Say I'm using a shared directory (e.g. DropBox) and configure JMRI on machine A. In the process I create profiles X and Y. That all works nice. Now I go to machine B and fire the same JMRI program up, selecting profile X.
Thanks Bob |
It starts cleanly if the same connections can be established. If the connections on A were simulators, or are also available on B, JMRI on B would start as if it were on A. If the connections on A were real, but are not available on B, B would present the same errors as it does now. That said, it probably should detect that profile X has not been saved on B and, after an explanatory dialog, open the preferences so connections can be set up correctly on B.
You will be prompted to restart after saving changes (no change from current state). There should be no further prompting at this point unless the SystemNames for the connections change (either by deleting a connection, adding a connection, or changing that name in a connection).
It will start with the original A-saved connection configuration unless the SystemNames for the connections changed on B. There needs to be similar handling for file locations (if a file location is not in profile: or program:, it needs to be configured for on each new machine), and possibly other, not yet identified settings. |
Thank you. The (2) to (3) transition above can go one of two ways: Maybe I wanted my changes on B to be global, and maybe I wanted them to be machine specific. (Use cases for e.g. global: A & B are actually on two machines on the same layout, and I just changed the command station ID from DCS050; I'm using simulators to develop on two different laptops, and my real hardware connection is elsewhere) Will there be something that clues the user as to whether they're changing local vs global? |
As of now, for connections, I am working on making the UserName and SystemName global and everything else (that is controlled by a ConnectionConfig) local (i.e. that LocoNet / L1 exists is global, that LocoNet / L1 is a DCS100 or a simulator is local). I don’t know if anything needs to be indicated in that case, just documented. |
A follow up question to Bob's What difference is a user who today has a collection of two or more homogenous ( from the JMRI perspective ) computers that share a profile going to see in the future? These users expect any change To one system to appear on the others, as with the case of the command station change Bob was asking about. Paul |
Our documentation has always stated that using a single profile between two computers is neither supported or recommended, and our statements on the user's list have been consistent with that. Our documentation is also very explicit that only user files should be shared between computers, not configurations. It has always been an explicit design intent that a single configuration profile would support different hardware on different computers, but I am only getting around to implementing it now; users expecting an unsupported and not recommended use case will have to adjust their behavior. |
The on-file layout of the new configuration mechanism is contained entirely within the JMRI portable path
|
I'm currently writing connection disablement as a shared connection attribute. Should it per-node instead? |
Should the JMRIClient transmitPrefix preference be per-node or shared? |
Should the ECOS preferences handled by unpackElement() be per-node or shared? (See jmri.jmrix.ecos.networkdriver.configurexml.ConnectionConfigXml for the list of these preferences.) |
Randall, What is a node?? If you are meaning different computers, then the idea of the prefix is Now your question about the disabled or not.. Is the concept is the -Ken Cameron, Member JMRI Dev Team |
On Feb 23, 2016 7:51 AM, "Randall Wood" notifications@github.com wrote:
If all of the nodes are talking to the same server, then the prefix needs Paul |
This is substantially complete. Any issues with individual system connection preferences being in the wrong scope should be opened as new issues. |
Randall, So what is the idea now of how the preferences are split?? I'm trying to -Ken Cameron, Member JMRI Dev Team |
A layout item represents something on a layout (turnout, signal, etc…). A node is an object in a network; in this issue it is more specifically, a computer running JMRI. The preferences are split between what a node needs to know about a layout (mostly a shared idea of what layout items there are and how they work together) and what a node needs to know to connect to a layout (mostly a per-node idea of how a command station is connected to the node). |
Update NetworkFiles.shtml
It would be beneficial to users to be able to have profiles store per-node (or per-computer) configurations, so the entire profile can be stored in DropBox, on a thumb drive, or shared across computers in some other fashion without having to reconfigure the profile on almost every use.
Working on this is at https://github.com/rhwood/JMRI/tree/multi-node-profiles
The text was updated successfully, but these errors were encountered: