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
}
示例#3
0
int _write(int file, char *ptr, int len) {
	VCP_send_buffer((uint8_t*)ptr, len);
	return len;
}