public class BrickletLEDStripV2 extends Device
Modifier and Type | Class and Description |
---|---|
static interface |
BrickletLEDStripV2.FrameStartedListener
This listener is triggered directly after a new frame render is started.
|
class |
BrickletLEDStripV2.LEDValuesLowLevel |
class |
BrickletLEDStripV2.SPITFPErrorCount |
Device.Identity
Constructor and Description |
---|
BrickletLEDStripV2(java.lang.String uid,
IPConnection ipcon)
Creates an object with the unique device ID \c uid.
|
Modifier and Type | Method and Description |
---|---|
void |
addFrameStartedListener(BrickletLEDStripV2.FrameStartedListener listener)
Adds a FrameStarted listener.
|
int |
getBootloaderMode()
Returns the current bootloader mode, see
setBootloaderMode(int) . |
int |
getChannelMapping()
Returns the currently used channel mapping as set by
setChannelMapping(int) . |
int |
getChipTemperature()
Returns the temperature as measured inside the microcontroller.
|
int |
getChipType()
Returns the currently used chip type as set by
setChipType(int) . |
long |
getClockFrequency()
Returns the currently used clock frequency as set by
setClockFrequency(long) . |
int |
getFrameDuration()
Returns the frame duration as set by
setFrameDuration(int) . |
boolean |
getFrameStartedCallbackConfiguration()
Returns the configuration as set by
setFrameStartedCallbackConfiguration(boolean) . |
Device.Identity |
getIdentity()
Returns the UID, the UID where the Bricklet is connected to,
the position, the hardware and firmware version as well as the
device identifier.
|
int[] |
getLEDValues(int index,
int length)
Returns *length* RGB(W) values starting from the
given *index*.
|
BrickletLEDStripV2.LEDValuesLowLevel |
getLEDValuesLowLevel(int index,
int length)
Returns *length* RGB(W) values starting from the
given *index*.
|
BrickletLEDStripV2.SPITFPErrorCount |
getSPITFPErrorCount()
Returns the error count for the communication between Brick and Bricklet.
|
int |
getStatusLEDConfig()
Returns the configuration as set by
setStatusLEDConfig(int) |
int |
getSupplyVoltage()
Returns the current supply voltage of the LEDs.
|
long |
readUID()
Returns the current UID as an integer.
|
void |
removeFrameStartedListener(BrickletLEDStripV2.FrameStartedListener listener)
Removes a FrameStarted listener.
|
void |
reset()
Calling this function will reset the Bricklet.
|
int |
setBootloaderMode(int mode)
Sets the bootloader mode and returns the status after the requested
mode change was instigated.
|
void |
setChannelMapping(int mapping)
Sets the channel mapping for the connected LEDs.
|
void |
setChipType(int chip)
Sets the type of the LED driver chip.
|
void |
setClockFrequency(long frequency)
Sets the frequency of the clock.
|
void |
setFrameDuration(int duration)
Sets the frame duration.
|
void |
setFrameStartedCallbackConfiguration(boolean enable)
Enables/disables the
BrickletLEDStripV2.FrameStartedListener listener. |
void |
setLEDValues(int index,
int[] value)
Sets the RGB(W) values for the LEDs starting from *index*.
|
void |
setLEDValuesLowLevel(int index,
int valueLength,
int valueChunkOffset,
int[] valueChunkData)
Sets the RGB(W) values for the LEDs starting from *index*.
|
void |
setStatusLEDConfig(int config)
Sets the status LED configuration.
|
void |
setWriteFirmwarePointer(long pointer)
Sets the firmware pointer for
writeFirmware(int[]) . |
int |
writeFirmware(int[] data)
Writes 64 Bytes of firmware at the position as written by
setWriteFirmwarePointer(long) before. |
void |
writeUID(long uid)
Writes a new UID into flash.
|
getAPIVersion, getResponseExpected, setResponseExpected, setResponseExpectedAll
public static final int DEVICE_IDENTIFIER
public static final java.lang.String DEVICE_DISPLAY_NAME
public static final byte FUNCTION_SET_LED_VALUES_LOW_LEVEL
public static final byte FUNCTION_GET_LED_VALUES_LOW_LEVEL
public static final byte FUNCTION_SET_FRAME_DURATION
public static final byte FUNCTION_GET_FRAME_DURATION
public static final byte FUNCTION_GET_SUPPLY_VOLTAGE
public static final byte FUNCTION_SET_CLOCK_FREQUENCY
public static final byte FUNCTION_GET_CLOCK_FREQUENCY
public static final byte FUNCTION_SET_CHIP_TYPE
public static final byte FUNCTION_GET_CHIP_TYPE
public static final byte FUNCTION_SET_CHANNEL_MAPPING
public static final byte FUNCTION_GET_CHANNEL_MAPPING
public static final byte FUNCTION_SET_FRAME_STARTED_CALLBACK_CONFIGURATION
public static final byte FUNCTION_GET_FRAME_STARTED_CALLBACK_CONFIGURATION
public static final byte FUNCTION_GET_SPITFP_ERROR_COUNT
public static final byte FUNCTION_SET_BOOTLOADER_MODE
public static final byte FUNCTION_GET_BOOTLOADER_MODE
public static final byte FUNCTION_SET_WRITE_FIRMWARE_POINTER
public static final byte FUNCTION_WRITE_FIRMWARE
public static final byte FUNCTION_SET_STATUS_LED_CONFIG
public static final byte FUNCTION_GET_STATUS_LED_CONFIG
public static final byte FUNCTION_GET_CHIP_TEMPERATURE
public static final byte FUNCTION_RESET
public static final byte FUNCTION_WRITE_UID
public static final byte FUNCTION_READ_UID
public static final byte FUNCTION_GET_IDENTITY
public static final int CHIP_TYPE_WS2801
public static final int CHIP_TYPE_WS2811
public static final int CHIP_TYPE_WS2812
public static final int CHIP_TYPE_LPD8806
public static final int CHIP_TYPE_APA102
public static final int CHANNEL_MAPPING_RGB
public static final int CHANNEL_MAPPING_RBG
public static final int CHANNEL_MAPPING_BRG
public static final int CHANNEL_MAPPING_BGR
public static final int CHANNEL_MAPPING_GRB
public static final int CHANNEL_MAPPING_GBR
public static final int CHANNEL_MAPPING_RGBW
public static final int CHANNEL_MAPPING_RGWB
public static final int CHANNEL_MAPPING_RBGW
public static final int CHANNEL_MAPPING_RBWG
public static final int CHANNEL_MAPPING_RWGB
public static final int CHANNEL_MAPPING_RWBG
public static final int CHANNEL_MAPPING_GRWB
public static final int CHANNEL_MAPPING_GRBW
public static final int CHANNEL_MAPPING_GBWR
public static final int CHANNEL_MAPPING_GBRW
public static final int CHANNEL_MAPPING_GWBR
public static final int CHANNEL_MAPPING_GWRB
public static final int CHANNEL_MAPPING_BRGW
public static final int CHANNEL_MAPPING_BRWG
public static final int CHANNEL_MAPPING_BGRW
public static final int CHANNEL_MAPPING_BGWR
public static final int CHANNEL_MAPPING_BWRG
public static final int CHANNEL_MAPPING_BWGR
public static final int CHANNEL_MAPPING_WRBG
public static final int CHANNEL_MAPPING_WRGB
public static final int CHANNEL_MAPPING_WGBR
public static final int CHANNEL_MAPPING_WGRB
public static final int CHANNEL_MAPPING_WBGR
public static final int CHANNEL_MAPPING_WBRG
public static final int BOOTLOADER_MODE_BOOTLOADER
public static final int BOOTLOADER_MODE_FIRMWARE
public static final int BOOTLOADER_MODE_BOOTLOADER_WAIT_FOR_REBOOT
public static final int BOOTLOADER_MODE_FIRMWARE_WAIT_FOR_REBOOT
public static final int BOOTLOADER_MODE_FIRMWARE_WAIT_FOR_ERASE_AND_REBOOT
public static final int BOOTLOADER_STATUS_OK
public static final int BOOTLOADER_STATUS_INVALID_MODE
public static final int BOOTLOADER_STATUS_NO_CHANGE
public static final int BOOTLOADER_STATUS_ENTRY_FUNCTION_NOT_PRESENT
public static final int BOOTLOADER_STATUS_DEVICE_IDENTIFIER_INCORRECT
public static final int BOOTLOADER_STATUS_CRC_MISMATCH
public static final int STATUS_LED_CONFIG_OFF
public static final int STATUS_LED_CONFIG_ON
public static final int STATUS_LED_CONFIG_SHOW_HEARTBEAT
public static final int STATUS_LED_CONFIG_SHOW_STATUS
public BrickletLEDStripV2(java.lang.String uid, IPConnection ipcon)
public void setLEDValuesLowLevel(int index, int valueLength, int valueChunkOffset, int[] valueChunkData) throws TinkerforgeException
setChipType(int)
) and a channel mapping (see setChannelMapping(int)
)
according to the connected LEDs.
If the channel mapping has 3 colors, you need to give the data in the sequence
RGBRGBRGB... if the channel mapping has 4 colors you need to give data in the
sequence RGBWRGBWRGBW...
The data is double buffered and the colors will be transfered to the
LEDs when the next frame duration ends (see setFrameDuration(int)
).
Generic approach:
* Set the frame duration to a value that represents the number of frames per
second you want to achieve.
* Set all of the LED colors for one frame.
* Wait for the BrickletLEDStripV2.FrameStartedListener
listener.
* Set all of the LED colors for next frame.
* Wait for the BrickletLEDStripV2.FrameStartedListener
listener.
* And so on.
This approach ensures that you can change the LED colors with a fixed frame rate.TinkerforgeException
public BrickletLEDStripV2.LEDValuesLowLevel getLEDValuesLowLevel(int index, int length) throws TinkerforgeException
TinkerforgeException
public void setFrameDuration(int duration) throws TinkerforgeException
setLEDValues(int, int[])
.
Default value: 100ms (10 frames per second).TinkerforgeException
public int getFrameDuration() throws TinkerforgeException
setFrameDuration(int)
.TinkerforgeException
public int getSupplyVoltage() throws TinkerforgeException
TinkerforgeException
public void setClockFrequency(long frequency) throws TinkerforgeException
getClockFrequency()
.
If you have problems with flickering LEDs, they may be bits flipping. You
can fix this by either making the connection between the LEDs and the
Bricklet shorter or by reducing the frequency.
With a decreasing frequency your maximum frames per second will decrease
too.TinkerforgeException
public long getClockFrequency() throws TinkerforgeException
setClockFrequency(long)
.TinkerforgeException
public void setChipType(int chip) throws TinkerforgeException
TinkerforgeException
public int getChipType() throws TinkerforgeException
setChipType(int)
.TinkerforgeException
public void setChannelMapping(int mapping) throws TinkerforgeException
setLEDValues(int, int[])
expects 4
values per pixel and if the mapping has 3 colors it expects 3 values per pixel.
The function always expects the order RGB(W). The connected LED driver chips
might have their 3 or 4 channels in a different order. For example, the WS2801
chips typically use BGR order, then WS2812 chips typically use GRB order and
the APA102 chips typically use WBGR order.
The APA102 chips are special. They have three 8-bit channels for RGB
and an additional 5-bit channel for the overall brightness of the RGB LED
making them 4-channel chips. Internally the brightness channel is the first
channel, therefore one of the Wxyz channel mappings should be used. Then
the W channel controls the brightness.TinkerforgeException
public int getChannelMapping() throws TinkerforgeException
setChannelMapping(int)
.TinkerforgeException
public void setFrameStartedCallbackConfiguration(boolean enable) throws TinkerforgeException
BrickletLEDStripV2.FrameStartedListener
listener.TinkerforgeException
public boolean getFrameStartedCallbackConfiguration() throws TinkerforgeException
setFrameStartedCallbackConfiguration(boolean)
.TinkerforgeException
public BrickletLEDStripV2.SPITFPErrorCount getSPITFPErrorCount() throws TinkerforgeException
TinkerforgeException
public int setBootloaderMode(int mode) throws TinkerforgeException
TinkerforgeException
public int getBootloaderMode() throws TinkerforgeException
setBootloaderMode(int)
.TinkerforgeException
public void setWriteFirmwarePointer(long pointer) throws TinkerforgeException
writeFirmware(int[])
. The pointer has
to be increased by chunks of size 64. The data is written to flash
every 4 chunks (which equals to one page of size 256).
This function is used by Brick Viewer during flashing. It should not be
necessary to call it in a normal user program.TinkerforgeException
public int writeFirmware(int[] data) throws TinkerforgeException
setWriteFirmwarePointer(long)
before. The firmware is written
to flash every 4 chunks.
You can only write firmware in bootloader mode.
This function is used by Brick Viewer during flashing. It should not be
necessary to call it in a normal user program.TinkerforgeException
public void setStatusLEDConfig(int config) throws TinkerforgeException
TinkerforgeException
public int getStatusLEDConfig() throws TinkerforgeException
setStatusLEDConfig(int)
TinkerforgeException
public int getChipTemperature() throws TinkerforgeException
TinkerforgeException
public void reset() throws TinkerforgeException
TinkerforgeException
public void writeUID(long uid) throws TinkerforgeException
TinkerforgeException
public long readUID() throws TinkerforgeException
TinkerforgeException
public Device.Identity getIdentity() throws TinkerforgeException
getIdentity
in class Device
TinkerforgeException
public void setLEDValues(int index, int[] value) throws TinkerforgeException
setChipType(int)
) and a channel mapping (see setChannelMapping(int)
)
according to the connected LEDs.
If the channel mapping has 3 colors, you need to give the data in the sequence
RGBRGBRGB... if the channel mapping has 4 colors you need to give data in the
sequence RGBWRGBWRGBW...
The data is double buffered and the colors will be transfered to the
LEDs when the next frame duration ends (see setFrameDuration(int)
).
Generic approach:
* Set the frame duration to a value that represents the number of frames per
second you want to achieve.
* Set all of the LED colors for one frame.
* Wait for the BrickletLEDStripV2.FrameStartedListener
listener.
* Set all of the LED colors for next frame.
* Wait for the BrickletLEDStripV2.FrameStartedListener
listener.
* And so on.
This approach ensures that you can change the LED colors with a fixed frame rate.TinkerforgeException
public int[] getLEDValues(int index, int length) throws TinkerforgeException
TinkerforgeException
public void addFrameStartedListener(BrickletLEDStripV2.FrameStartedListener listener)
public void removeFrameStartedListener(BrickletLEDStripV2.FrameStartedListener listener)
Copyright © 2020 Tinkerforge GmbH. All rights reserved.