From 5fbbbe83a163a65e9323e574edad3baa5389316c Mon Sep 17 00:00:00 2001 From: hzhang Date: Sat, 13 Jul 2024 09:29:45 +0100 Subject: [PATCH] To net8.0 --- Nocturnis.csproj | 2 +- src/Enigmos/Boards/IPrimaryBoard.cs | 1 + src/Enigmos/ModuleManuals/IPortTypeSelector.cs | 8 ++++++++ src/Enigmos/Modules/EControllingModule.cs | 14 +++++++++++++- src/Enigmos/Modules/ETerminalModule.cs | 8 ++------ src/Enigmos/Modules/ITerminalModule.cs | 1 + src/GlobalManagement/Providers/IProcessProvider.cs | 2 ++ 7 files changed, 28 insertions(+), 8 deletions(-) create mode 100644 src/Enigmos/ModuleManuals/IPortTypeSelector.cs diff --git a/Nocturnis.csproj b/Nocturnis.csproj index eb2fb69..34207eb 100644 --- a/Nocturnis.csproj +++ b/Nocturnis.csproj @@ -1,7 +1,7 @@ - net6.0 + net8.0 enable disable diff --git a/src/Enigmos/Boards/IPrimaryBoard.cs b/src/Enigmos/Boards/IPrimaryBoard.cs index 156f90e..b9fd898 100644 --- a/src/Enigmos/Boards/IPrimaryBoard.cs +++ b/src/Enigmos/Boards/IPrimaryBoard.cs @@ -5,4 +5,5 @@ namespace Nocturnis.Enigmos.Boards; public interface IPrimaryBoard : IBaseBoard { IEngineModule Engine { get; set; } + IRootModule Root { get; set; } } \ No newline at end of file diff --git a/src/Enigmos/ModuleManuals/IPortTypeSelector.cs b/src/Enigmos/ModuleManuals/IPortTypeSelector.cs new file mode 100644 index 0000000..a729479 --- /dev/null +++ b/src/Enigmos/ModuleManuals/IPortTypeSelector.cs @@ -0,0 +1,8 @@ +using Nocturnis.DataStructures.DataPortGroups; + +namespace Nocturnis.Enigmos.ModuleManuals; + +public interface IPortTypeSelector +{ + void Init(IDataPortGroup g); +} \ No newline at end of file diff --git a/src/Enigmos/Modules/EControllingModule.cs b/src/Enigmos/Modules/EControllingModule.cs index eb8f1fe..7068c33 100644 --- a/src/Enigmos/Modules/EControllingModule.cs +++ b/src/Enigmos/Modules/EControllingModule.cs @@ -1,4 +1,5 @@ using Nocturnis.Enigmos.Ports.SignalPorts.Directions; +using Nocturnis.GlobalManagement.Controls; namespace Nocturnis.Enigmos.Modules; @@ -10,4 +11,15 @@ public static class EControllingModule for (int i = 1; i <= sI; i++) m.SignalInPorts[i - 1] = m.GetPort($"{prefix}{i}"); } -} \ No newline at end of file + + public static void Visit(this IControllingModule m) + { + if (m.Visited) + { + EnigmosControl.Instance.RootModule.ActionFinished = true; + return; + } + m.Execute(); + m.Visited = true; + } +} diff --git a/src/Enigmos/Modules/ETerminalModule.cs b/src/Enigmos/Modules/ETerminalModule.cs index 34c7cfc..f2ae458 100644 --- a/src/Enigmos/Modules/ETerminalModule.cs +++ b/src/Enigmos/Modules/ETerminalModule.cs @@ -1,14 +1,10 @@ -using Nocturnis.Enigmos.Ports.DataPorts.Directions; - namespace Nocturnis.Enigmos.Modules; public static class ETerminalModule { public static void Consume(this ITerminalModule m) { - foreach (IDataInPort ip in m.DataInPorts) - if(ip.GetData.Expired) - _ = ip.GetData.Get; - + m.Drain(); + m.Finished = true; } } \ No newline at end of file diff --git a/src/Enigmos/Modules/ITerminalModule.cs b/src/Enigmos/Modules/ITerminalModule.cs index 9b979d2..c38a733 100644 --- a/src/Enigmos/Modules/ITerminalModule.cs +++ b/src/Enigmos/Modules/ITerminalModule.cs @@ -4,5 +4,6 @@ public interface ITerminalModule : IParameterModule { void Drain(); bool Finished { get; set; } + } diff --git a/src/GlobalManagement/Providers/IProcessProvider.cs b/src/GlobalManagement/Providers/IProcessProvider.cs index edcd239..044bf39 100644 --- a/src/GlobalManagement/Providers/IProcessProvider.cs +++ b/src/GlobalManagement/Providers/IProcessProvider.cs @@ -1,4 +1,5 @@ using Nocturnis.DataStructures.ConfigurableParameters; +using Nocturnis.DataStructures.DataPortGroups; using Nocturnis.Enigmos.ModuleManuals; using Nocturnis.Enigmos.Modules; @@ -17,4 +18,5 @@ public interface IProcessProvider IModuleParameterSetter BuildModuleBoolValueParameterSetter(IBoolParameter para); IModuleParameterSetter BuildModuleCharValueParameterSetter(ICharParameter para); IModuleParameterSetter BuildModuleKeyValueParameterSetter(IKeyParameter para); + IPortTypeSelector BuildPortTypeSelector(IDataPortGroup group); }