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);
}
}