|
|
@@ -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);
|
|
|
|