UDBF.NET
1.0.0
See the version list below for details.
dotnet add package UDBF.NET --version 1.0.0
NuGet\Install-Package UDBF.NET -Version 1.0.0
<PackageReference Include="UDBF.NET" Version="1.0.0" />
paket add UDBF.NET --version 1.0.0
#r "nuget: UDBF.NET, 1.0.0"
// Install UDBF.NET as a Cake Addin #addin nuget:?package=UDBF.NET&version=1.0.0 // Install UDBF.NET as a Cake Tool #tool nuget:?package=UDBF.NET&version=1.0.0
UDBF.NET
UDBF.NET is a .NET Standard library that provides a reader for Gantner files stored in the UDBF (Universal Data-Bin-File) format (.dat).
Since no official specification exists, errors may occur. Please file an issue on GitHub if you encounter problems.
The following code shows how to use read all data from a file:
var filePath = "testdata.dat";
using (var udbf = new UDBF(filePath))
{
Console.WriteLine($"File '{filePath}' contains {udbf.Variables.Count} variables.");
(var timestamps, var dataset) = udbf.ReadAll();
Console.WriteLine($"The value of the first timestamp is '{timestamps[0].ToString()}'");
foreach (var data in dataset)
{
Console.WriteLine($"Variable '{data.Variable.Name}' is of type {data.Variable.DataType}.");
Console.WriteLine($" The first value is {data.Buffer[0]}.");
}
}
And here is a version to read only a specific variable:
var filePath = "testdata.dat";
using (var udbf = new UDBF(filePath))
{
Console.WriteLine($"File '{filePath}' contains {udbf.Variables.Count} variables.");
var variable = udbf.Variables[0];
(var timestamps, var data) = udbf.Read<float>(variable);
Console.WriteLine($"Variable '{data.Variable.Name}' is of type {data.Variable.DataType}.");
Console.WriteLine($" The first value is {data.Buffer[0]}.");
}
Advanced features
As long as the number of bytes of the generic type (here: float
) matches the number of bytes of the variable type (variable.DataType
), you can provide any numeric type. For example, instead of interpreting the data as float
, you can also do the following:
(var timestamps, var data) = udbf.Read<uint>(variable);
This works since both, float
and uint32
have a length of 4 bytes. Of course, interpreting actual float
data as uint32
will result in meaningless numbers, but this feature may be useful to reinterpret other types like int32
vs. uint32
.
See also
Without an official format specification, this implementation is based on http://www.famosforum.de/index.php?attachment/508-udbf-107-pdf/.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
.NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
.NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen40 was computed. tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- System.Text.Encoding.CodePages (>= 4.5.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.