refactor programmable modules

This commit is contained in:
h z
2024-07-06 02:12:54 +01:00
parent be5428d708
commit 3eec8a1345
26 changed files with 329 additions and 364 deletions

View File

@@ -1,25 +1,37 @@
using Enigmos.Modules.InterlayerModules;
using Enigmos.Modules.Other;
using Enigmos.Modules.ProgrammableModules.FilterModule;
using Nocturnis.Enigmos.Modules;
using Nocturnis.Enigmos.Modules.InterlayerModules;
using Nocturnis.GlobalManagement.Constants;
namespace Enigmos.Boards;
public partial class FilterModuleBoard : BaseBoard
{
public IInterlayerDataOutModule[] Outputs { get; set; } = Array.Empty<IInterlayerDataOutModule>();
public IterativeOutputModule? IterativeOutput { get; set; }
public IndicateInputModule? Indicate { get; set; }
public IFilterModule? FilterModule { get; set; }
public override void Init()
public FilterInputProviderModule? InputProvider { get; set; }
public IInterlayerDataOutModule[] FilterInputProxy { get; set; } = Array.Empty<IInterlayerDataOutModule>();
//public IInterlayerDataOutModule[] Outputs { get; set; } = Array.Empty<IInterlayerDataOutModule>();
//public XIterativeOutputModule? IterativeOutput { get; set; }
//public IDataInPort? Indicate { get; set; }
//public IndicateInputModule? Indicate { get; set; }
public FilterIndicateModule? Indicate { get; set; }
public void Init(IFilterModule filterModule)
{
base.Init();
Outputs = new IInterlayerDataOutModule[3];
FilterModule = filterModule;
FilterInputProxy = new IInterlayerDataOutModule[3];
InputProvider = GetModule<FilterInputProviderModule>("InputProvider");
InputProvider.Init(this);
for (int i = 1; i <= 3; i++)
Outputs[i-1] = GetModule<InterlayerDataOutModule>($"IO{i}");
FilterInputProxy[i - 1] = GetModule<InterlayerDataOutModule>($"IO{i}");
base.Init();
IterativeOutput = GetModule<IterativeOutputModule>("IterativeOutput");
Indicate = GetModule<IndicateInputModule>("Indicate");
Indicate.Input!.SetDataType(EnigmosConstant.DataPortTypes.Bit);
//IterativeOutput = GetModule<XIterativeOutputModule>("IterativeOutput");
Indicate = GetModule<FilterIndicateModule>("Indicate");
Indicate.Indicate!.SetDataType(EnigmosConstant.DataPortTypes.Bit);
}
}