Skip to main content

ICanControllerProvider Interface

Namespace: GHIElectronics.TinyCLR.Devices.Can.Provider · Assembly: GHIElectronics.TinyCLR.Devices.Can

Provider contract for a CAN controller.

public interface ICanControllerProvider : IDisposable

Properties

WriteBufferSize

int WriteBufferSize { get; set; }

Size of the transmit message queue.

ReadBufferSize

int ReadBufferSize { get; set; }

Size of the receive message queue.

MessagesToWrite

int MessagesToWrite { get; }

Messages currently queued for transmission.

MessagesToRead

int MessagesToRead { get; }

Messages currently available to read.

CanWriteMessage

bool CanWriteMessage { get; }

True when the transmit queue has room.

CanReadMessage

bool CanReadMessage { get; }

True when at least one received message is available.

WriteErrorCount

int WriteErrorCount { get; }

Current transmit error counter (TEC).

ReadErrorCount

int ReadErrorCount { get; }

Current receive error counter (REC).

SourceClock

int SourceClock { get; }

Source clock feeding the CAN prescaler, in Hz.

Methods

Enable()

void Enable()

Powers on the controller.

Disable()

void Disable()

Powers off the controller.

WriteMessages(CanMessage[] messages, int offset, int count)

int WriteMessages(CanMessage[] messages, int offset, int count)

Queues a slice of messages for transmission. Returns count actually queued.

ParameterTypeDescription
messagesCanMessage[]
offsetint
countint

Returns int

ReadMessages(CanMessage[] messages, int offset, int count)

int ReadMessages(CanMessage[] messages, int offset, int count)

Dequeues up to count received messages. Returns count actually read.

ParameterTypeDescription
messagesCanMessage[]
offsetint
countint

Returns int

SetNominalBitTiming(CanBitTiming bitTiming)

void SetNominalBitTiming(CanBitTiming bitTiming)

Configures arbitration-phase bit timing.

ParameterTypeDescription
bitTimingCanBitTiming

SetDataBitTiming(CanBitTiming bitTiming)

void SetDataBitTiming(CanBitTiming bitTiming)

Configures CAN-FD data-phase bit timing.

ParameterTypeDescription
bitTimingCanBitTiming

AddFilter(Filter.IdType idType, Filter.FilterType filterType, uint id1, uint id2)

void AddFilter(Filter.IdType idType, Filter.FilterType filterType, uint id1, uint id2)

Installs an acceptance filter.

ParameterTypeDescription
idTypeFilter.IdType
filterTypeFilter.FilterType
id1uint
id2uint

RejectRemoteFrame(Filter.IdType idType)

void RejectRemoteFrame(Filter.IdType idType)

Filters out RTR frames of the given ID width.

ParameterTypeDescription
idTypeFilter.IdType

ClearFilter()

void ClearFilter()

Removes every installed filter.

ClearWriteBuffer()

void ClearWriteBuffer()

Empties the transmit queue.

ClearReadBuffer()

void ClearReadBuffer()

Empties the receive queue.

Events

MessageReceived

event MessageReceivedEventHandler MessageReceived

Raised when messages arrive.

ErrorReceived

event ErrorReceivedEventHandler ErrorReceived

Raised when a bus error or state change is observed.