7#include "hardware/gpio.h"
9#include "pico/stdlib.h"
11#include "hardware/regs/intctrl.h"
25#define MAX_SATELLITE_REPLIES 7
27#include "hardware/uart.h"
29#define UART_PORT (uart1)
30#define UART_BAUD (9600)
36#define BUFFSIZE (70 * MAX_SATELLITE_REPLIES + 60)
38#define UART_WAITFORREPLY_MS (40)
57 gpio_set_function(
UART_TX, GPIO_FUNC_UART);
58 gpio_set_function(
UART_RX, GPIO_FUNC_UART);
63 uart_set_irq_enables(
UART_PORT,
false,
false);
88export void write(const ::std::string& s) {
89 uart_write_blocking(
UART_PORT,
reinterpret_cast<const uint8_t*
>(s.c_str()), s.length() +1);
93export void read(::std::string& s) {
98 uart_set_irq_enables(
UART_PORT,
true,
false);
101 if (absolute_time_diff_us(
fail_at, get_absolute_time()) >= 0) {
106 uart_set_irq_enables(
UART_PORT,
false,
false);
107 s = std::string(
reinterpret_cast<const char*
>(
buf));
void read(::std::string &s)
#define MAX_SATELLITE_REPLIES
void write(const ::std::string &s)
const size_t NMEA_MAX_REPLIES
volatile absolute_time_t fail_at
#define UART_WAITFORREPLY_MS