Jan Breuer
2015-04-18 f862800d3e461efc8e34cff397a3c55e51c37849
avr-libc double to string conversion

Add support for dtostre according to #27
2个文件已修改
14 ■■■■■ 已修改文件
libscpi/inc/scpi/config.h 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
libscpi/src/utils.c 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
libscpi/inc/scpi/config.h
@@ -63,6 +63,11 @@
#define HAVE_STRNICMP           0
#endif
/* AVR libc */
#if defined(__AVR_LIBC_VERSION__)
#define HAVE_DTOSTRE
#endif
/* ======== test strnlen ======== */
#ifndef HAVE_STRNLEN
#define HAVE_STRNLEN            1
@@ -92,6 +97,13 @@
#define SCPI_strncasecmp(s1, s2, l)    OUR_strncasecmp((s1), (s2), (l))
#endif
#if HAVE_DTOSTRE
#define SCPI_doubleToStr(v, s, l) strlen(dtostre((v), (s), 6, DTOSTR_PLUS_SIGN | DTOSTRE_ALWAYS_SIGN | DTOSTR_UPPERCASE))
#else
#define SCPI_doubleToStr(v, s, l) snprintf((s), (l), "%lg", (v))
#endif
#ifdef    __cplusplus
}
#endif
libscpi/src/utils.c
@@ -138,7 +138,7 @@
 * @return number of bytes written to str (without '\0')
 */
size_t doubleToStr(double val, char * str, size_t len) {
    return snprintf(str, len, "%lg", val);
    return SCPI_doubleToStr(val, str, len);
}
/**