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

Automation systems #2779

Merged
merged 15 commits into from
Jan 11, 2024
Merged

Automation systems #2779

merged 15 commits into from
Jan 11, 2024

Conversation

olperr1
Copy link
Member

@olperr1 olperr1 commented Nov 15, 2023

Please check if the PR fulfills these requirements

  • The commit message follows our guidelines
  • Tests for the changes have been added (for bug fixes / features)
  • Docs have been added / updated (for bug fixes / features)

Does this PR already have an issue describing the problem?

No

What kind of change does this PR introduce?

Feature

What is the current behavior?

No automation systems are available in the IIDM.

What is the new behavior (if this is a feature change)?
This PR introduces a first type of automation systems: the overload management systems.

Does this PR introduce a breaking change or deprecate an API?

  • Yes
  • No

If yes, please check if the following requirements are fulfilled

  • The Breaking Change or Deprecated label has been added
  • The migration steps are described in the following section

What changes might users need to make in their application due to this PR? (migration steps)

If you had define your own IIDM implementation, you should implement the following methods:

  • in your Network implementations:
    • Iterable<OverloadManagementSystem> getOverloadManagementSystems();
    • Stream<OverloadManagementSystem> getOverloadManagementSystemStream();
    • int getOverloadManagementSystemCount();
    • OverloadManagementSystem getOverloadManagementSystem(String id);
  • in your Substation implementation:
    • OverloadManagementSystemAdder newOverloadManagementSystem();
    • Iterable<OverloadManagementSystem> getOverloadManagementSystems();
    • Stream<OverloadManagementSystem> getOverloadManagementSystemStream();
    • int getOverloadManagementSystemCount();

Other information:

Signed-off-by: Olivier Perrin <olivier.perrin@rte-france.com>
Signed-off-by: Olivier Perrin <olivier.perrin@rte-france.com>
Signed-off-by: Olivier Perrin <olivier.perrin@rte-france.com>
Copy link

SonarCloud Quality Gate failed.    Quality Gate failed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 9 Code Smells

76.4% 76.4% Coverage
0.0% 0.0% Duplication

idea Catch issues before they fail your Quality Gate with our IDE extension sonarlint SonarLint

annetill and others added 3 commits December 18, 2023 16:50
- Remove enabled to tripping.

Signed-off-by: Anne Tilloy <anne.tilloy@rte-france.com>
- Change to current limit.

Signed-off-by: Anne Tilloy <anne.tilloy@rte-france.com>
@annetill
Copy link
Member

I have made some small changes following the meeting we have. Now:

  • We just have a double for current limit for each tripping ;
  • I have removed the low/high limit because not clear enough when we talk about current. I understand that we have a potential need (for this iidm version, or could be later ?) to check the active power flow direction at monitoring terminal (positive vs negative, or same charging vs generating, etc.). What is the best way to model that?

Signed-off-by: Olivier Perrin <olivier.perrin@rte-france.com>
Signed-off-by: Olivier Perrin <olivier.perrin@rte-france.com>
Signed-off-by: Olivier Perrin <olivier.perrin@rte-france.com>
Signed-off-by: Olivier Perrin <olivier.perrin@rte-france.com>
@olperr1 olperr1 added the Breaking Change API is broken label Jan 4, 2024
@olperr1 olperr1 changed the title [WIP] Automation systems Automation systems Jan 4, 2024
@olperr1 olperr1 requested a review from geofjamg January 4, 2024 10:18
@olperr1 olperr1 marked this pull request as ready for review January 4, 2024 10:18
return Type.BRANCH_TRIPPING;
}

Branch getBranchToOperate();
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is also available for the other tripping impl.
I can see 2 issues:

  • we use the Identifiable in the setter and getter and not the ID like for monitoredElementId. We have to be consistent.
  • the difficulty that we have by using the Identifiable is that we need to manager in the implementation the cleaning in case if the Identifiable removal. Otherwise you will have a link to a dead object, which is bad for a String but even worst if we keep a link to a removed Identifiable.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right.

As discussed together:

  • It will be better to introduce a global mechanism to address the problem of referenced network elements removal (deferred for now);
  • As a first step, I will replace the Identifiable by a String in the trippings. This won't have an impact on the IIDM serialization result so it will be possible to use Identifiables later without having to publish a new IIDM version.

Signed-off-by: Olivier Perrin <olivier.perrin@rte-france.com>
@olperr1 olperr1 requested a review from geofjamg January 9, 2024 13:22
Copy link

Quality Gate Passed Quality Gate passed

The SonarCloud Quality Gate passed, but some issues were introduced.

2 New issues
0 Security Hotspots
97.4% Coverage on New Code
0.0% Duplication on New Code

See analysis details on SonarCloud

@olperr1 olperr1 merged commit 8b1ac35 into main Jan 11, 2024
6 checks passed
@olperr1 olperr1 deleted the automation_systems branch January 11, 2024 14:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants