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

Multi-Application FDL #19

Open
Rahix opened this issue Nov 4, 2024 · 1 comment
Open

Multi-Application FDL #19

Rahix opened this issue Nov 4, 2024 · 1 comment
Labels
enhancement New feature or request fdl Fieldbus Data Link

Comments

@Rahix
Copy link
Owner

Rahix commented Nov 4, 2024

Right now the FDL can only deal with one upper-layer application. This is rather limiting for more complex usecases. The FDL should be designed to allow an arbitrary amount of applications to run ontop of it and somehow allocate resources between them fairly.

Thoughs:

  • We already have a conflict between low-priority message cycles and the GAP scan (currently the GAP scan always has priority).
  • When multiple applications are present, should their cycles be synchronized?
  • Is round-robin scheduling enough or do we need actual priority management?
  • The list of applications is passed at every poll step. A user could pass a different list on each cycle which would disrupt any state kept in the FDL driver. Need a collection type in between? How does access work, then?

Motivating Use-Cases:

  • Running a bus scan in addition to active DP communication.
  • Non-DP protocols alongside the DP master (e.g. an ethernet bridge, or a programming upload/download interface)
  • MPI communication alongside DP?
  • FMS?
@Rahix Rahix added enhancement New feature or request fdl Fieldbus Data Link labels Nov 4, 2024
@Rahix
Copy link
Owner Author

Rahix commented Nov 15, 2024

Basic multi-application FDL support was implemented in commit f644cf6 ("fdl: active: Implement multi application polling"). This already takes care of most things, there are only two edge-cases that are not entirely clean yet:

  • Priority of telegrams is not taken into consideration. One application does its full cycle before the next application gets a chance at high priority telegrams. In practice, this is fine, but it's not nice to have this delay present.
  • The GAP scan is not really integrated into the scheduling and always takes precedence over other low priority communication.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request fdl Fieldbus Data Link
Projects
None yet
Development

No branches or pull requests

1 participant