int LinxChipkit::WS2812Refresh() { #ifdef _BOARD_WF32_ | _BOARD_MEGA_ while(!m_ws2812.updateLEDs(m_WS2812Buffer)); return L_OK; #else return L_FUNCTION_NOT_SUPPORTED; #endif }
int LinxChipkit::WS2812WriteOnePixel(unsigned short pixelIndex, unsigned char red, unsigned char green, unsigned char blue, unsigned char refresh) { #ifdef _BOARD_WF32_ | _BOARD_MEGA_ m_WS2812Buffer[pixelIndex].red = red; m_WS2812Buffer[pixelIndex].green = green; m_WS2812Buffer[pixelIndex].blue = blue; if(refresh != 0) { while(!m_ws2812.updateLEDs(m_WS2812Buffer)); } return L_OK; #else return L_FUNCTION_NOT_SUPPORTED; #endif }
int LinxChipkit::WS2812WriteNPixels(unsigned short startPixel, unsigned short numPixels, unsigned char* data, unsigned char refresh) { #ifdef _BOARD_WF32_ | _BOARD_MEGA_ if(startPixel+numPixels <= m_numPixels) { memcpy(&m_WS2812Buffer[startPixel], data, sizeof(WS2812::GRB)*numPixels); } else { memcpy(&m_WS2812Buffer[startPixel], data, sizeof(WS2812::GRB)*m_numPixels-startPixel); } if(refresh != 0) { while(!m_ws2812.updateLEDs(m_WS2812Buffer)); } return L_OK; #else return L_FUNCTION_NOT_SUPPORTED; #endif }