Re: esp8266_tpm2net_ws2812
Posted: Sun Feb 15, 2015 5:13 pm
I think that would be enough to start write matrix size in to firmware and it would have been a success
-->
Open Community Forum for ESP8266, Come share Arduino and IoT (Internet of Things)
https://www.esp8266.com/
uint16_t framebuffer_len = 0;
unsigned char framebuffer[1536]; //max 512 rgb pixels
static void ICACHE_FLASH_ATTR tpm2net_recv(void *arg, char *pusrdata, unsigned short length) {
unsigned char *data =(unsigned char *)pusrdata; //pointer to espconn's returned data
if (data && length >= 6 && data[0]==0x9C) { // header identifier (packet start)
uint8_t blocktype = data[1]; // block type
uint16_t framelength = ((uint16_t)data[2] << 8) | (uint16_t)data[3]; // frame length
uint8_t packagenum = data[4]; // packet number 0-255 0x00 = no frame split
uint8_t numpackages = data[5]; // total packets 1-255
if (blocktype == 0xDA) { // data command ...
if (length >= framelength + 7 && data[6+framelength]==0x36) { // header end (packet stop)
if (numpackages == 0x01) { // no frame split found
unsigned char *frame = &data[6]; // pointer 'frame' to espconn's data (start of data)
ws2812_out(frame, framelength); // send data to strip
} else { //frame split is found
os_memcpy (&framebuffer[framebuffer_len], &data[6], framelength);
framebuffer_len += framelength;
if (packagenum == numpackages) { // all packets found
unsigned char *frame = &framebuffer[0]; // pointer 'frame' framebuffer
ws2812_out(frame, framebuffer_len); // send data to strip
framebuffer_len = 0;
}
}
}
}
}
}
folny82 wrote:I have a problem with compiling the code where you be the problem ?