Demo
Dependents: A_TeseoLocationNEW A_TeseoLocation
Middlewares/NMEAUtils.c
- Committer:
- HarryKeane
- Date:
- 2020-01-31
- Revision:
- 5:d91199cfc6a4
- Parent:
- 0:a77f1f1f8318
File content as of revision 5:d91199cfc6a4:
/** ******************************************************************************* * @file NMEA_utils.c * @author AST / Central Lab * @version V1.0.0 * @date 18-May-2017 * @brief NMEA utilities * ******************************************************************************* * @attention * * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2> * * Licensed under MCD-ST Liberty SW License Agreement V2, (the "License"); * You may not use this file except in compliance with the License. * You may obtain a copy of the License at: * * http://www.st.com/software_license_agreement_liberty_v2 * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * 1. Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * 3. Neither the name of STMicroelectronics nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * ******************************************************************************** */ #include "string.h" #include "NMEAUtils.h" /** @defgroup Middlewares * @brief Contains all platform independent modules (eg. NMEA Sentence Parser, ...). * @{ */ /** @defgroup ST * @{ */ /** @defgroup LIB_NMEA * @{ */ /** @defgroup NMEA_UTILS * @{ */ /** @addtogroup NMEA_UTILS_PUBLIC_FUNCTIONS * @{ */ /** * @brief Scans a string with UTC info and fills all fields of a * UTC_Info struct * @param utc_str NMEA UTC string * @param utc The UTC_Info struct to fill * @retval None */ void scan_utc (char* utc_str, UTC_Info* utc) { sscanf(utc_str, "%d", &utc->utc); utc->hh = (utc->utc / 10000); utc->mm = (utc->utc - (utc->hh * 10000)) / 100; utc->ss = utc->utc - ((utc->hh * 10000) + (utc->mm * 100)); return; } /** * @brief Scans a bidimensional array with longitude and latitude infos and * fills the relative fields of a Coords struct * @param xy_str NMEA string with latitude and longitude infos * @param str_offset NMEA string with latitude and longitude infos * @param utc The Coords struct to fill * @retval None */ void scan_xy (char* xy_str, uint8_t str_offset, Coords* xy) { //printf("NMEA (xy_str): %s\n\r", xy_str); sscanf(xy_str, "%lf", &xy->lat); sscanf(xy_str+str_offset, "%c", &xy->ns); sscanf(xy_str+(2*str_offset), "%lf", &xy->lon); sscanf(xy_str+(3*str_offset), "%c", &xy->ew); return; } /** * @} */ /** * @} */ /** * @} */ /** * @} */ /** * @} */