Skip to content

Fields

busylight_core.vendors.kuando.implementation.fields

Kuando Busylight bit field definitions.

This module defines BitField classes used to construct device commands. Each field represents a specific portion of the 64-bit command structure that controls various aspects of the Kuando Busylight device behavior.

Classes

busylight_core.vendors.kuando.implementation.fields.OpCodeField

OpCodeField()

Bases: BitField

4-bit opcode

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(60, 4)
Attributes
busylight_core.vendors.kuando.implementation.fields.OpCodeField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.OpCodeField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.OpCodeField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.OperandField

OperandField()

Bases: BitField

4-bit operand

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(56, 4)
Attributes
busylight_core.vendors.kuando.implementation.fields.OperandField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.OperandField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.OperandField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.BodyField

BodyField()

Bases: BitField

56-bit body

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(0, 56)
Attributes
busylight_core.vendors.kuando.implementation.fields.BodyField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.BodyField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.BodyField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.RepeatField

RepeatField()

Bases: BitField

8-bit repeat

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(48, 8)
Attributes
busylight_core.vendors.kuando.implementation.fields.RepeatField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.RepeatField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.RepeatField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.ScaledColorField

ScaledColorField(offset, width=1)

Bases: BitField

A scaled color field that converts between 0-255 RGB values and device scale.

The Kuando devices use a 0-100 internal scale for color values, but the public API uses standard 0-255 RGB values. This field handles the conversion automatically when getting and setting color values.

Create a read-only bit field descriptor.

Defines a named field that maps to specific bit positions within a Word. The field will be accessible as a regular attribute on Word instances but will raise AttributeError on assignment attempts.

:param offset: Starting bit position within the word (0-based from LSB) :param width: Number of consecutive bits to include in the field

Source code in src/busylight_core/word.py
def __init__(self, offset: int, width: int = 1) -> None:
    """Create a read-only bit field descriptor.

    Defines a named field that maps to specific bit positions within a Word.
    The field will be accessible as a regular attribute on Word instances
    but will raise AttributeError on assignment attempts.


    :param offset: Starting bit position within the word (0-based from LSB)
    :param width: Number of consecutive bits to include in the field
    """
    self.field = slice(offset, offset + width)
    self.offset = offset  # Store for introspection
    self.width = width  # Store for introspection
Attributes
busylight_core.vendors.kuando.implementation.fields.ScaledColorField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.ScaledColorField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.ScaledColorField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.RedField

RedField()

Bases: ScaledColorField

8-bit red color component with automatic scaling.

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(40, 8)
Attributes
busylight_core.vendors.kuando.implementation.fields.RedField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.RedField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.RedField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.GreenField

GreenField()

Bases: ScaledColorField

8-bit green color component with automatic scaling.

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(32, 8)
Attributes
busylight_core.vendors.kuando.implementation.fields.GreenField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.GreenField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.GreenField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.BlueField

BlueField()

Bases: ScaledColorField

8-bit blue color component with automatic scaling.

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(24, 8)
Attributes
busylight_core.vendors.kuando.implementation.fields.BlueField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.BlueField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.BlueField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.DutyCycleOnField

DutyCycleOnField()

Bases: BitField

8-bit duty cycle on time for LED pulsing patterns.

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(16, 8)
Attributes
busylight_core.vendors.kuando.implementation.fields.DutyCycleOnField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.DutyCycleOnField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.DutyCycleOnField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.DutyCycleOffField

DutyCycleOffField()

Bases: BitField

8-bit duty cycle off time for LED pulsing patterns.

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(8, 8)
Attributes
busylight_core.vendors.kuando.implementation.fields.DutyCycleOffField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.DutyCycleOffField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.DutyCycleOffField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.UpdateBit

UpdateBit()

Bases: BitField

1-bit update

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(7, 1)
Attributes
busylight_core.vendors.kuando.implementation.fields.UpdateBit.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.UpdateBit.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.UpdateBit.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.RingtoneField

RingtoneField()

Bases: BitField

4-bit ringtone selection field.

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(3, 4)
Attributes
busylight_core.vendors.kuando.implementation.fields.RingtoneField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.RingtoneField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.RingtoneField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.VolumeField

VolumeField()

Bases: BitField

3-bit volume control for ringtone playback.

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(0, 3)
Attributes
busylight_core.vendors.kuando.implementation.fields.VolumeField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.VolumeField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.VolumeField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.SensitivityField

SensitivityField()

Bases: BitField

8-bit sensitivity

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(56, 8)
Attributes
busylight_core.vendors.kuando.implementation.fields.SensitivityField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.SensitivityField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.SensitivityField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.TimeoutField

TimeoutField()

Bases: BitField

8-bit timeout

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(48, 8)
Attributes
busylight_core.vendors.kuando.implementation.fields.TimeoutField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.TimeoutField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.TimeoutField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.TriggerField

TriggerField()

Bases: BitField

8-bit trigger

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(40, 8)
Attributes
busylight_core.vendors.kuando.implementation.fields.TriggerField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.TriggerField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.TriggerField.width instance-attribute
width = width

busylight_core.vendors.kuando.implementation.fields.ChecksumField

ChecksumField()

Bases: BitField

16-bit checksum

Source code in src/busylight_core/vendors/kuando/implementation/fields.py
def __init__(self) -> None:
    super().__init__(0, 16)
Attributes
busylight_core.vendors.kuando.implementation.fields.ChecksumField.field instance-attribute
field = slice(offset, offset + width)
busylight_core.vendors.kuando.implementation.fields.ChecksumField.offset instance-attribute
offset = offset
busylight_core.vendors.kuando.implementation.fields.ChecksumField.width instance-attribute
width = width