ComponentBase
Base class for all hardware components.
#Examples
// Simple component with only 'change' event
class Led extends ComponentBase<number> {
// No event map needed, defaults to just 'change'
}// Component with custom events
interface ButtonEventMap extends ComponentEventMap<number> {
change: (value: number) => void;
down: () => void;
up: () => void;
held: () => void;
}
class Button extends ComponentBase<number, ButtonEventMap> { ... }#Extends
EventEmitter
#Extended by
Button- Buzzer
- CO2Sensor
- Encoder
- Hapticlabs
- Joystick
- MotorDriver
- LEDStrip
- StepperMotor
DigitalActorAnalogSensor- I2cComponentBase
#Type Parameters
| Type Parameter | Default type | Description |
|---|---|---|
T | unknown | The type of the component's value |
E extends ComponentEventMap<T> | ComponentEventMap<T> | The complete event map for this component (optional, defaults to only 'change' event) By default, components only emit the 'change' event. If your component emits additional events, define a custom event map that extends ComponentEventMap |
#Constructors
#Constructor
new ComponentBase<T, E>(options): ComponentBase<T, E>;#Parameters
| Parameter | Type |
|---|---|
options | ComponentBaseOptions |
#Returns
ComponentBase<T, E>
#Overrides
EventEmitter.constructor#Accessors
#value
#Get Signature
get value(): T | undefined;Get the current value of the component.
#Returns
T | undefined
#Methods
#cleanup()
cleanup(): void;Cleanup resources when board closes. Override in subclasses to add component-specific cleanup.
#Returns
void
#handleData()
abstract handleData(data): void;Handle incoming data from Arduino via serial protocol. Called by Board when data arrives for this component's ID.
#Parameters
| Parameter | Type |
|---|---|
data | unknown |
#Returns
void
#off()
#Call Signature
off<K>(event, listener): this;Alias for removeListener (Node.js EventEmitter compatibility).
#Type Parameters
| Type Parameter |
|---|
K extends string | number | symbol |
#Parameters
| Parameter | Type |
|---|---|
event | K |
listener | E[K] |
#Returns
this
#Overrides
EventEmitter.off#Call Signature
off(event, listener): this;Alias for removeListener (Node.js EventEmitter compatibility).
#Parameters
| Parameter | Type |
|---|---|
event | string | symbol |
listener | (...args) => void |
#Returns
this
#Overrides
EventEmitter.off#on()
#Call Signature
on<K>(event, listener): this;Register an event listener with typed events.
#Type Parameters
| Type Parameter |
|---|
K extends string | number | symbol |
#Parameters
| Parameter | Type |
|---|---|
event | K |
listener | E[K] |
#Returns
this
#Overrides
EventEmitter.on#Call Signature
on(event, listener): this;Register an event listener with typed events.
#Parameters
| Parameter | Type |
|---|---|
event | string | symbol |
listener | (...args) => void |
#Returns
this
#Overrides
EventEmitter.on#once()
#Call Signature
once<K>(event, listener): this;Register a one-time event listener with typed events.
#Type Parameters
| Type Parameter |
|---|
K extends string | number | symbol |
#Parameters
| Parameter | Type |
|---|---|
event | K |
listener | E[K] |
#Returns
this
#Overrides
EventEmitter.once#Call Signature
once(event, listener): this;Register a one-time event listener with typed events.
#Parameters
| Parameter | Type |
|---|---|
event | string | symbol |
listener | (...args) => void |
#Returns
this
#Overrides
EventEmitter.once#removeAllListeners()
#Call Signature
removeAllListeners<K>(event?): this;Remove all listeners for a specific event, or all events if no event specified.
#Type Parameters
| Type Parameter |
|---|
K extends string | number | symbol |
#Parameters
| Parameter | Type |
|---|---|
event? | K |
#Returns
this
#Overrides
EventEmitter.removeAllListeners#Call Signature
removeAllListeners(event?): this;Remove all listeners for a specific event, or all events if no event specified.
#Parameters
| Parameter | Type |
|---|---|
event? | string | symbol |
#Returns
this
#Overrides
EventEmitter.removeAllListeners#removeListener()
#Call Signature
removeListener<K>(event, listener): this;Remove an event listener with typed events.
#Type Parameters
| Type Parameter |
|---|
K extends string | number | symbol |
#Parameters
| Parameter | Type |
|---|---|
event | K |
listener | E[K] |
#Returns
this
#Overrides
EventEmitter.removeListener#Call Signature
removeListener(event, listener): this;Remove an event listener with typed events.
#Parameters
| Parameter | Type |
|---|---|
event | string | symbol |
listener | (...args) => void |
#Returns
this
#Overrides
EventEmitter.removeListener#setBoard()
setBoard(board): void;#Parameters
| Parameter | Type |
|---|---|
board | Board |
#Returns
void