bool_t ht_nxt_accel_sensor_measure()

in ev3-api/src/ev3api_sensor.c [442:462]


bool_t ht_nxt_accel_sensor_measure(sensor_port_t port, int16_t axes[3]) {
	ER ercd;

	CHECK_PORT(port);
	CHECK_COND(ev3_sensor_get_type(port) == HT_NXT_ACCEL_SENSOR, E_OBJ);
	CHECK_COND(*pI2CSensorData[port].status == I2C_TRANS_IDLE, E_OBJ);

	for (int i = 0; i < 3; i++) {
		axes[i] = pI2CSensorData[port].raw[i];
		axes[i] = ((axes[i] < 128 ? axes[i] : axes[i] - 256) << 2) | (pI2CSensorData[port].raw[i + 3] & 0x3);
	}

	ercd = start_i2c_transaction(port, 0x1, "\x42", 1, 6);
	assert(ercd == E_OK);

	return true;

error_exit:
	syslog(LOG_WARNING, "%s(): ercd %d", __FUNCTION__, ercd);
	return false;
}