%% Read Data from GPS Receiver as Matrix
% Read data from the GPS receiver connected to the host computer using serialport object.
%% Required Hardware
% To run this example, you need:
% UBlox Neo-6M GPS module
% GPS antenna
% USB to UART module
% USB cable
% Connecting wires
%% Hardware Connection
%
% Connect the pins on the UBlox Neo-6M GPS module to the pins on your USB to UART module. The connections are:
% VCC - +5V
% RX - TXO
% TX - RXI
% GND - GND
% Connect the GPS antenna to the GPS module. Connect the USB to UART module to the host computer with a USB cable. GPS Fix can be easily acquired in locations that have a clear view of the sky. Wait for the GPS module to acquire satelite signals (Fix).This can be verified by checking the Fix LED (D1) of your GPS module.
%
%% Create GPS Object
% Connect to the GPS receiver using serialport object. Specify the port name and the baud rate. Specify the output format of the data as matrix.

s = serialport('COM4',9600);
gps = gpsdev(s,'OutputFormat',"matrix")

%% Read the GPS data
% Read the GPS data and return them as matrices.

[lla,speed,course,dops,gpsReceiverTime,timestamp,overruns] = read(gps)

% Display number of samples read and the samples available in the host buffer.

gps.SamplesRead
gps.SamplesAvailable

% Flush all GPS data accumulated in the buffers and reset the SamplesRead and SamplesAvailable properties.

flush(gps)

% Display number of samples read and the samples available in the host buffer.

gps.SamplesRead
gps.SamplesAvailable

%% Clean Up
% When the connection is no longer needed, clear the associated object.

delete(gps);
clear gps;
clear s;

% Copyright 2020 The MathWorks, Inc.