Просмотр исходного кода

Apply all suggestions from code review.

Aaron Mavrinac 1 год назад
Родитель
Сommit
6bc5c3d9c3
3 измененных файлов с 21 добавлено и 16 удалено
  1. 13 8
      gps.c
  2. 7 7
      gps_uart.c
  3. 1 1
      gps_uart.h

+ 13 - 8
gps.c

@@ -42,14 +42,14 @@ static void render_callback(Canvas* const canvas, void* context) {
 
         switch(gps_uart->speed_units) {
         case KPH:
-            snprintf(buffer, 64, "%.2f Km/h", (double)(gps_uart->status.speed * KNOTS_TO_KPH));
+            snprintf(buffer, 64, "%.2f kph", (double)(gps_uart->status.speed * KNOTS_TO_KPH));
             break;
         case MPH:
-            snprintf(buffer, 64, "%.2f Mi/h", (double)(gps_uart->status.speed * KNOTS_TO_MPH));
+            snprintf(buffer, 64, "%.2f mph", (double)(gps_uart->status.speed * KNOTS_TO_MPH));
             break;
         case KNOTS:
         default:
-            snprintf(buffer, 64, "%.2f Kn", (double)gps_uart->status.speed);
+            snprintf(buffer, 64, "%.2f kn", (double)gps_uart->status.speed);
             break;
         }
 
@@ -95,13 +95,18 @@ int32_t gps_app(void* p) {
 
     FuriMessageQueue* event_queue = furi_message_queue_alloc(8, sizeof(PluginEvent));
 
-    uint8_t attempts = 0;
     bool otg_was_enabled = furi_hal_power_is_otg_enabled();
-    while(!furi_hal_power_is_otg_enabled() && attempts++ < 5) {
-        furi_hal_power_enable_otg();
-        furi_delay_ms(10);
+    uint8_t attempts = 5;
+    while(--attempts > 0) {
+        if(furi_hal_power_enable_otg()) break;
     }
-    furi_delay_ms(200);
+    if(attempts == 0) {
+        if(furi_hal_power_get_usb_voltage() < 4.5f) {
+            FURI_LOG_E(
+                TAG,
+                "Error power otg enable. BQ2589 check otg fault = %d",
+                furi_hal_power_check_otg_fault() ? 1 : 0);
+        }
 
     GpsUart* gps_uart = gps_uart_enable();
 

+ 7 - 7
gps_uart.c

@@ -1,6 +1,6 @@
 #include <string.h>
 
-#include "minmea.h"
+#include <minmea.h>
 #include "gps_uart.h"
 
 typedef enum {
@@ -11,21 +11,21 @@ typedef enum {
 #define WORKER_ALL_RX_EVENTS (WorkerEvtStop | WorkerEvtRxDone)
 
 static void gps_uart_on_irq_cb(FuriHalSerialHandle* handle, FuriHalSerialRxEvent ev, void* context) {
-	GpsUart* gps_uart = (GpsUart*)context;
+    GpsUart* gps_uart = (GpsUart*)context;
 	
-	if(ev == FuriHalSerialRxEventData) {
+    if(ev == FuriHalSerialRxEventData) {
         uint8_t data = furi_hal_serial_async_rx(handle);
         furi_stream_buffer_send(gps_uart->rx_stream, &data, 1, 0);
         furi_thread_flags_set(furi_thread_get_id(gps_uart->thread), WorkerEvtRxDone);
     }
 }
 
-void gps_uart_serial_init(GpsUart* gps_uart) {
+static void gps_uart_serial_init(GpsUart* gps_uart) {
     furi_assert(!gps_uart->serial_handle);
 	
     gps_uart->serial_handle = furi_hal_serial_control_acquire(UART_CH);
-	furi_assert(gps_uart->serial_handle);
-	furi_hal_serial_init(gps_uart->serial_handle, gps_uart->baudrate);
+    furi_assert(gps_uart->serial_handle);
+    furi_hal_serial_init(gps_uart->serial_handle, gps_uart->baudrate);
     furi_hal_serial_async_rx_start(gps_uart->serial_handle, gps_uart_on_irq_cb, gps_uart, false);
 }
 
@@ -205,7 +205,7 @@ GpsUart* gps_uart_enable() {
     gps_uart->baudrate = gps_baudrates[current_gps_baudrate];
     gps_uart->changing_baudrate = false;
     gps_uart->backlight_on = false;
-    gps_uart->speed_units = KPH;
+    gps_uart->speed_units = KNOTS;
 
     gps_uart_init_thread(gps_uart);
 

+ 1 - 1
gps_uart.h

@@ -38,7 +38,7 @@ typedef struct {
     bool backlight_on;
     SpeedUnit speed_units;
 	
-	FuriHalSerialHandle* serial_handle;
+    FuriHalSerialHandle* serial_handle;
 
     GpsStatus status;
 } GpsUart;