void vTaskUsbVCPSender( void * pvParameters ) { //messaggio strutturato da inviare al device android cateMessage* msgToSend = (cateMessage*)malloc (sizeof(cateMessage)); for (;;) { while (xQueueReceive( vcpQueueOut, msgToSend, 100) != pdPASS); //messaggio come stringa di byte da inviare tramite VCP uint8_t* bytesToSend; size_t dimToSend = (size_t)((msgToSend->length)+3); bytesToSend = (uint8_t*)malloc(dimToSend); //concatenazione dell'header alla sequenza di Byte da inviare memcpy ( &bytesToSend[0], &(msgToSend->header), 1 ); //concatenazione della length alla sequenza di Byte da inviare memcpy ( &bytesToSend[1], &(msgToSend->length), 2 ); //concatenazione del payload alla sequenza di Byte da inviare memcpy ( &bytesToSend[3], msgToSend->payload, msgToSend->length ); destroyCateMessage(msgToSend); vTaskDelay(100); VCP_send_buffer(bytesToSend,(int)dimToSend); free(bytesToSend); } }
int _write(int file, char *ptr, int len) { dbg_send_bytes((uint8_t*)ptr,len); #if PRINTF_VCP VCP_send_buffer((uint8_t*)ptr, len); return len; #else debug_buffer_append(ptr, len); return len; #endif }
int _write(int file, char *ptr, int len) { VCP_send_buffer((uint8_t*)ptr, len); return len; }