36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
using Enigmos.Ports;
|
|
using Enigmos.Ports.DataPorts;
|
|
using Nocturnis.DataStructures;
|
|
using Nocturnis.DataStructures.ConfigurableParameters;
|
|
using Nocturnis.Enigmos.Modules;
|
|
using TabulaSmaragdina;
|
|
using TabulaSmaragdina.Constants;
|
|
|
|
namespace Enigmos.Modules.ComputationalModules.Binary;
|
|
|
|
public partial class ComparisionModule : BinaryComputationalModule, IParameterizedModule
|
|
{
|
|
|
|
private DataOutPort? Output { get; set; }
|
|
private IBoolParameter Greater { get; set; }
|
|
public override IEnumerable<BasePort> Ports => base.Ports.Union(new[] { Output });
|
|
public HashSet<IConfigurableParameter> ConfigurableParameters { get; set; }
|
|
|
|
public override void Init()
|
|
{
|
|
base.Init();
|
|
Greater = GlobalProvider.DataStructureProvider.NewBoolParameter("Method", "gt", "lt", true);
|
|
ConfigurableParameters = new HashSet<IConfigurableParameter>() { Greater };
|
|
Output = GetPort<DataOutPort>("Output");
|
|
Input1.SetDataType(EnigmosConstant.DataPortTypes.Real);
|
|
Input2.SetDataType(EnigmosConstant.DataPortTypes.Real);
|
|
Output.SetDataType(EnigmosConstant.DataPortTypes.Bit);
|
|
PostInit();
|
|
}
|
|
|
|
|
|
protected override void Compute(IDataPackage input1, IDataPackage input2)
|
|
{
|
|
Output!.ResultData.Bit = !(Greater.ParameterValue ^ (input1.Real > input2.Real));
|
|
}
|
|
} |