diff --git a/Domain/Data.cs b/Domain/Data.cs
index 65ccbcc..4cc1dde 100644
--- a/Domain/Data.cs
+++ b/Domain/Data.cs
@@ -10,8 +10,9 @@ public record class Data(
double? Theta,
double? Smr,
double? MuWave,
+ string OverlayPoint,
bool? Artifact,
double? SignalQuality,
- long PackageIndex,
+ long FrameIndex,
DateTime? TimeOfDataGenerate
);
\ No newline at end of file
diff --git a/Domain/Dto/JsonData.cs b/Domain/Dto/JsonData.cs
index 4e2a30a..b73304d 100644
--- a/Domain/Dto/JsonData.cs
+++ b/Domain/Dto/JsonData.cs
@@ -22,16 +22,21 @@ public class JsonData
public double? Smr { get; set; }
[JsonPropertyName("muWave")]
public double? MuWave { get; set; }
+ [JsonPropertyName("overlayPoint")]
+ public string overlayPoint { get; set; }
[JsonPropertyName("artifact")]
public bool? Artifact { get; set; }
[JsonPropertyName("signalQuality")]
public double? SignalQuality { get; set; }
- [JsonPropertyName("packageIndex")]
- public long PackageIndex { get; set; }
+ [JsonPropertyName("frameIndex")]
+ public long FrameIndex { get; set; }
[JsonPropertyName("timeOfDataGenerate")]
public DateTime? TimeOfDataGenerate { get; set; }
- public JsonData() { }
+ public JsonData()
+ {
+ overlayPoint = "";
+ }
public JsonData(Data data)
{
@@ -44,9 +49,10 @@ public class JsonData
Theta = data.Theta;
Smr = data.Smr;
MuWave = data.MuWave;
+ overlayPoint = data.OverlayPoint;
Artifact = data.Artifact;
SignalQuality = data.SignalQuality;
- PackageIndex = data.PackageIndex;
+ FrameIndex = data.FrameIndex;
TimeOfDataGenerate = data.TimeOfDataGenerate;
}
@@ -62,9 +68,10 @@ public class JsonData
Theta,
Smr,
MuWave,
+ overlayPoint,
Artifact,
SignalQuality,
- PackageIndex,
+ FrameIndex,
TimeOfDataGenerate
);
}
diff --git a/Domain/Dto/MessagePackData.cs b/Domain/Dto/MessagePackData.cs
index 55e4aab..d3b0545 100644
--- a/Domain/Dto/MessagePackData.cs
+++ b/Domain/Dto/MessagePackData.cs
@@ -23,16 +23,21 @@ public class MessagePackData
public double? Smr { get; set; }
[Key("muWave")]
public double? MuWave { get; set; }
+ [Key("overlayPoint")]
+ public string overlayPoint { get; set; }
[Key("artifact")]
public bool? Artifact { get; set; }
[Key("signalQuality")]
public double? SignalQuality { get; set; }
- [Key("packageIndex")]
- public long PackageIndex { get; set; }
+ [Key("frameIndex")]
+ public long FrameIndex { get; set; }
[Key("timeOfDataGenerate")]
public DateTime? TimeOfDataGenerate { get; set; }
- public MessagePackData() { }
+ public MessagePackData()
+ {
+ overlayPoint = "";
+ }
public MessagePackData(Data data)
{
@@ -45,9 +50,10 @@ public class MessagePackData
Theta = data.Theta;
Smr = data.Smr;
MuWave = data.MuWave;
+ overlayPoint = data.OverlayPoint;
Artifact = data.Artifact;
SignalQuality = data.SignalQuality;
- PackageIndex = data.PackageIndex;
+ FrameIndex = data.FrameIndex;
TimeOfDataGenerate = data.TimeOfDataGenerate;
}
@@ -63,9 +69,10 @@ public class MessagePackData
Theta,
Smr,
MuWave,
+ overlayPoint,
Artifact,
SignalQuality,
- PackageIndex,
+ FrameIndex,
TimeOfDataGenerate
);
}
diff --git a/Domain/OverlayPoints.cs b/Domain/OverlayPoints.cs
new file mode 100644
index 0000000..96a0c65
--- /dev/null
+++ b/Domain/OverlayPoints.cs
@@ -0,0 +1,40 @@
+namespace Domain;
+
+public static class OverlayPoints
+{
+ public static readonly string All = "ALL";
+ ///
+ /// Список всех точек наложения по схеме 10-20
+ ///
+ public static readonly string[] Points = {
+ "Fp1", "Fp2", "F3", "F4", "Fz", "C3", "C4", "Cz",
+ "P3", "P4", "Pz", "F7", "F8", "T3", "T4", "T5", "T6", "O1", "O2"
+ };
+
+ ///
+ /// Описания точек наложения
+ ///
+ public static readonly Dictionary Descriptions = new()
+ {
+ {"Fp1", "переднелобные (prefrontal)"},
+ {"Fp2", "переднелобные (prefrontal)"},
+ {"F3", "лобные (frontal)"},
+ {"F4", "лобные (frontal)"},
+ {"Fz", "среднелобный"},
+ {"C3", "центральные (central)"},
+ {"C4", "центральные (central)"},
+ {"Cz", "центральный вертексный"},
+ {"P3", "теменные (parietal)"},
+ {"P4", "теменные (parietal)"},
+ {"Pz", "центральнотеменной"},
+ {"F7", "передневисочные"},
+ {"F8", "передневисочные"},
+ {"T3", "средневисочные (temporal)"},
+ {"T4", "средневисочные (temporal)"},
+ {"T5", "задневисочные"},
+ {"T6", "задневисочные"},
+ {"O1", "затылочная (occipital)"},
+ {"O2", "затылочная (occipital)"}
+ };
+}
+
diff --git a/Server/DataGenerator.cs b/Server/DataGenerator.cs
index 3258c4e..4669d28 100644
--- a/Server/DataGenerator.cs
+++ b/Server/DataGenerator.cs
@@ -31,25 +31,25 @@ public class DataGenerator
private void GenerateInBackground(CancellationToken token)
{
- var firstData = GenerateRandomData(0);
+ var firstData = GenerateRandomData(0, "ALL");
_cache.AddLast(firstData);
- _dict[firstData.PackageIndex] = firstData;
+ _dict[firstData.FrameIndex] = firstData;
while (!token.IsCancellationRequested)
{
//await Task.Delay(_generationInterval, token);
var first = _cache.First!.Value;
var last = _cache.Last!.Value;
- if (last.PackageIndex - _maxRequestedIndex < _minNewPackages)
+ if (last.FrameIndex - _maxRequestedIndex < _minNewPackages)
{
- var data = GenerateRandomData(last.PackageIndex + 1);
+ var data = GenerateRandomData(last.FrameIndex + 1, "ALL");
_cache.AddLast(data);
- _dict[data.PackageIndex] = data;
+ _dict[data.FrameIndex] = data;
}
- if (_maxRequestedIndex - first.PackageIndex > _maxPreviousPackages)
+ if (_maxRequestedIndex - first.FrameIndex > _maxPreviousPackages)
{
_cache.RemoveFirst();
- _dict.TryRemove(first.PackageIndex, out _);
+ _dict.TryRemove(first.FrameIndex, out _);
}
//System.Console.WriteLine($"[{first.PackageIndex}; {last.PackageIndex}]");
}
@@ -62,7 +62,7 @@ public class DataGenerator
return res ? value : null;
}
- private Data GenerateRandomData(long packageNumber)
+ private Data GenerateRandomData(long frameIndex, string overlayPoint)
{
var alpha = _random.NextDouble();
var beta = _random.NextDouble() * (1 - alpha);
@@ -79,9 +79,10 @@ public class DataGenerator
Theta: _random.NextDouble() < 0.1 ? null : theta,
Smr: _random.NextDouble() < 0.1 ? null : _random.NextDouble(),
MuWave: _random.NextDouble() < 0.1 ? null : _random.NextDouble(),
+ OverlayPoint: overlayPoint,
Artifact: _random.NextDouble() < 0.1 ? null : signalQuality < 0.5,
SignalQuality: _random.NextDouble() < 0.1 ? null : signalQuality,
- PackageIndex: packageNumber,
+ FrameIndex: frameIndex,
TimeOfDataGenerate: _random.NextDouble() < 0.1 ? null : DateTime.Now
);
}