CanKit.Core
0.3.3.1
dotnet add package CanKit.Core --version 0.3.3.1
NuGet\Install-Package CanKit.Core -Version 0.3.3.1
<PackageReference Include="CanKit.Core" Version="0.3.3.1" />
<PackageVersion Include="CanKit.Core" Version="0.3.3.1" />
<PackageReference Include="CanKit.Core" />
paket add CanKit.Core --version 0.3.3.1
#r "nuget: CanKit.Core, 0.3.3.1"
#:package CanKit.Core@0.3.3.1
#addin nuget:?package=CanKit.Core&version=0.3.3.1
#tool nuget:?package=CanKit.Core&version=0.3.3.1
CanKit.Core
Core abstractions and utilities for CanKit: unified CAN bus API, endpoints, frames, filters, timing, and helpers.
- Repository: https://github.com/pkuyo/CanKit
- Package:
CanKit.Core
This package defines the common interfaces and helpers. To talk to real hardware, install an adapter package such as:
CanKit.Adapter.SocketCAN(Linux)CanKit.Adapter.PCAN(PEAK PCAN-Basic)CanKit.Adapter.Kvaser(Kvaser CANlib)CanKit.Adapter.ZLG(ZLGCAN)CanKit.Adapter.Virtual(no hardware, for testing)
简体中文
- 该包提供核心抽象与工具。要访问实际硬件,请安装对应适配器包(如 SocketCAN/PCAN/Kvaser/ZLG/Virtual)。
Install
dotnet add package CanKit.Core
Quick Start
Below uses the Virtual adapter for a minimal example. Replace the endpoint with your adapter’s scheme (e.g., socketcan://can0, pcan://PCAN_USBBUS1).
using CanKit.Core;
using CanKit.Core.Definitions;
// Open a bus by endpoint; configure bitrate at open
using var bus = CanBus.Open("virtual://demo/0", cfg => cfg.Baud(500_000));
// Transmit a classic CAN frame
var tx = new CanClassicFrame(0x123, new byte[] { 1, 2, 3 });
bus.Transmit(new[] { tx });
// Receive with timeout (ms)
foreach (var rx in bus.Receive(1, 100))
{
var f = rx.CanFrame;
Console.WriteLine($"RX id=0x{f.ID:X}, dlc={f.Dlc}");
}
For CAN FD, configure both arbitration/data bitrates:
using var fdBus = CanBus.Open("virtual://demo/1", cfg => cfg.Fd(500_000, 2_000_000));
Enumerate Endpoints
List endpoints exposed by installed adapters:
using CanKit.Core.Endpoints;
foreach (var ep in BusEndpointEntry.Enumerate())
{
Console.WriteLine($"{ep.Title}: {ep.Endpoint}");
}
Filter by scheme/vendor:
foreach (var ep in BusEndpointEntry.Enumerate("socketcan", "pcan", "kvaser", "zlg", "virtual"))
{
Console.WriteLine(ep.Endpoint);
}
Notes
- Bit timing helpers:
cfg.Baud(...)for Classical CAN,cfg.Fd(abit, dbit, ...)for CAN FD. - Received frames expose
CanReceiveData.CanFrame. Build frames withCanClassicFrameor other implementations.
| 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 is compatible. 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. net8.0-windows7.0 is compatible. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
| .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.Memory (>= 4.5.4)
- System.Runtime.CompilerServices.Unsafe (>= 6.1.2)
-
net8.0
- No dependencies.
-
net8.0-windows7.0
- No dependencies.
NuGet packages (5)
Showing the top 5 NuGet packages that depend on CanKit.Core:
| Package | Downloads |
|---|---|
|
CanKit.Adapter.ZLG
ZLG adapter for CanKit, enabling unified access to ZLG USBCAN/PCIe CAN/CAN FD devices (zlgcan.dll). |
|
|
CanKit.Adapter.Virtual
Virtual in-process CAN adapter for CanKit for development, testing, and simulation. |
|
|
CanKit.Adapter.PCAN
Peak PCAN (PCAN-Basic) adapter for CanKit, providing unified bus access to PCAN hardware on Windows. |
|
|
CanKit.Adapter.SocketCAN
SocketCAN adapter for CanKit, offering unified CAN/CAN FD access on Linux via kernel CAN. |
|
|
CanKit.Adapter.Kvaser
Kvaser CANlib adapter for CanKit, enabling unified CAN/CAN FD access to Kvaser devices. |
GitHub repositories
This package is not used by any popular GitHub repositories.
0.3.3
**Improved**
- `MaskFilter` and `RangeFilter` enums to CanFeature for more precise device capability detection.
**Fixed**
- Added exception handling around `Endpoint.Enumerate()` to prevent crashes when the required driver is not installed.
- Revised the criteria for software-substitute filtering on ZLG adapters to make the filtering semantics explicit.