ir_seek_t ev3_infrared_sensor_seek()

in ev3-api/src/ev3api_sensor.c [342:365]


ir_seek_t ev3_infrared_sensor_seek(sensor_port_t port) {
	ir_seek_t result;
	ER ercd;

//	lazy_initialize();
	CHECK_PORT(port);
	CHECK_COND(ev3_sensor_get_type(port) == INFRARED_SENSOR, E_OBJ);

	int8_t val[8];
	uart_sensor_fetch_data(port, IR_SEEK, &val, 8 * sizeof(int8_t));
	for (int i = 0; i < 4; i++) {
		result.heading [i] = val[2 * i];
		result.distance[i] = val[2 * i + 1];
	}
	return result;

error_exit:
	syslog(LOG_WARNING, "%s(): ercd %d", __FUNCTION__, ercd);
	for (int i = 0; i < 4; i++) {
		result.heading [i] = 0;
		result.distance[i] = -128;
	}
	return result;
}