Characteristic Locus
Inheritance object > WiiExtensionControllerBase > WiiClassicControllerBase > WiiNunchuck
Implements II2cPeripheral
Inherited Members object.Equals(object) object.Equals(object, object) object.GetHashCode() object.GetType() object.MemberwiseClone() object.ReferenceEquals(object, object) object.ToString()
Namespace Meadow.Foundation.Sensors.Hid
Assembly WiiExtensionControllers.dll

Syntax

public abstract class WiiExtensionControllerBase : II2cPeripheral

Constructors

WiiExtensionControllerBase(II2cBus, byte)

Base constructor

Declaration
public WiiExtensionControllerBase(II2cBus i2cBus, byte address)

Parameters

Type Name Description
II2cBus i2cBus

the I2C bus connected to the extension controller

byte address

The extension controller address

Fields

i2cComms

I2C Communication bus used to communicate with the peripheral

Declaration
protected readonly II2cCommunications i2cComms

Field Value

Type Description
II2cCommunications

samplingLock

Lock for sampling

Declaration
protected object samplingLock

Field Value

Type Description
object

Properties

DefaultI2cAddress

The default I2C address for the peripheral

Declaration
public byte DefaultI2cAddress { get; }

Property Value

Type Description
byte

DefaultI2cSpeed

Default I2C bus speed (400kHz)

Declaration
public static I2cBusSpeed DefaultI2cSpeed { get; }

Property Value

Type Description
I2cBusSpeed

IsSampling

Are we actively reading data from the extension controller

Declaration
public bool IsSampling { get; protected set; }

Property Value

Type Description
bool

ReadBuffer

Data buffer returned by the controller

Declaration
protected Span<byte> ReadBuffer { get; }

Property Value

Type Description
Span<byte>

SamplingTokenSource

Sampling cancellation token source

Declaration
protected CancellationTokenSource? SamplingTokenSource { get; set; }

Property Value

Type Description
CancellationTokenSource

Methods

GetIdentification()

Gets the device ID

Declaration
public byte[] GetIdentification()

Returns

Type Description
byte[]

The ID as a byte

Initialize()

Initialize the extension controller

Declaration
protected virtual void Initialize()

StartUpdating(TimeSpan)

Starts continuously sampling the sensor

Declaration
public void StartUpdating(TimeSpan updateInterval)

Parameters

Type Name Description
TimeSpan updateInterval

interval between samples

StopUpdating()

Stops sampling the extension controller

Declaration
public void StopUpdating()

Update()

Get the latest sensor data from the device

Declaration
public virtual void Update()