Skip to content

Commit

Permalink
Merge pull request #14 from MissouriMRDT/feature/raman-graph
Browse files Browse the repository at this point in the history
Raman Spectroscopy Graph
  • Loading branch information
frawgii authored Nov 2, 2024
2 parents bac9c43 + 91fca6c commit 0077188
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 27 deletions.
13 changes: 13 additions & 0 deletions Basestation_Software.Models/RamanGraph/DataItem.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
namespace Basestation_Software.Models.RamanGraph;

public class DataItem
{
public int Raman_Shift { get; set; }
public double Intensity { get; set; }

public DataItem()
{
Raman_Shift = 0;
Intensity = 0f;
}
}
1 change: 1 addition & 0 deletions Basestation_Software.Web/Basestation_Software.Web.csproj
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
</PackageReference>
<PackageReference Include="OpenCvSharp4" Version="4.10.0.20240616" />
<PackageReference Include="OpenCvSharp4.runtime.ubuntu.22.04-x64" Version="4.6.0-SNAPSHOT" />
<PackageReference Include="ScottPlot" Version="5.0.40" />
<PackageReference Include="ScottPlot.Blazor" Version="5.0.39" />
<PackageReference Include="OpenCvSharp4.runtime.win" Version="4.10.0.20240616" />
<PackageReference Include="System.Drawing.Common" Version="4.7.2" />
Expand Down
71 changes: 56 additions & 15 deletions Basestation_Software.Web/Core/Components/RamanGraph.razor
Original file line number Diff line number Diff line change
@@ -1,24 +1,65 @@
@using ScottPlot
@using ScottPlot.Blazor

<div class="card full-height">
<div class="card-header">
<div class="row">
<div class="col-6 d-flex align-self-center">
<h5>RamanGraph</h5>
</div>
</div>
@inject RoveCommService _RoveCommService
@using Basestation_Software.Models.RamanGraph

<div class="card h-100">
<div class="card-header">
<h5>Raman Spectroscopy Graph</h5>
</div>
<div class="card-body w-100">
<RadzenChart>
<RadzenLineSeries Data="@ramanGraph" CategoryProperty="Raman_Shift" ValueProperty="Intensity" />
<RadzenValueAxis Min="0" Max="65535" Step="10000" />
</RadzenChart>
<button @onclick=RequestRamanData> Request Raman Spectroscopy Data </button>
</div>
</div>
</div>


@code {
DataItem[] ramanGraph = new DataItem[2048];

BlazorPlot BlazorPlot { get; set; } = new();

protected override void OnAfterRender(bool firstRender)
private async Task RequestRamanData()
{
BlazorPlot.Plot.Add.Signal(Generate.Sin());
BlazorPlot.Plot.Add.Signal(Generate.Cos());
await _RoveCommService.SendAsync<uint>("Instruments", "RequestRamanReading", [0], reliable: false);
}

protected override async Task OnInitializedAsync()
{
// Initialize ramanGraph
for (int i = 0; i < 2048; i++)
ramanGraph[i] = new DataItem { Raman_Shift = i, Intensity = 0 };

//Receiving RoveComm packets if they are sent in
_RoveCommService.On<ushort>("Instruments", "RamanReading_Part1", async (packet) =>
{
for (int i = 0; i < 500; i++) ramanGraph[i].Intensity = packet.Data[i];
await InvokeAsync(StateHasChanged);
});

await Task.CompletedTask;
_RoveCommService.On<ushort>("Instruments", "RamanReading_Part2", async (packet) =>
{
for (int i = 0; i < 500; i++) ramanGraph[i + 500].Intensity = packet.Data[i];
await InvokeAsync(StateHasChanged);
});

_RoveCommService.On<ushort>("Instruments", "RamanReading_Part3", async (packet) =>
{
for (int i = 0; i < 500; i++) ramanGraph[i + 1000].Intensity = packet.Data[i];
await InvokeAsync(StateHasChanged);
});

_RoveCommService.On<ushort>("Instruments", "RamanReading_Part4", async (packet) =>
{
for (int i = 0; i < 500; i++) ramanGraph[i + 1500].Intensity = packet.Data[i];
await InvokeAsync(StateHasChanged);
});

_RoveCommService.On<ushort>("Instruments", "RamanReading_Part5", async (packet) =>
{
for (int i = 0; i < 48; i++) ramanGraph[i + 2000].Intensity = packet.Data[i];
await InvokeAsync(StateHasChanged);
});
}
}
12 changes: 0 additions & 12 deletions Basestation_Software.Web/Core/Services/RamanGraphService.cs

This file was deleted.

0 comments on commit 0077188

Please sign in to comment.