Я работаю с FastLED на фоточастицах частиц в C++ и пытаюсь назначить новое значение одному из элементов массива пикселей.Значения переменных массива C++
По сути, у меня есть массив, объявленный как таковой:
NSFastLED::CRGB leds[1];
Я прохожу это в классе «анимации», которую я написал для того, чтобы изменить светодиодные значения:
void SomeClass::loop()
{
// Get the pointer to the current animation from a vector
Animation *currentAnim = animations.at(currentAnimation);
currentAnim->animate(leds);
...
}
В анимация, я пытаюсь сделать что-то действительно простое - установите элемент этого светодиодного массива на некоторое значение. Для тестирования даже установка его на статическое целое число «0» будет прекрасным.
void MyAnimation::animate(NSFastLED::CRGB *leds)
{
for(int i = 0; i < numLeds; i++)
{
Serial.print(leds[i]); // "1"
leds[i] = 0;
Serial.print(leds[i]); // "1"
}
}
Проблема в том, что элемент массива вообще не установлен. Как вы можете видеть, это даже внутри класса анимации, что у меня проблема. Я также пробовал использовать (leds*)[i] = 0
, но это тоже не имеет никакого эффекта.
Почему это значение не задано в массиве?
Что такое реализация NSFastLED :: CRGB :: operator = (int) '?? Или есть ли ctor 'NSFastLED :: CRGB (int)'? – GreatAndPowerfulOz
https://github.com/FastLED/FastLED/blob/ccf12263ce06218302c7bdcb7879a6e90122266e/pixeltypes.h#L170 –