/** * @brief Initializes the MPL. Should be called first and once * @return Returns INV_SUCCESS if successful or an error code if not. */ inv_error_t inv_init_mpl(void) { inv_init_storage_manager(); /* initialize the start callback manager */ INV_ERROR_CHECK(inv_init_start_manager()); /* initialize the data builder */ INV_ERROR_CHECK(inv_init_data_builder()); INV_ERROR_CHECK(inv_enable_results_holder()); return INV_SUCCESS; }
/******************************************************************************* * M a i n ******************************************************************************/ int main(int argc, char **argv) { FILE *fptr; int self_test_status = 0; inv_error_t result; bias_dtype gyro_bias[3]; bias_dtype gyro_scale; bias_dtype accel_bias[3]; bias_dtype accel_scale; int scale_ratio; size_t packet_sz; int axis_sign = 1; unsigned char *buffer; long timestamp; long long temperature = 0; bool compass_present = true; int c; result= inv_init_sysfs_attributes(); if (result) return -1; // Self-test for Non-Hub inv_init_storage_manager(); // Register packet to be saved. result = inv_register_load_store( inv_db_load_func, inv_db_save_func, sizeof(save_data), INV_DB_SAVE_KEY); // Self-test for Android Hub if (android_hub() == true) { printf(" android_hub() == true \n"); fptr = fopen(mpu.self_test, "r"); if (fptr) { fscanf(fptr, "%d", &self_test_status); printf("\nSelf-Test:Hub:Self test result - " "Gyro passed= %x, Accel passed= %x, Compass passed= %x\n", (self_test_status & GYRO_PASS_STATUS_BIT), (self_test_status & ACCEL_PASS_STATUS_BIT) >> 1, (self_test_status & COMPASS_PASS_STATUS_BIT) >> 2); fclose(fptr); result = 0; } else {