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

Sub-Systems ? #148

Open
FaBLPR opened this issue Jun 4, 2022 · 3 comments
Open

Sub-Systems ? #148

FaBLPR opened this issue Jun 4, 2022 · 3 comments
Labels

Comments

@FaBLPR
Copy link

FaBLPR commented Jun 4, 2022

I just started to play with the app (which is really good) but can't find a way to use a sub-system in another system. Is it a limitation ? Do you plan to do something for this ?

Thanks !
Fabien

@ecarriou
Copy link
Member

ecarriou commented Jun 6, 2022

Hello,

maybe it is not well documented but you can compose systems.

For example if you have created System-A and System-B systems:

Capture d’écran 2022-06-06 à 15 28 19

And then if you click on the import button you will be able to select System-B to be composed with System-A:

Capture d’écran 2022-06-06 à 15 28 37

Documentation is here. I will update it soon to add more details.

Is it what you need ?

@FaBLPR
Copy link
Author

FaBLPR commented Jun 6, 2022

Thanks, this feature allows to duplicate the content of the input system into the target system, which is indeed interesting, but I was more thinking to actually reference another system as a component to have a "system of system" methodology.
Thanks !
Fabien

@ecarriou
Copy link
Member

ecarriou commented Jun 6, 2022

I think that all notions that you are talking about are not yet exposed in System Designer UI, but they are implemented in System Runtime, the JavaScript lib used to run systems.

At runtime a system is a component (from _System class) and can be required like a classic component. You can see here _System model.

Capture d’écran 2022-06-06 à 22 50 44

Capture d’écran 2022-06-06 à 22 51 07

When you are in the start method of your system, this refers to the current component, the system, and so you have access to all these properties / methods / ... .

By the way a system is managed like an OSGi module, you can start / stop / install / uninstall a system on the fly. This is what I do in System Designer to install / remove extensions. System Designer is the "core" system and extensions are sub-systems that can be installed / uninstalled.

Things can be easily very complex that's why in System Designer, by default, I did not exposed this complexity. Once you know how things work, you can start to go deeper.

I think it deserves more documentation on System Designer side but you can read System Runtime documentation to understand what is under the hood.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants