sonyhome / FAB_LED

Fast Arduino Bitbang LED library supports programmable LEDs (WS2812B, APA102...), color palettes for Arduino AVR
GNU General Public License v2.0
125 stars 17 forks source link

SEND_REMAPPED_PIXELS macro compilation error #20

Closed danki closed 7 years ago

danki commented 7 years ago

Ive tried various adaptions right in sources, replacing "\" with spaces (suspect those are used for compiler to see 2 line code on 1 line) but after each modification i get new errors.

For starters, im using Uno and Pro mini but wont get compiler to work for neither of them, heres a output...

Any ideas why ??

` In file included from /Users/deko/Documents/Arduino/libraries/FAB_LED-master/Examples/0_simpleExamples/sk6812b/sk6812b.ino:31:0: /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h: In static member function 'static void avrBitbangLedStrip<high1, low1, high0, low0, minMsRefresh, dataPortId, dataPortPin, clockPortId, clockPortPin, colors, protocol>::sendPixels(uint16_t, const rgbw*)': /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:126: error: 'else' without a previous 'if'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                          ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1284:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h: In static member function 'static void avrBitbangLedStrip<high1, low1, high0, low0, minMsRefresh, dataPortId, dataPortPin, clockPortId, clockPortPin, colors, protocol>::sendPixels(uint16_t, const grbw*)': /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:126: error: 'else' without a previous 'if'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                          ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1303:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h: In static member function 'static void avrBitbangLedStrip<high1, low1, high0, low0, minMsRefresh, dataPortId, dataPortPin, clockPortId, clockPortPin, colors, protocol>::sendPixels(uint16_t, const hbgr*)': /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:126: error: 'else' without a previous 'if'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                          ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1322:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h: In static member function 'static void avrBitbangLedStrip<high1, low1, high0, low0, minMsRefresh, dataPortId, dataPortPin, clockPortId, clockPortPin, colors, protocol>::sendPixels(uint16_t, const rgb*)': /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:126: error: 'else' without a previous 'if'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                          ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1338:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1263:47: error: 'const rgb' has no member named 'w'

define sendWhiteMacro sendBytes(1, &array[i].w)

                                           ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1243:6: note: in definition of macro '_SEND_REMAPPED_PIXELS' sendWhite; \ ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1264:91: note: in expansion of macro 'sendWhiteMacro'

define SEND_REMAPPED_PIXELS_4B(numPixels, array) _SEND_REMAPPED_PIXELS(numPixels, array, sendWhiteMacro)

                                                                                       ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:131: note: in expansion of macro 'SEND_REMAPPED_PIXELS_4B'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                               ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1338:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1263:47: error: 'const rgb' has no member named 'w'

define sendWhiteMacro sendBytes(1, &array[i].w)

                                           ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1249:6: note: in definition of macro '_SEND_REMAPPED_PIXELS' sendWhite; \ ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1264:91: note: in expansion of macro 'sendWhiteMacro'

define SEND_REMAPPED_PIXELS_4B(numPixels, array) _SEND_REMAPPED_PIXELS(numPixels, array, sendWhiteMacro)

                                                                                       ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:131: note: in expansion of macro 'SEND_REMAPPED_PIXELS_4B'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                               ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1338:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1263:47: error: 'const rgb' has no member named 'w'

define sendWhiteMacro sendBytes(1, &array[i].w)

                                           ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1252:6: note: in definition of macro '_SEND_REMAPPED_PIXELS' sendWhite; \ ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1264:91: note: in expansion of macro 'sendWhiteMacro'

define SEND_REMAPPED_PIXELS_4B(numPixels, array) _SEND_REMAPPED_PIXELS(numPixels, array, sendWhiteMacro)

                                                                                       ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:131: note: in expansion of macro 'SEND_REMAPPED_PIXELS_4B'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                               ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1338:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h: In static member function 'static void avrBitbangLedStrip<high1, low1, high0, low0, minMsRefresh, dataPortId, dataPortPin, clockPortId, clockPortPin, colors, protocol>::sendPixels(uint16_t, const grb*)': /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:126: error: 'else' without a previous 'if'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                          ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1351:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1263:47: error: 'const grb' has no member named 'w'

define sendWhiteMacro sendBytes(1, &array[i].w)

                                           ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1243:6: note: in definition of macro '_SEND_REMAPPED_PIXELS' sendWhite; \ ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1264:91: note: in expansion of macro 'sendWhiteMacro'

define SEND_REMAPPED_PIXELS_4B(numPixels, array) _SEND_REMAPPED_PIXELS(numPixels, array, sendWhiteMacro)

                                                                                       ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:131: note: in expansion of macro 'SEND_REMAPPED_PIXELS_4B'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                               ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1351:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1263:47: error: 'const grb' has no member named 'w'

define sendWhiteMacro sendBytes(1, &array[i].w)

                                           ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1249:6: note: in definition of macro '_SEND_REMAPPED_PIXELS' sendWhite; \ ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1264:91: note: in expansion of macro 'sendWhiteMacro'

define SEND_REMAPPED_PIXELS_4B(numPixels, array) _SEND_REMAPPED_PIXELS(numPixels, array, sendWhiteMacro)

                                                                                       ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:131: note: in expansion of macro 'SEND_REMAPPED_PIXELS_4B'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                               ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1351:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1263:47: error: 'const grb' has no member named 'w'

define sendWhiteMacro sendBytes(1, &array[i].w)

                                           ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1252:6: note: in definition of macro '_SEND_REMAPPED_PIXELS' sendWhite; \ ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1264:91: note: in expansion of macro 'sendWhiteMacro'

define SEND_REMAPPED_PIXELS_4B(numPixels, array) _SEND_REMAPPED_PIXELS(numPixels, array, sendWhiteMacro)

                                                                                       ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:131: note: in expansion of macro 'SEND_REMAPPED_PIXELS_4B'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                               ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1351:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h: In static member function 'static void avrBitbangLedStrip<high1, low1, high0, low0, minMsRefresh, dataPortId, dataPortPin, clockPortId, clockPortPin, colors, protocol>::sendPixels(uint16_t, const bgr*)': /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:126: error: 'else' without a previous 'if'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                          ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1364:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1263:47: error: 'const bgr' has no member named 'w'

define sendWhiteMacro sendBytes(1, &array[i].w)

                                           ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1243:6: note: in definition of macro '_SEND_REMAPPED_PIXELS' sendWhite; \ ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1264:91: note: in expansion of macro 'sendWhiteMacro'

define SEND_REMAPPED_PIXELS_4B(numPixels, array) _SEND_REMAPPED_PIXELS(numPixels, array, sendWhiteMacro)

                                                                                       ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:131: note: in expansion of macro 'SEND_REMAPPED_PIXELS_4B'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                               ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1364:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1263:47: error: 'const bgr' has no member named 'w'

define sendWhiteMacro sendBytes(1, &array[i].w)

                                           ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1249:6: note: in definition of macro '_SEND_REMAPPED_PIXELS' sendWhite; \ ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1264:91: note: in expansion of macro 'sendWhiteMacro'

define SEND_REMAPPED_PIXELS_4B(numPixels, array) _SEND_REMAPPED_PIXELS(numPixels, array, sendWhiteMacro)

                                                                                       ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:131: note: in expansion of macro 'SEND_REMAPPED_PIXELS_4B'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                               ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1364:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1263:47: error: 'const bgr' has no member named 'w'

define sendWhiteMacro sendBytes(1, &array[i].w)

                                           ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1252:6: note: in definition of macro '_SEND_REMAPPED_PIXELS' sendWhite; \ ^ /Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1264:91: note: in expansion of macro 'sendWhiteMacro'

define SEND_REMAPPED_PIXELS_4B(numPixels, array) _SEND_REMAPPED_PIXELS(numPixels, array, sendWhiteMacro)

                                                                                       ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1266:131: note: in expansion of macro 'SEND_REMAPPED_PIXELS_4B'

define SEND_REMAPPED_PIXELS(color, numPixels, array) if IS_PIXEL_FORMAT_3B(color) SEND_REMAPPED_PIXELS_3B(numPixels, array) else SEND_REMAPPED_PIXELS_4B(numPixels, array)

                                                                                                                               ^

/Users/deko/Documents/Arduino/libraries/FAB_LED-master/FAB_LED.h:1364:3: note: in expansion of macro 'SEND_REMAPPED_PIXELS' SEND_REMAPPED_PIXELS(colors, numPixels, array); ^ exit status 1 Error compiling for board Arduino/Genuino Uno. `

sonyhome commented 7 years ago

Hello,

Thanks for notifying me of this problem.

Can you post your source code too, or if it is one of my examples, which one this occurs with? I will look into this!

That's odd: The macro line 1220 seems to be missing { } which would be the reason why. I'm surprised I didn't catch this. :/

sonyhome commented 7 years ago

Looks like my last commit was hasty. Please use the previous code change for your testing while I find time to fix it, it should work.

I believe this would be the link: https://github.com/sonyhome/FAB_LED/tree/9a4d5dfd7c742af2f0f30ce9531530aa4271823c

sonyhome commented 7 years ago

Fixed with July 18 commit.

Notes:

My committing old code that I thought I just forgot to push was hasty. If there's more issues I will have to comb through that old code commit, and maybe fully reverse it if it's not reliably safe. The main thing it did was simplify 3B and 4B pixel conversions.

If there are more problems, please reopen/comment on this bug.