/* * Copyright (c) 2023 Trackunit Corporation * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_DRIVERS_GNSS_GNSS_PARSE_H_ #define ZEPHYR_DRIVERS_GNSS_GNSS_PARSE_H_ #include /** * @brief Parse decimal string to nano parts * * @example "-1231.3512" -> -1231351200000 * * @param str The decimal string to be parsed * @param nano Destination for parsed decimal * * @retval -EINVAL if str could not be parsed * @retval 0 if str successfully parsed */ int gnss_parse_dec_to_nano(const char *str, int64_t *nano); /** * @brief Parse decimal string to micro parts * * @example "-1231.3512" -> -1231351200 * * @param str The decimal string to be parsed * @param milli Destination for parsed decimal * * @retval -EINVAL if str could not be parsed * @retval 0 if str successfully parsed */ int gnss_parse_dec_to_micro(const char *str, uint64_t *micro); /** * @brief Parse decimal string to milli parts * * @example "-1231.3512" -> -1231351 * * @param str The decimal string to be parsed * @param milli Destination for parsed decimal * * @retval -EINVAL if str could not be parsed * @retval 0 if str successfully parsed */ int gnss_parse_dec_to_milli(const char *str, int64_t *milli); /** * @brief Parse integer string of configurable base to integer * * @example "-1231" -> -1231 * * @param str Decimal string to be parsed * @param base Base of decimal string to be parsed * @param integer Destination for parsed integer * * @retval -EINVAL if str could not be parsed * @retval 0 if str successfully parsed */ int gnss_parse_atoi(const char *str, uint8_t base, int32_t *integer); #endif /* ZEPHYR_DRIVERS_GNSS_GNSS_PARSE_H_ */