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
<PackageReference Include="Oakrey.Applications.Dashboards.LIN" Version="1.0.2" />
<PackageVersion Include="Oakrey.Applications.Dashboards.LIN" Version="1.0.2" />
<PackageReference Include="Oakrey.Applications.Dashboards.LIN" />
paket add Oakrey.Applications.Dashboards.LIN --version 1.0.2
#r "nuget: Oakrey.Applications.Dashboards.LIN, 1.0.2"
#:package Oakrey.Applications.Dashboards.LIN@1.0.2
#addin nuget:?package=Oakrey.Applications.Dashboards.LIN&version=1.0.2
#tool nuget:?package=Oakrey.Applications.Dashboards.LIN&version=1.0.2
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
LdfSignalValuebinding. - 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
ILINDecodingServicefromOakrey.Applications.DecodingServices.LIN - A configured
ILinDeviceServicefromOakrey.Applications.Ohm.LIN - Configured
IJsonServiceandIAppConfigPathimplementations
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 | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-windows10.0.17763 is compatible. |
-
net10.0-windows10.0.17763
- Oakrey.Applications.Dashboards.Abstractions (>= 1.0.0)
- Oakrey.Applications.DecodingServices.LIN (>= 1.0.2)
- Oakrey.Disposables (>= 3.0.0)
- Oakrey.LDF.Values (>= 4.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.