Skip to content

Commit

Permalink
Various memory managemnet issues resolved & Depth field.
Browse files Browse the repository at this point in the history
  • Loading branch information
halmaia committed Mar 23, 2023
1 parent 96ed3a4 commit 68a606a
Show file tree
Hide file tree
Showing 6 changed files with 218 additions and 148 deletions.
7 changes: 4 additions & 3 deletions 3D.cs
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

namespace SL3Reader {
[StructLayout(LayoutKind.Sequential, Size = Size)]
public readonly ref struct ThreeDimensionalFrameHeader
[StructLayout(LayoutKind.Sequential, Size = Size), SkipLocalsInit]
public readonly ref struct ThreeDimensionalFrameHeader
{
public const int Size = 76;

Expand Down
14 changes: 8 additions & 6 deletions BitmapHelper.cs
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
using System;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices.Marshalling;

namespace SL3Reader {
public static class BitmapHelper {
namespace SL3Reader
{
public static class BitmapHelper
{
public const int BitmapCombinedHeaderSize =
BitmapFileHeader.Size +
BitmapInfoHeader.Size +
Expand Down Expand Up @@ -278,7 +278,8 @@ public static class BitmapHelper {
56,187,240,0 /* End Palette */
};

public static byte[] CreateBuffer(int maxHeight, int maxWidth) {
public static byte[] CreateBuffer(int maxHeight, int maxWidth)
{
// (maxHeight * (maxWidth + (4 - maxWidth % 4))));
byte[] buffer = GC.AllocateUninitializedArray<byte>(
BitmapCombinedHeaderSize +
Expand All @@ -291,7 +292,8 @@ public static unsafe void UpdateBuffer(byte[] buffer,
int height, int width,
out int fullStride,
out Span<byte> fileBuffer,
out Span<byte> pixelData) {
out Span<byte> pixelData)
{
fullStride = width; //width + (4 - (width % 4));
fixed (byte* pBuffer = &buffer[0]) // Just formal: buffer is pre-pinned by the GC.
{
Expand Down
4 changes: 2 additions & 2 deletions InterferometricMeasurement.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,8 @@ namespace SL3Reader {
public readonly ref struct InterferometricMeasurement
{
public const int Size = 2 * sizeof(float);
public readonly float Delta { get; }
public readonly float Depth { get; }
public readonly float Delta;
public readonly float Depth;
public override readonly string ToString() => $"{Delta};{Depth}";
}
}
16 changes: 8 additions & 8 deletions Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -109,14 +109,14 @@ void PrintSummary() {
SortedDictionary<SurveyType, List<int>> indexByType = sl3reader.IndexByType;

WriteLine("File statistics:");
WriteLine("\tNumber of frames: " + sl3reader.Frames.Count.ToString());
WriteLine("\tNumber of primary frames: " + indexByType[SurveyType.Primary].Count.ToString());
WriteLine("\tNumber of secondary frames: " + indexByType[SurveyType.Secondary].Count.ToString());
WriteLine("\tNumber of left sidescan frames: " + indexByType[SurveyType.LeftSidescan].Count.ToString());
WriteLine("\tNumber of right sidescan frames: " + indexByType[SurveyType.RightSidescan].Count.ToString());
WriteLine("\tNumber of sidescan frames: " + indexByType[SurveyType.SideScan].Count.ToString());
WriteLine("\tNumber of downscan frames: " + indexByType[SurveyType.DownScan].Count.ToString());
WriteLine("\tNumber of 3D frames: " + indexByType[SurveyType.ThreeDimensional].Count.ToString());
WriteLine("\tNumber of frames: " + sl3reader.Frames.Count.ToString("# ##0"));
WriteLine("\tNumber of primary frames: " + indexByType[SurveyType.Primary].Count.ToString("# ##0"));
WriteLine("\tNumber of secondary frames: " + indexByType[SurveyType.Secondary].Count.ToString("# ##0"));
WriteLine("\tNumber of left sidescan frames: " + indexByType[SurveyType.LeftSidescan].Count.ToString("# ##0"));
WriteLine("\tNumber of right sidescan frames: " + indexByType[SurveyType.RightSidescan].Count.ToString("# ##0"));
WriteLine("\tNumber of sidescan frames: " + indexByType[SurveyType.SideScan].Count.ToString("# ##0"));
WriteLine("\tNumber of downscan frames: " + indexByType[SurveyType.DownScan].Count.ToString("# ##0"));
WriteLine("\tNumber of 3D frames: " + indexByType[SurveyType.ThreeDimensional].Count.ToString("# ##0"));

WriteLine();
PrintGreen("\nExport finished successfully.");
Expand Down
2 changes: 1 addition & 1 deletion Properties/launchSettings.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"profiles": {
"SL3Reader": {
"commandName": "Project",
"commandLineArgs": "\"F:\\Sonar0000saar.sl3\" \"F:\\SS\" -ss"
"commandLineArgs": "\"F:\\Sonar0000saar.sl3\" \"F:\\op.csv\" -3dm"
}
}
}
Loading

0 comments on commit 68a606a

Please sign in to comment.