Documentation
    Preparing search index...

    Represents a Pixels Multi Purpose Controller (MPC). Most of its methods require the instance to be connected to the MPC. Call the () method to initiate a connection.

    Call addEventListener to get notified for rolls, connection and disconnection events and more.

    Call addPropertyListener to get notified on property changes.

    Hierarchy (View Summary)

    Implements

    Index

    Constructors

    • Instantiates a MPC.

      Parameters

      • session: PixelSession

        The session used to communicate with the MPC.

      • Optionalinfo: Partial<
            Pick<
                Readonly<
                    {
                        batteryLevel: number;
                        colorway: | "custom"
                        | "unknown"
                        | "onyxBlack"
                        | "hematiteGrey"
                        | "midnightGalaxy"
                        | "auroraSky"
                        | "clear"
                        | "whiteAurora"
                        | "electricGalaxy";
                        currentFace: number;
                        currentFaceIndex: number;
                        dieType: | "unknown"
                        | "d4"
                        | "d6"
                        | "d8"
                        | "d10"
                        | "d00"
                        | "d12"
                        | "d20"
                        | "d6pipped"
                        | "d6fudge";
                        firmwareDate: Date;
                        isCharging: boolean;
                        ledCount: number;
                        name: string;
                        pixelId: number;
                        rollState: | "unknown"
                        | "rolled"
                        | "handling"
                        | "rolling"
                        | "crooked"
                        | "onFace";
                        rssi: number;
                        systemId: string;
                    },
                >,
                "pixelId"
                | "ledCount"
                | "firmwareDate",
            >,
        >

      Returns MPC

    Properties

    _msgEvEmitter: EventEmitter<any>
    _serializer: MessageSerializer<
        | "rssi"
        | "blink"
        | "none"
        | "whoAreYou"
        | "bulkSetup"
        | "bulkSetupAck"
        | "bulkData"
        | "bulkDataAck"
        | "transferSettings"
        | "transferSettingsAck"
        | "transferSettingsFinished"
        | "debugLog"
        | "requestSettings"
        | "blinkAck"
        | "requestRssi"
        | "notifyUser"
        | "notifyUserAck"
        | "programDefaultParameters"
        | "programDefaultParametersFinished"
        | "setName"
        | "setNameAck"
        | "requestTemperature"
        | "temperature"
        | "iAmAMPC"
        | "playAnimation"
        | "stopAnimation"
        | "synchronizeTime",
    >
    isNotifier: true
    type: "mpc"

    Device type is Pixels MPC.

    MutablePropsList: readonly (
        | "systemId"
        | "name"
        | "rssi"
        | "pixelId"
        | "ledCount"
        | "colorway"
        | "dieType"
        | "firmwareDate"
        | "batteryLevel"
        | "isCharging"
        | "rollState"
        | "currentFace"
        | "currentFaceIndex"
    )[]

    Accessors

    • get batteryLevel(): number

      Gets the MPC battery level (percentage).

      Returns number

      This value is automatically updated when the die is connected.

    • get colorway(): | "custom"
      | "unknown"
      | "onyxBlack"
      | "hematiteGrey"
      | "midnightGalaxy"
      | "auroraSky"
      | "clear"
      | "whiteAurora"
      | "electricGalaxy"

      Always return "unknown".

      Returns
          | "custom"
          | "unknown"
          | "onyxBlack"
          | "hematiteGrey"
          | "midnightGalaxy"
          | "auroraSky"
          | "clear"
          | "whiteAurora"
          | "electricGalaxy"

    • get currentFace(): number

      Always return "0".

      Returns number

    • get currentFaceIndex(): number

      Always return "0".

      Returns number

    • get dieType(): | "unknown"
      | "d4"
      | "d6"
      | "d8"
      | "d10"
      | "d00"
      | "d12"
      | "d20"
      | "d6pipped"
      | "d6fudge"

      Always return "unknown".

      Returns
          | "unknown"
          | "d4"
          | "d6"
          | "d8"
          | "d10"
          | "d00"
          | "d12"
          | "d20"
          | "d6pipped"
          | "d6fudge"

    • get firmwareDate(): Date

      Gets the MPC firmware build date.

      Returns Date

    • get isCharging(): boolean

      Gets whether the MPC battery is charging or not. Returns 'true' if fully charged but still on charger.

      Returns boolean

      This value is automatically updated when the die is connected.

    • get ledCount(): number

      Gets the number of LEDs for the MPC, may be 0 until connected to device.

      Returns number

    • get logger(): ((msg: string) => void) | null | undefined

      Set logger to use by this instance.

      Returns ((msg: string) => void) | null | undefined

    • set logger(logger: ((msg: string) => void) | null | undefined): void

      Parameters

      • logger: ((msg: string) => void) | null | undefined

      Returns void

    • get logMessages(): boolean

      Toggle logging information about each send and received message.

      Returns boolean

    • set logMessages(enabled: boolean): void

      Parameters

      • enabled: boolean

      Returns void

    • get logMessagesSerializedData(): boolean

      Toggle logging the serialized (binary) data for each send and received message.

      Returns boolean

    • set logMessagesSerializedData(enabled: boolean): void

      Parameters

      • enabled: boolean

      Returns void

    • get name(): string

      Gets the MPC name, may be empty until connected to device.

      Returns string

    • get pixelId(): number

      Gets the unique Pixel id of the MPC, may be 0 until connected.

      Returns number

    • get rollState(): | "unknown"
      | "rolled"
      | "handling"
      | "rolling"
      | "crooked"
      | "onFace"

      Always return "unknown".

      Returns "unknown" | "rolled" | "handling" | "rolling" | "crooked" | "onFace"

    • get rssi(): number

      Gets the last RSSI value notified by the MPC.

      Returns number

      Call () to automatically update the RSSI value.

    • get sessionDeviceName(): string | undefined

      Returns string | undefined

    • get status(): PixelStatus

      Gets the Pixel last known connection status.

      Returns PixelStatus

    • get systemId(): string

      Gets the unique id assigned by the system to the MPC Bluetooth peripheral.

      Returns string

    Methods

    • Type Parameters

      • K extends "battery" | "statusChanged" | "messageReceived" | "messageSend"

      Parameters

      Returns void

    • Sends a message to the Pixel and wait for a specific response.

      Parameters

      • msgOrTypeToSend:
            | "rssi"
            | "blink"
            | "none"
            | "whoAreYou"
            | "bulkSetup"
            | "bulkSetupAck"
            | "bulkData"
            | "bulkDataAck"
            | "transferSettings"
            | "transferSettingsAck"
            | "transferSettingsFinished"
            | "debugLog"
            | "requestSettings"
            | "blinkAck"
            | "requestRssi"
            | "notifyUser"
            | "notifyUserAck"
            | "programDefaultParameters"
            | "programDefaultParametersFinished"
            | "setName"
            | "setNameAck"
            | "requestTemperature"
            | "temperature"
            | PixelMessage
            | "iAmAMPC"
            | "playAnimation"
            | "stopAnimation"
            | "synchronizeTime"

        Message with the data to send or just a message type.

      • responseType:
            | "rssi"
            | "blink"
            | "none"
            | "whoAreYou"
            | "bulkSetup"
            | "bulkSetupAck"
            | "bulkData"
            | "bulkDataAck"
            | "transferSettings"
            | "transferSettingsAck"
            | "transferSettingsFinished"
            | "debugLog"
            | "requestSettings"
            | "blinkAck"
            | "requestRssi"
            | "notifyUser"
            | "notifyUserAck"
            | "programDefaultParameters"
            | "programDefaultParametersFinished"
            | "setName"
            | "setNameAck"
            | "requestTemperature"
            | "temperature"
            | "iAmAMPC"
            | "playAnimation"
            | "stopAnimation"
            | "synchronizeTime"

        Expected response type.

      • OptionaltimeoutMs: number

        Timeout in mill-seconds before aborting waiting for the response.

      Returns Promise<
          | "rssi"
          | "blink"
          | "none"
          | "whoAreYou"
          | "bulkSetup"
          | "bulkSetupAck"
          | "bulkData"
          | "bulkDataAck"
          | "transferSettings"
          | "transferSettingsAck"
          | "transferSettingsFinished"
          | "debugLog"
          | "requestSettings"
          | "blinkAck"
          | "requestRssi"
          | "notifyUser"
          | "notifyUserAck"
          | "programDefaultParameters"
          | "programDefaultParametersFinished"
          | "setName"
          | "setNameAck"
          | "requestTemperature"
          | "temperature"
          | PixelMessage
          | "iAmAMPC"
          | "playAnimation"
          | "stopAnimation"
          | "synchronizeTime",
      >

      A promise resolving to the response in the form of a message type or a message object.

    • Sends a message to the Pixel and wait for a specific response which is returned casted to the expected type.

      Type Parameters

      • T extends PixelMessage

      Parameters

      • msgOrTypeToSend:
            | "rssi"
            | "blink"
            | "none"
            | "whoAreYou"
            | "bulkSetup"
            | "bulkSetupAck"
            | "bulkData"
            | "bulkDataAck"
            | "transferSettings"
            | "transferSettingsAck"
            | "transferSettingsFinished"
            | "debugLog"
            | "requestSettings"
            | "blinkAck"
            | "requestRssi"
            | "notifyUser"
            | "notifyUserAck"
            | "programDefaultParameters"
            | "programDefaultParametersFinished"
            | "setName"
            | "setNameAck"
            | "requestTemperature"
            | "temperature"
            | PixelMessage
            | "iAmAMPC"
            | "playAnimation"
            | "stopAnimation"
            | "synchronizeTime"

        Message with the data to send or just a message type.

      • responseType: new () => T

        Expected response class type.

      • OptionaltimeoutMs: number

      Returns Promise<T>

      A promise resolving to a message object of the expected type.

    • Sends a message to the Pixel.

      Parameters

      • msgOrType:
            | "rssi"
            | "blink"
            | "none"
            | "whoAreYou"
            | "bulkSetup"
            | "bulkSetupAck"
            | "bulkData"
            | "bulkDataAck"
            | "transferSettings"
            | "transferSettingsAck"
            | "transferSettingsFinished"
            | "debugLog"
            | "requestSettings"
            | "blinkAck"
            | "requestRssi"
            | "notifyUser"
            | "notifyUserAck"
            | "programDefaultParameters"
            | "programDefaultParametersFinished"
            | "setName"
            | "setNameAck"
            | "requestTemperature"
            | "temperature"
            | PixelMessage
            | "iAmAMPC"
            | "playAnimation"
            | "stopAnimation"
            | "synchronizeTime"

        Message with the data to send or just a message type.

      • OptionalwithoutAck: boolean

        Whether to request a confirmation that the message was received.

      Returns Promise<void>

      A promise that resolves once the message has been send.

    • Returns Promise<void>

    • Waits for a message from the Pixel.

      Parameters

      • expectedMsgType:
            | "rssi"
            | "blink"
            | "none"
            | "whoAreYou"
            | "bulkSetup"
            | "bulkSetupAck"
            | "bulkData"
            | "bulkDataAck"
            | "transferSettings"
            | "transferSettingsAck"
            | "transferSettingsFinished"
            | "debugLog"
            | "requestSettings"
            | "blinkAck"
            | "requestRssi"
            | "notifyUser"
            | "notifyUserAck"
            | "programDefaultParameters"
            | "programDefaultParametersFinished"
            | "setName"
            | "setNameAck"
            | "requestTemperature"
            | "temperature"
            | "iAmAMPC"
            | "playAnimation"
            | "stopAnimation"
            | "synchronizeTime"

        Type of the message to expect.

      • OptionaltimeoutMs: number

        Timeout before aborting the wait.

      Returns Promise<
          | "rssi"
          | "blink"
          | "none"
          | "whoAreYou"
          | "bulkSetup"
          | "bulkSetupAck"
          | "bulkData"
          | "bulkDataAck"
          | "transferSettings"
          | "transferSettingsAck"
          | "transferSettingsFinished"
          | "debugLog"
          | "requestSettings"
          | "blinkAck"
          | "requestRssi"
          | "notifyUser"
          | "notifyUserAck"
          | "programDefaultParameters"
          | "programDefaultParametersFinished"
          | "setName"
          | "setNameAck"
          | "requestTemperature"
          | "temperature"
          | PixelMessage
          | "iAmAMPC"
          | "playAnimation"
          | "stopAnimation"
          | "synchronizeTime",
      >

      A promise with the received message of the expected type.

    • Parameters

      • msg: unknown

      Returns void

    • Parameters

      • arr: ArrayBufferLike

      Returns void

    • Parameters

      • str: string

      Returns string

    • Parameters

      • msg: unknown

      Returns void

    • Registers a listener function that will be called when the specified event is raised. See PixelEventMap for the list of events and their associated data.

      Type Parameters

      • K extends "battery" | "statusChanged" | "messageReceived" | "messageSend"

      Parameters

      • type: K

        A case-sensitive string representing the event type to listen for.

      • listener: EventReceiver<MPCEventMap[K]>

        The callback function.

      Returns void

    • Registers a listener function that will be called on receiving raw messages of a given type from the Pixel.

      Parameters

      • msgType:
            | "rssi"
            | "blink"
            | "none"
            | "whoAreYou"
            | "bulkSetup"
            | "bulkSetupAck"
            | "bulkData"
            | "bulkDataAck"
            | "transferSettings"
            | "transferSettingsAck"
            | "transferSettingsFinished"
            | "debugLog"
            | "requestSettings"
            | "blinkAck"
            | "requestRssi"
            | "notifyUser"
            | "notifyUserAck"
            | "programDefaultParameters"
            | "programDefaultParametersFinished"
            | "setName"
            | "setNameAck"
            | "requestTemperature"
            | "temperature"
            | "iAmAMPC"
            | "playAnimation"
            | "stopAnimation"
            | "synchronizeTime"

        The type of message to watch for.

      • listener: (
            this: PixelConnect,
            message:
                | "rssi"
                | "blink"
                | "none"
                | "whoAreYou"
                | "bulkSetup"
                | "bulkSetupAck"
                | "bulkData"
                | "bulkDataAck"
                | "transferSettings"
                | "transferSettingsAck"
                | "transferSettingsFinished"
                | "debugLog"
                | "requestSettings"
                | "blinkAck"
                | "requestRssi"
                | "notifyUser"
                | "notifyUserAck"
                | "programDefaultParameters"
                | "programDefaultParametersFinished"
                | "setName"
                | "setNameAck"
                | "requestTemperature"
                | "temperature"
                | PixelMessage
                | "iAmAMPC"
                | "playAnimation"
                | "stopAnimation"
                | "synchronizeTime",
        ) => void

        The callback function.

      Returns void

    • Adds the given listener function for the specified property.

      Type Parameters

      • K extends
            | "systemId"
            | "name"
            | "rssi"
            | "pixelId"
            | "ledCount"
            | "colorway"
            | "dieType"
            | "firmwareDate"
            | "batteryLevel"
            | "isCharging"
            | "rollState"
            | "currentFace"
            | "currentFaceIndex"
            | "status"

      Parameters

      Returns void

    • Requests the MPC to blink and wait for a confirmation.

      Parameters

      • color: Color

        Blink color.

      • Optionalopt: {
            count?: number;
            duration?: number;
            faceMask?: number;
            fade?: number;
            loopCount?: number;
        }
        • Optionalcount?: number

          Number of blinks.

        • Optionalduration?: number

          Total duration of the animation in milliseconds.

        • OptionalfaceMask?: number

          Select which faces to light up.

        • Optionalfade?: number

          Amount of in and out fading, 0: sharp transition, 1: maximum fading.

        • OptionalloopCount?: number

          How many times to loop the animation.

      Returns Promise<void>

      A promise that resolves once the die has confirmed receiving the message.

    • Emit a Pixel event for the specified property. This function should be called by the concrete type whenever the a property's value changes.

      Type Parameters

      • K extends
            | "systemId"
            | "name"
            | "rssi"
            | "pixelId"
            | "ledCount"
            | "colorway"
            | "dieType"
            | "firmwareDate"
            | "batteryLevel"
            | "isCharging"
            | "rollState"
            | "currentFace"
            | "currentFaceIndex"
            | "status"

      Parameters

      • propertyName: K

        Event name.

      Returns void

    • Parameters

      • animIndex: number
      • Optionaldelay: number
      • Optionalparam0: number
      • Optionalparam1: number

      Returns Promise<void>

    • Asynchronously gets the MPC RSSI value.

      Returns Promise<number>

      A promise revolving to a negative number representing the RSSI value.

    • Unregisters a listener from receiving events identified by the given event name. See PixelEventMap for the list of events and their associated data.

      Type Parameters

      • K extends "battery" | "statusChanged" | "messageReceived" | "messageSend"

      Parameters

      • type: K

        A case-sensitive string representing the event type.

      • listener: EventReceiver<MPCEventMap[K]>

        The callback function to unregister.

      Returns void

    • Unregisters a listener from receiving raw messages of a given type.

      Parameters

      • msgType:
            | "rssi"
            | "blink"
            | "none"
            | "whoAreYou"
            | "bulkSetup"
            | "bulkSetupAck"
            | "bulkData"
            | "bulkDataAck"
            | "transferSettings"
            | "transferSettingsAck"
            | "transferSettingsFinished"
            | "debugLog"
            | "requestSettings"
            | "blinkAck"
            | "requestRssi"
            | "notifyUser"
            | "notifyUserAck"
            | "programDefaultParameters"
            | "programDefaultParametersFinished"
            | "setName"
            | "setNameAck"
            | "requestTemperature"
            | "temperature"
            | "iAmAMPC"
            | "playAnimation"
            | "stopAnimation"
            | "synchronizeTime"

        The type of message to watch for.

      • listener: (
            this: PixelConnect,
            msg:
                | "rssi"
                | "blink"
                | "none"
                | "whoAreYou"
                | "bulkSetup"
                | "bulkSetupAck"
                | "bulkData"
                | "bulkDataAck"
                | "transferSettings"
                | "transferSettingsAck"
                | "transferSettingsFinished"
                | "debugLog"
                | "requestSettings"
                | "blinkAck"
                | "requestRssi"
                | "notifyUser"
                | "notifyUserAck"
                | "programDefaultParameters"
                | "programDefaultParametersFinished"
                | "setName"
                | "setNameAck"
                | "requestTemperature"
                | "temperature"
                | PixelMessage
                | "iAmAMPC"
                | "playAnimation"
                | "stopAnimation"
                | "synchronizeTime",
        ) => void

        The callback function to unregister.

      Returns void

    • Removes the given listener function for the specified property.

      Type Parameters

      • K extends
            | "systemId"
            | "name"
            | "rssi"
            | "pixelId"
            | "ledCount"
            | "colorway"
            | "dieType"
            | "firmwareDate"
            | "batteryLevel"
            | "isCharging"
            | "rollState"
            | "currentFace"
            | "currentFaceIndex"
            | "status"

      Parameters

      Returns void

    • Requests the MPC to change its name.

      Parameters

      • name: string

        New name to assign to the MPC. Must have at least one character.

      Returns Promise<void>

      A promise that resolves once the die has confirmed being renamed.

    • Requests the MPC to regularly send its measured RSSI value.

      Parameters

      • Optionalactivate: boolean

        Whether to turn or turn off this feature.

      • OptionalminInterval: number

        The minimum time interval in milliseconds between two RSSI updates.

      Returns Promise<void>

      A promise that resolves once the message has been send.

    • Sends a message to the MPC and wait for a specific response.

      Parameters

      • msgOrTypeToSend: MPCMessages.MPCMessageOrType

        Message with the data to send or just a message type.

      • responseType:
            | "rssi"
            | "blink"
            | "none"
            | "whoAreYou"
            | "bulkSetup"
            | "bulkSetupAck"
            | "bulkData"
            | "bulkDataAck"
            | "transferSettings"
            | "transferSettingsAck"
            | "transferSettingsFinished"
            | "debugLog"
            | "requestSettings"
            | "blinkAck"
            | "requestRssi"
            | "notifyUser"
            | "notifyUserAck"
            | "programDefaultParameters"
            | "programDefaultParametersFinished"
            | "setName"
            | "setNameAck"
            | "requestTemperature"
            | "temperature"
            | "iAmAMPC"
            | "playAnimation"
            | "stopAnimation"
            | "synchronizeTime"

        Expected response type.

      • OptionaltimeoutMs: number

        Timeout in mill-seconds before aborting waiting for the response.

      Returns Promise<MPCMessages.MPCMessageOrType>

      A promise resolving to the response in the form of a message type or a message object.

    • Sends a message to the MPC and wait for a specific response which is returned casted to the expected type.

      Type Parameters

      • T extends PixelMessage

      Parameters

      • msgOrTypeToSend: MPCMessages.MPCMessageOrType

        Message with the data to send or just a message type.

      • responseType: new () => T

        Expected response class type.

      • OptionaltimeoutMs: number

      Returns Promise<T>

      A promise resolving to a message object of the expected type.

    • Sends a message to the MPC.

      Parameters

      • msgOrType: MPCMessages.MPCMessageOrType

        Message with the data to send or just a message type.

      • OptionalwithoutAck: boolean

        Whether to request a confirmation that the message was received.

      Returns Promise<void>

      A promise that resolves once the message has been send.

    • Parameters

      • animIndex: number

      Returns Promise<void>

    • Parameters

      • targetTime: number
      • referenceTime: number
      • Optionalparam0: number
      • Optionalparam1: number

      Returns Promise<void>

    • Update MPC info from an external source such as scanning data.

      Parameters

      • info: Partial<
            Omit<
                PixelInfo,
                | "systemId"
                | "colorway"
                | "dieType"
                | "rollState"
                | "currentFaceIndex"
                | "currentFace",
            >,
        >

        The updated info.

      Returns void

      The info will be updated only if the die is disconnected. Roll state and face index are updated only if both are provided.