MeasFlow 0.4.3
dotnet add package MeasFlow --version 0.4.3
NuGet\Install-Package MeasFlow -Version 0.4.3
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="MeasFlow" Version="0.4.3" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="MeasFlow" Version="0.4.3" />
<PackageReference Include="MeasFlow" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add MeasFlow --version 0.4.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: MeasFlow, 0.4.3"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package MeasFlow@0.4.3
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=MeasFlow&version=0.4.3
#tool nuget:?package=MeasFlow&version=0.4.3
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
MeasFlow — C# Implementation
A .NET 10 implementation of the MeasFlow (.meas) binary measurement format.
MIT License | .NET 10 | Zero dependencies
Building
cd csharp/
dotnet build MeasFlow.slnx
Quick Start
Run the quickstart sample to write and read back a demo measurement file:
cd csharp/samples/QuickStart
dotnet run
See samples/QuickStart/Program.cs for the full example.
Writing
using MeasFlow;
using MeasFlow.Bus;
using var writer = MeasFile.CreateWriter("data.meas");
var motor = writer.AddGroup("Motor");
var rpm = motor.AddChannel<float>("RPM");
rpm.Properties["Unit"] = "1/min";
rpm.Write(3000.0f);
rpm.Write(3500.0f);
// CAN bus with structured frame/signal definitions
var can = writer.AddBusGroup("CAN1", new CanBusConfig { BaudRate = 500_000 });
var engineFrame = can.DefineCanFrame("EngineData", frameId: 0x100, payloadLength: 8);
engineFrame.Signals.Add(new SignalDefinition
{
Name = "EngineRPM",
StartBit = 0,
BitLength = 16,
Factor = 0.25,
Unit = "rpm",
});
var ts = MeasTimestamp.Now;
can.WriteFrame(ts, 0x100, new byte[] { 0xE0, 0x2E, 0x82, 0x00, 0x00, 0x00, 0x00, 0x00 });
Reading
using var reader = MeasFile.OpenRead("data.meas");
// Instant statistics without reading data
var stats = reader["Motor"]["RPM"].Statistics;
Console.WriteLine($"RPM: min={stats?.Min} max={stats?.Max} mean={stats?.Mean}");
// Decode signals directly from raw CAN frames
var rpmValues = reader["CAN1"].DecodeSignal("EngineRPM");
Console.WriteLine($"Decoded {rpmValues.Length} RPM values");
Tests
cd csharp/
dotnet test MeasFlow.slnx
Benchmarks
cd csharp/benchmarks/MeasFlow.Benchmarks
dotnet run -c Release -- --filter "*Write*" # Write benchmarks
dotnet run -c Release -- --filter "*Read*" # Read benchmarks
dotnet run -c Release -- --filter "*Size*" # File size comparison
dotnet run -c Release # All benchmarks
Project Structure
src/MeasFlow/ Core library
Bus/ Bus data model (CAN, LIN, FlexRay, Ethernet, MOST)
Format/ Binary serialization (MetadataEncoder, BusMetadataEncoder)
tests/MeasFlow.Tests/ 40+ tests (roundtrip, bus model, multiplexing, SecOC)
samples/QuickStart/ Runnable quickstart example
benchmarks/ BenchmarkDotNet performance tests
tools/MeasFlow.Viewer/ Avalonia-based data viewer
Full specification: See
../SPECIFICATION.mdfor the complete binary format.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- K4os.Compression.LZ4 (>= 1.3.8)
- ZstdSharp.Port (>= 0.8.7)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.