mirror of
https://github.com/wpilibsuite/allwpilib
synced 2026-07-01 02:41:48 +00:00
[hal] Fix and document addressable LED timings (#5272)
HAL_SetAddressableLEDBitTiming swapped high and low timings for whatever was written to it. This fixes that bug. Additionally, the API has been updated to take high time first, and then low time. This is due to this being the physical data format, so having the API match is clearer. Additionally, update the docs with the defaults.
This commit is contained in:
@@ -206,10 +206,10 @@ void HAL_WriteAddressableLEDData(HAL_AddressableLEDHandle handle,
|
||||
}
|
||||
|
||||
void HAL_SetAddressableLEDBitTiming(HAL_AddressableLEDHandle handle,
|
||||
int32_t lowTime0NanoSeconds,
|
||||
int32_t highTime0NanoSeconds,
|
||||
int32_t lowTime1NanoSeconds,
|
||||
int32_t lowTime0NanoSeconds,
|
||||
int32_t highTime1NanoSeconds,
|
||||
int32_t lowTime1NanoSeconds,
|
||||
int32_t* status) {
|
||||
auto led = addressableLEDHandles->Get(handle);
|
||||
if (!led) {
|
||||
@@ -217,10 +217,10 @@ void HAL_SetAddressableLEDBitTiming(HAL_AddressableLEDHandle handle,
|
||||
return;
|
||||
}
|
||||
|
||||
led->led->writeLowBitTickTiming(1, highTime0NanoSeconds / 25, status);
|
||||
led->led->writeLowBitTickTiming(0, lowTime0NanoSeconds / 25, status);
|
||||
led->led->writeHighBitTickTiming(1, highTime1NanoSeconds / 25, status);
|
||||
led->led->writeHighBitTickTiming(0, lowTime1NanoSeconds / 25, status);
|
||||
led->led->writeLowBitTickTiming(0, highTime0NanoSeconds / 25, status);
|
||||
led->led->writeLowBitTickTiming(1, lowTime0NanoSeconds / 25, status);
|
||||
led->led->writeHighBitTickTiming(0, highTime1NanoSeconds / 25, status);
|
||||
led->led->writeHighBitTickTiming(1, lowTime1NanoSeconds / 25, status);
|
||||
}
|
||||
|
||||
void HAL_SetAddressableLEDSyncTime(HAL_AddressableLEDHandle handle,
|
||||
|
||||
@@ -85,12 +85,12 @@ Java_edu_wpi_first_hal_AddressableLEDJNI_setData
|
||||
*/
|
||||
JNIEXPORT void JNICALL
|
||||
Java_edu_wpi_first_hal_AddressableLEDJNI_setBitTiming
|
||||
(JNIEnv* env, jclass, jint handle, jint lowTime0, jint highTime0,
|
||||
jint lowTime1, jint highTime1)
|
||||
(JNIEnv* env, jclass, jint handle, jint highTime0, jint lowTime0,
|
||||
jint highTime1, jint lowTime1)
|
||||
{
|
||||
int32_t status = 0;
|
||||
HAL_SetAddressableLEDBitTiming(static_cast<HAL_AddressableLEDHandle>(handle),
|
||||
lowTime0, highTime0, lowTime1, highTime1,
|
||||
highTime0, lowTime0, highTime1, lowTime1,
|
||||
&status);
|
||||
CheckStatus(env, status);
|
||||
}
|
||||
|
||||
@@ -36,10 +36,10 @@ void HAL_WriteAddressableLEDData(HAL_AddressableLEDHandle handle,
|
||||
int32_t length, int32_t* status);
|
||||
|
||||
void HAL_SetAddressableLEDBitTiming(HAL_AddressableLEDHandle handle,
|
||||
int32_t lowTime0NanoSeconds,
|
||||
int32_t highTime0NanoSeconds,
|
||||
int32_t lowTime1NanoSeconds,
|
||||
int32_t lowTime0NanoSeconds,
|
||||
int32_t highTime1NanoSeconds,
|
||||
int32_t lowTime1NanoSeconds,
|
||||
int32_t* status);
|
||||
|
||||
void HAL_SetAddressableLEDSyncTime(HAL_AddressableLEDHandle handle,
|
||||
|
||||
@@ -146,10 +146,10 @@ void HAL_WriteAddressableLEDData(HAL_AddressableLEDHandle handle,
|
||||
}
|
||||
|
||||
void HAL_SetAddressableLEDBitTiming(HAL_AddressableLEDHandle handle,
|
||||
int32_t lowTime0NanoSeconds,
|
||||
int32_t highTime0NanoSeconds,
|
||||
int32_t lowTime1NanoSeconds,
|
||||
int32_t lowTime0NanoSeconds,
|
||||
int32_t highTime1NanoSeconds,
|
||||
int32_t lowTime1NanoSeconds,
|
||||
int32_t* status) {}
|
||||
|
||||
void HAL_SetAddressableLEDSyncTime(HAL_AddressableLEDHandle handle,
|
||||
|
||||
Reference in New Issue
Block a user