ChimeraTK / ChimeraTK/ApplicationCore

Implement persistency option for application output variables

Open
#37 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

redmine
Dominant language
C++
Stars
1
Forks
5
Avg merge
1m
Merged PRs (30d)
1

Description

DeviceToControlSystem variables can conceptually not be presisted by the control system. The application has to take care of this in case the values cannot be re-calculated when re-starting the server.

Task: The Output should get an option to persist this variable (off by default). When enabled, the variable is always written to file when a write is called. When the application is started/initialised, the variable content is read from the file.

Details:

  • The implementation should happen with a decorator. Like this any output (to Device, Control System or to other ApplicationModules) can be saved and restored.
  • Make sure to flush the file after each write. Leave a comment in the code that this has to be tested manually by killing the application with -9 and check that the last value is restored correctly at server start. This kind of test is not well suited for an automated test.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the Output implementation and the application startup, initialization, and write paths for DeviceToControlSystem variables. Add a decorator-based persistence option that is off by default, restores values at initialization, writes and flushes after each write, and includes the requested manual -9 recovery test comment.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.