Oakrey.Applications.Dashboards.LIN 1.0.2

dotnet add package Oakrey.Applications.Dashboards.LIN --version 1.0.2
                    
NuGet\Install-Package Oakrey.Applications.Dashboards.LIN -Version 1.0.2
                    
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="Oakrey.Applications.Dashboards.LIN" Version="1.0.2" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Oakrey.Applications.Dashboards.LIN" Version="1.0.2" />
                    
Directory.Packages.props
<PackageReference Include="Oakrey.Applications.Dashboards.LIN" />
                    
Project file
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 Oakrey.Applications.Dashboards.LIN --version 1.0.2
                    
#r "nuget: Oakrey.Applications.Dashboards.LIN, 1.0.2"
                    
#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 Oakrey.Applications.Dashboards.LIN@1.0.2
                    
#: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=Oakrey.Applications.Dashboards.LIN&version=1.0.2
                    
Install as a Cake Addin
#tool nuget:?package=Oakrey.Applications.Dashboards.LIN&version=1.0.2
                    
Install as a Cake Tool

Oakrey.Applications.Dashboards.LIN

A .NET 10 Windows library for building persistent WPF dashboards from LIN signals decoded with LDF definitions. It connects Oakrey.Applications.DecodingServices.LIN with the shared Oakrey dashboard infrastructure.

Main features

  • Represents a dashboard entry as a validated LDF LdfSignalValue binding.
  • Assigns decoded signals by source device, LIN channel, frame identifier, and signal name.
  • Automatically binds an unassigned dashboard item to the first matching LIN source.
  • Prevents duplicate dashboard entries.
  • Loads, appends, saves, and clears JSON dashboard configurations.
  • Publishes configuration-load and collection-change notifications.
  • Provides WPF commands and connection-state notifications through DashboardViewModel.
  • Supports gauge, digital value, bulb, graph, and histogram views.

Architecture

flowchart LR
    Decoder[ILINDecodingService] -->|ReceivedFrame| Dashboard[DashboardItemCollection]
    Dashboard --> Items[DashboardItem]
    JSON[IJsonService] <--> Dashboard
    LIN[ILinDeviceService] --> ViewModel[DashboardViewModel]
    Dashboard --> ViewModel

Key types

Type Description
IDashboardService / DashboardItemCollection LIN dashboard contract and persistent observable collection.
DashboardItem Dashboard model tied to an LDF signal and optionally to a specific LIN device and channel.
DashboardViewModel WPF view model exposing dashboard commands, items, and LIN connection state.
IDashboardServiceConfig LIN-specialized configuration contract.
IDashboardServiceManagement LIN-specific item management and decoded-frame assignment contract.

Requirements

  • .NET 10 for Windows 10, version 1809 or later
  • WPF
  • A configured ILINDecodingService from Oakrey.Applications.DecodingServices.LIN
  • A configured ILinDeviceService from Oakrey.Applications.Ohm.LIN
  • Configured IJsonService and IAppConfigPath implementations

Installation

.NET CLI

dotnet add package Oakrey.Applications.Dashboards.LIN

Package Manager Console

Install-Package Oakrey.Applications.Dashboards.LIN

NuGet Package Manager

Search for Oakrey.Applications.Dashboards.LIN in Tools > NuGet Package Manager > Manage NuGet Packages for Solution.

Registration

Register one collection instance for both the concrete and interface service types:

services.AddSingleton<DashboardItemCollection>();
services.AddSingleton<IDashboardService>(provider =>
    provider.GetRequiredService<DashboardItemCollection>());
services.AddTransient<DashboardViewModel>();

Example usage

Create an unassigned item and feed decoded LIN updates into the dashboard:

dashboardService.Add(signal);

IDisposable updateSubscription = decodingService.FrameUpdated.Subscribe(
    dashboardService.AssignMessageSignalsToItems);

The first matching frame binds an unassigned item to its device and channel. Later frames update only the item with the same device, channel, LDF frame ID, and signal name. To pin an item immediately, provide the device serial number and channel when adding it:

dashboardService.Add(signal, relatedDevice: "device-serial", relatedChannel: 0);

Load the default configuration or observe items loaded during preload:

IDisposable loadedSubscription = dashboardService.ItemsLoaded.Subscribe(items =>
{
    Console.WriteLine($"Loaded {items.Count} LIN dashboard items.");
});

await dashboardService.LoadDashboardConfig(cancellationToken);

The default configuration remains compatible with existing installations and is stored as userDashboard.json below the configured application-data path. Dispose subscriptions when no longer needed and dispose the dashboard collection during application shutdown.

Project information

Field Value
Author Oakrey
License MIT
Target framework net10.0-windows10.0.17763.0
NuGet package Oakrey.Applications.Dashboards.LIN
Repository https://dev.azure.com/oakrey/OpenPackages/_git/ApplicationServices

License

This project is licensed under the MIT License. See the repository's LICENSE file for details.

Product Compatible and additional computed target framework versions.
.NET net10.0-windows10.0.17763 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.2 40 9/4/2026
1.0.1 40 9/4/2026
1.0.0 43 9/4/2026