Kaynağa Gözat

A little more cleanup and styling fixes

Ivan Podogov 1 yıl önce
ebeveyn
işleme
d03534440b

+ 0 - 1
tracking/imu/bmi160.c

@@ -1,4 +1,3 @@
-#include <furi_hal.h>
 #include "imu.h"
 #include "imu.h"
 #include "../../lib/bmi160-api/bmi160.h"
 #include "../../lib/bmi160-api/bmi160.h"
 
 

+ 22 - 18
tracking/imu/imu.c

@@ -14,45 +14,49 @@ struct imu_t* imu_types[] = {
 
 
 static const int imu_count = sizeof(imu_types) / sizeof(struct imu_t*);
 static const int imu_count = sizeof(imu_types) / sizeof(struct imu_t*);
 
 
-struct imu_t* imu_found;
+static struct imu_t* imu_found;
 
 
-bool imu_begin() {
-    furi_hal_i2c_acquire(&furi_hal_i2c_handle_external);
-    if (imu_found == NULL) {
-        imu_found = find_imu();
+struct imu_t* find_imu() {
+    unsigned int i;
+    for(i = 0; i < imu_count; i++) {
+        if(furi_hal_i2c_is_device_ready(&furi_hal_i2c_handle_external, imu_types[i]->address, 50)) {
+            FURI_LOG_E(IMU_TAG, "found i2c device address 0x%X", imu_types[i]->address);
+            return imu_types[i];
+        }
     }
     }
+    return NULL;
+}
+
+bool imu_begin() {
+    if (imu_found != NULL)
+        return true;
 
 
     bool ret = false;
     bool ret = false;
+    furi_hal_i2c_acquire(&furi_hal_i2c_handle_external);
+    imu_found = find_imu();
+
     if (imu_found != NULL) {
     if (imu_found != NULL) {
         FURI_LOG_E(IMU_TAG, "Found Device %s", imu_found->name);
         FURI_LOG_E(IMU_TAG, "Found Device %s", imu_found->name);
         ret = imu_found->begin();
         ret = imu_found->begin();
     }
     }
+
     furi_hal_i2c_release(&furi_hal_i2c_handle_external);
     furi_hal_i2c_release(&furi_hal_i2c_handle_external);
     return ret;
     return ret;
 }
 }
 
 
 void imu_end() {
 void imu_end() {
-    if (imu_found == NULL) return;
+    if (imu_found == NULL)
+        return;
     furi_hal_i2c_acquire(&furi_hal_i2c_handle_external);
     furi_hal_i2c_acquire(&furi_hal_i2c_handle_external);
     imu_found->end();
     imu_found->end();
     furi_hal_i2c_release(&furi_hal_i2c_handle_external);
     furi_hal_i2c_release(&furi_hal_i2c_handle_external);
 }
 }
 
 
 int imu_read(double* vec) {
 int imu_read(double* vec) {
-    if (imu_found == NULL) return 0;
+    if (imu_found == NULL)
+        return 0;
     furi_hal_i2c_acquire(&furi_hal_i2c_handle_external);
     furi_hal_i2c_acquire(&furi_hal_i2c_handle_external);
     int ret = imu_found->read(vec);
     int ret = imu_found->read(vec);
     furi_hal_i2c_release(&furi_hal_i2c_handle_external);
     furi_hal_i2c_release(&furi_hal_i2c_handle_external);
     return ret;
     return ret;
 }
 }
-
-struct imu_t* find_imu() {
-    unsigned int i;
-    for(i = 0; i < imu_count; i++) {
-        if(furi_hal_i2c_is_device_ready(&furi_hal_i2c_handle_external, imu_types[i]->address, 50)) {
-            FURI_LOG_E(IMU_TAG, "found i2c device address 0x%X", imu_types[i]->address);
-            return imu_types[i];
-        }
-    }
-    return NULL;
-}

+ 0 - 3
tracking/imu/imu.h

@@ -26,9 +26,6 @@ static const double GRAVITY = 9.81;
 bool imu_begin();
 bool imu_begin();
 void imu_end();
 void imu_end();
 int imu_read(double* vec);
 int imu_read(double* vec);
-struct imu_t* get_imu(uint8_t address);
-unsigned int imu_scan_i2c();
-struct imu_t* find_imu();
 
 
 #ifdef __cplusplus
 #ifdef __cplusplus
 }
 }

+ 2 - 2
tracking/imu/lsm6ds3trc.c

@@ -1,4 +1,3 @@
-#include <furi_hal.h>
 #include "imu.h"
 #include "imu.h"
 #include "../../lib/lsm6ds3tr-api/lsm6ds3tr-c_reg.h"
 #include "../../lib/lsm6ds3tr-api/lsm6ds3tr-c_reg.h"
 
 
@@ -14,7 +13,8 @@ int32_t lsm6ds3trc_write_i2c(void* handle, uint8_t reg_addr, const uint8_t* data
 }
 }
 
 
 int32_t lsm6ds3trc_read_i2c(void* handle, uint8_t reg_addr, uint8_t* read_data, uint16_t len) {
 int32_t lsm6ds3trc_read_i2c(void* handle, uint8_t reg_addr, uint8_t* read_data, uint16_t len) {
-    if(furi_hal_i2c_read_mem(handle, LSM6DS3_DEV_ADDRESS, reg_addr, read_data, len, 50)) return 0;
+    if(furi_hal_i2c_read_mem(handle, LSM6DS3_DEV_ADDRESS, reg_addr, read_data, len, 50))
+        return 0;
     return -1;
     return -1;
 }
 }
 
 

+ 0 - 2
tracking/imu/lsm6dso.c

@@ -1,4 +1,3 @@
-#include <furi_hal.h>
 #include "imu.h"
 #include "imu.h"
 #include "../../lib/lsm6dso-api/lsm6dso_reg.h"
 #include "../../lib/lsm6dso-api/lsm6dso_reg.h"
 
 
@@ -49,7 +48,6 @@ bool lsm6dso_begin() {
     lsm6dso_xl_data_rate_set(&lsm6dso_ctx, LSM6DSO_XL_ODR_104Hz);
     lsm6dso_xl_data_rate_set(&lsm6dso_ctx, LSM6DSO_XL_ODR_104Hz);
     lsm6dso_xl_full_scale_set(&lsm6dso_ctx, LSM6DSO_4g);
     lsm6dso_xl_full_scale_set(&lsm6dso_ctx, LSM6DSO_4g);
     //lsm6dso_xl_lp1_bandwidth_set(&lsm6dso_ctx, LSM6DSO_XL_LP1_ODR_DIV_4);
     //lsm6dso_xl_lp1_bandwidth_set(&lsm6dso_ctx, LSM6DSO_XL_LP1_ODR_DIV_4);
-    //lsm6dso_aux_gy_lp1_bandwidth_set() ???
 
 
     lsm6dso_gy_data_rate_set(&lsm6dso_ctx, LSM6DSO_GY_ODR_104Hz);
     lsm6dso_gy_data_rate_set(&lsm6dso_ctx, LSM6DSO_GY_ODR_104Hz);
     lsm6dso_gy_full_scale_set(&lsm6dso_ctx, LSM6DSO_2000dps);
     lsm6dso_gy_full_scale_set(&lsm6dso_ctx, LSM6DSO_2000dps);