PowerGrids.Switching.Core 1.0.0

dotnet add package PowerGrids.Switching.Core --version 1.0.0
                    
NuGet\Install-Package PowerGrids.Switching.Core -Version 1.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="PowerGrids.Switching.Core" Version="1.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="PowerGrids.Switching.Core" Version="1.0.0" />
                    
Directory.Packages.props
<PackageReference Include="PowerGrids.Switching.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add PowerGrids.Switching.Core --version 1.0.0
                    
#r "nuget: PowerGrids.Switching.Core, 1.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package PowerGrids.Switching.Core@1.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=PowerGrids.Switching.Core&version=1.0.0
                    
Install as a Cake Addin
#tool nuget:?package=PowerGrids.Switching.Core&version=1.0.0
                    
Install as a Cake Tool

PowerGrids.Switching.Core

PowerGrids.Switching.Core — це високорівневе .NET 10 ядро для розробки систем оперативного керування SCADA (Supervisory Control And Data Acquisition) в електроенергетиці. Побудоване на базі патернів Command та Composite, воно забезпечує безпечне виконання послідовностей оперативних перемикань з автоматичним скасуванням (Undo) у разі помилок.

Особливості

  • Safety First: Вбудована підтримка оперативних блокувань (Interlock).
  • Transactional Operations: Автоматичне скасування всієї послідовності перемикань в разі виникнення технологічного порушення.
  • Structured Logging: Повна інтеграція з Serilog (з використанням контекстів для диспетчерських назв).

Швидкий старт

1. Встановлення пакета

Через NuGet Package Manager або CLI:

dotnet add package PowerGrids.Switching.Core

2. Створення пристрою та логіки блокування

Бібліотека використовує Primary Constructors, тому ініціалізація максимально лаконічна:

var breaker = new SwitchingDevice(
    type: DeviceType.CircuitBreaker, 
    name: "В-110 кВ Л-10"
);

// Гнучке налаштування блокувань через делегати
breaker.Interlock = (target) => {
    return (true, "Дія дозволена"); 
};

3. Формування та виконання бланку перемикань

Використовуйте SwitchingOrderExecutor для керування кроками:

var executor = new SwitchingOrderExecutor();

// Додавання команд (через конструктор або Extension Methods)
executor.Add(new VerifyDeviceStateCommand(breaker, "Перевірка стану", SwitchPosition.Off));
breaker.TurnOn("Ввімкнення за розпорядженням"); // Додає команду в чергу

// Виконання всіх кроків
executor.ExecuteAll();


Архітектура

Командна модель

  • ISwitchOperation — основний інтерфейс.
  • SwitchDeviceCommand — одиночна операція зі станом.
  • MacroCommand — групування команд (Composite).
  • ParallelCommand — одночасне виконання (наприклад, для складних схем).

Стани пристроїв

Підтримуються оперативні стани згідно з галузевими стандартами:

  • IntermediateState (Проміжний)
  • Off (Вимкнено)
  • On (Увімкнено)
  • BadState (Несправність)

Специфікації пакета

  • Target Framework: .NET 10.0
  • Dependencies: Serilog (>= 4.3.1)
  • Author: Ruslan Kachurovskyi

Ліцензія

Розповсюджується за ліцензією MIT.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0 84 2/16/2026