Data Type

This commit is contained in:
h z
2024-07-11 11:21:29 +01:00
parent 2955aaf1db
commit 5b46cce212
29 changed files with 388 additions and 112 deletions

View File

@@ -1,4 +1,5 @@
using Nocturnis.DataStructures;
using Nocturnis.DataStructures.Data;
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
using Skeleton.DataStructure;
@@ -6,8 +7,8 @@ namespace Nocturnis.Enigmos.Modules.ComputationalModules;
public static class EBinaryComputationalModule
{
public static IData X(this IBinaryComputationalModule p, CacheItem x) => p.DataInPorts[0].GetData.GetFrom(x)!;
public static IData Y(this IBinaryComputationalModule p, CacheItem x) => p.DataInPorts[1].GetData.GetFrom(x)!;
public static DataVariable X(this IBinaryComputationalModule p, CacheItem x) => p.DataInPorts[0].GetData.GetFrom(x)!;
public static DataVariable Y(this IBinaryComputationalModule p, CacheItem x) => p.DataInPorts[1].GetData.GetFrom(x)!;
public static void BinaryInit(this IBinaryComputationalModule p)
{

View File

@@ -1,4 +1,5 @@
using Godot;
using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
using Skeleton.DataStructure;
@@ -6,13 +7,13 @@ namespace Nocturnis.Enigmos.Modules.ComputationalModules;
public static class EDuplicateOutputModule
{
public static void Define(this IDuplicateOutputModule m, Func<CacheItem, (object, StringName)> define)
public static void Define(this IDuplicateOutputModule m, Func<CacheItem, (object, DataType)> define)
{
foreach (IDataOutPort op in m.DataOutPorts)
op.OutData.UpdateCalculation(define);
}
public static void SetOutputType(this IDuplicateOutputModule m, StringName type)
public static void SetOutputType(this IDuplicateOutputModule m, DataType type)
{
foreach (IDataOutPort op in m.DataOutPorts)
op.SetDataType(type);

View File

@@ -7,9 +7,9 @@ public static class ELogicModule
{
public static void LogicModuleInit(this ILogicModule lm)
{
foreach (IDataOutPort op in lm.DataOutPorts)
op.SetDataType(EnigmosConstant.DataPortTypes.Bit);
foreach (IDataInPort ip in lm.DataInPorts)
ip.SetDataType(EnigmosConstant.DataPortTypes.Bit);
//foreach (IDataOutPort op in lm.DataOutPorts)
// op.SetDataType(DataTypeConstant.BaseDataTypes.Bit);
//foreach (IDataInPort ip in lm.DataInPorts)
// ip.SetDataType(DataTypeConstant.BaseDataTypes.Bit);
}
}

View File

@@ -1,11 +1,12 @@
using Godot;
using Nocturnis.DataStructures.DataTypes;
using Nocturnis.Enigmos.Ports.DataPorts.Directions;
namespace Nocturnis.Enigmos.Modules.ComputationalModules;
public static class EOperationModule
{
public static void SetInputType(this IOperationModule m, StringName type)
public static void SetInputType(this IOperationModule m, DataType type)
{
foreach (IDataInPort ip in m.DataInPorts)
ip.SetDataType(type);

View File

@@ -1,14 +1,15 @@
using Nocturnis.DataStructures;
using Nocturnis.DataStructures.Data;
using Skeleton.DataStructure;
namespace Nocturnis.Enigmos.Modules.ComputationalModules;
public static class ETernaryComputationalModule
{
public static IData X(this ITernaryComputationalModule m, CacheItem cache) =>
public static DataVariable X(this ITernaryComputationalModule m, CacheItem cache) =>
m.DataOutPorts[0].OutData.GetFrom(cache)!;
public static IData Y(this ITernaryComputationalModule m, CacheItem cache) =>
public static DataVariable Y(this ITernaryComputationalModule m, CacheItem cache) =>
m.DataOutPorts[1].OutData.GetFrom(cache)!;
public static IData Z(this ITernaryComputationalModule m, CacheItem cache) =>
public static DataVariable Z(this ITernaryComputationalModule m, CacheItem cache) =>
m.DataOutPorts[2].OutData.GetFrom(cache)!;
}

View File

@@ -1,10 +1,11 @@
using Nocturnis.DataStructures;
using Nocturnis.DataStructures.Data;
using Skeleton.DataStructure;
namespace Nocturnis.Enigmos.Modules.ComputationalModules;
public static class EUnaryComputationalModule
{
public static IData X(this IUnaryComputationalModule m, CacheItem cache) =>
public static DataVariable X(this IUnaryComputationalModule m, CacheItem cache) =>
m.DataOutPorts[0].OutData.GetFrom(cache)!;
}

View File

@@ -1,13 +1,15 @@
using Godot;
using Nocturnis.Communicators;
using Nocturnis.DataStructures;
using Nocturnis.DataStructures.Data;
using Nocturnis.DataStructures.DataTypes;
namespace Nocturnis.Enigmos.Modules;
public interface ICommunicateModule : IBaseModule
{
IBaseCommunicator? PairedCommunicator { get; set; }
StringName CommunicationDataType { get; }
DataType CommunicationDataType { get; }
StringName CommunicationDirection { get; }
IData DataBuffer { get; set; }
DataVariable DataBuffer { get; set; }
}

View File

@@ -1,9 +1,10 @@
using Nocturnis.DataStructures;
using Nocturnis.DataStructures.Data;
namespace Nocturnis.Enigmos.Modules;
public interface IEnumerableProcessingModule : ICompositeModule
{
IData[] CachedInputArray { get; set; }
DataVariable[] CachedInputArray { get; set; }
int ProcessingIndex { get; set; }
}

View File

@@ -1,12 +1,13 @@
using Nocturnis.DataStructures;
using Nocturnis.DataStructures.Data;
namespace Nocturnis.Enigmos.Modules;
public interface IFilterModule : IProgrammableModule
{
void Filter();
IData[] CachedInputArray { get; set; }
IData[] CachedResult { get; set; }
DataVariable[] CachedInputArray { get; set; }
DataVariable[] CachedResult { get; set; }
int ProcessingIndex { get; set; }
bool FilterFinished { get; set; }
bool FilterStarted { get; set; }

View File

@@ -1,10 +1,11 @@
using Nocturnis.DataStructures;
using Nocturnis.DataStructures.Data;
namespace Nocturnis.Enigmos.Modules;
public interface IInternalComputationalModule : ICompositeModule
{
IData? CachedResult { get; set; }
DataVariable? CachedResult { get; set; }
void Compute();
bool ComputationFinished { get; set; }
bool ComputationStarted { get; set; }

View File

@@ -1,10 +1,11 @@
using Nocturnis.DataStructures;
using Nocturnis.DataStructures.Data;
namespace Nocturnis.Enigmos.Modules;
public interface IOptimizationModule : IProgrammableModule
{
IData CachedResult { get; set; }
DataVariable CachedResult { get; set; }
bool ComputationStarted { get; set; }
bool ComputationFinished { get; set; }
void Optimize();

View File

@@ -1,10 +1,11 @@
using Godot;
using Nocturnis.DataStructures.DataTypes;
namespace Nocturnis.Enigmos.Ports.DataPorts;
public interface IDataPort : IBasePort
{
new IDataPort? ConnectedPort { get; set; }
StringName? DataType { get; set; }
void SetDataType(StringName type);
DataType DataType { get; set; }
void SetDataType(DataType type);
}