using SickBlazorApp.Models; namespace SickBlazorApp.Services; public interface ICanBusService : IDisposable { event EventHandler? PositionReceived; event EventHandler? NodeStateChanged; event EventHandler? FrameReceived; event EventHandler? NodeIdChanged; Task InitAsync(); void Start(); void Stop(); void SendNmtStart(byte nodeId); void SendNmtReset(byte nodeId); void SendNmtStop(byte nodeId); void ChangeBitrate(int bitrate); Task ApplyBitrateAsync(byte nodeId, int bitrate); int CurrentBitrate { get; } Task ApplyNodeIdAsync(byte oldNodeId, byte newNodeId); byte CurrentNodeId { get; } }