void uart_sensor_fetch_data()

in ev3-api/src/ev3api_sensor.c [49:65]


void uart_sensor_fetch_data(sensor_port_t port, uint8_t mode, void *dest, SIZE size) {
	ER ercd;

	// Switch mode
//	uart_sensor_switch_mode(port, mode);
	ercd = uart_sensor_config(port, mode);
	assert(ercd == E_OK);
//	while(!uart_sensor_data_ready(port));
	while(!((*pUartSensorData[port].status) & UART_DATA_READY)); // TODO: time out

	// Copy data
	if (size > 0) {
		void *raw = (void*)(pUartSensorData[port].raw[*pUartSensorData[port].actual]); // TODO: check this, discard volatile
		memcpy(dest, raw, size);
//		memcpy(dest, (void*)uart_sensor_get_raw(port), size);
	}
}