https://github.com/j123b567/scpi-parser

Dependents:   scpi_sx127x scpi_sx127x_firstTest MLX90418_I2C_master

Committer:
dudmuck
Date:
Fri Aug 07 21:54:11 2015 +0000
Revision:
1:b497f235115a
Parent:
0:aad43948c45c
update from github commit 6e5e3e0e3fc450eaf53feee059824ad85c4f270d

Who changed what in which revision?

UserRevisionLine numberNew contents of line
dudmuck 0:aad43948c45c 1 /*-
dudmuck 0:aad43948c45c 2 * Copyright (c) 2012-2013 Jan Breuer,
dudmuck 0:aad43948c45c 3 *
dudmuck 0:aad43948c45c 4 * All Rights Reserved
dudmuck 1:b497f235115a 5 *
dudmuck 0:aad43948c45c 6 * Redistribution and use in source and binary forms, with or without
dudmuck 0:aad43948c45c 7 * modification, are permitted provided that the following conditions are
dudmuck 0:aad43948c45c 8 * met:
dudmuck 0:aad43948c45c 9 * 1. Redistributions of source code must retain the above copyright notice,
dudmuck 0:aad43948c45c 10 * this list of conditions and the following disclaimer.
dudmuck 0:aad43948c45c 11 * 2. Redistributions in binary form must reproduce the above copyright
dudmuck 0:aad43948c45c 12 * notice, this list of conditions and the following disclaimer in the
dudmuck 0:aad43948c45c 13 * documentation and/or other materials provided with the distribution.
dudmuck 1:b497f235115a 14 *
dudmuck 0:aad43948c45c 15 * THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS OR
dudmuck 0:aad43948c45c 16 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
dudmuck 0:aad43948c45c 17 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
dudmuck 0:aad43948c45c 18 * DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
dudmuck 0:aad43948c45c 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
dudmuck 0:aad43948c45c 20 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
dudmuck 0:aad43948c45c 21 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
dudmuck 0:aad43948c45c 22 * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
dudmuck 0:aad43948c45c 23 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
dudmuck 0:aad43948c45c 24 * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
dudmuck 0:aad43948c45c 25 * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
dudmuck 0:aad43948c45c 26 */
dudmuck 0:aad43948c45c 27
dudmuck 0:aad43948c45c 28 /**
dudmuck 0:aad43948c45c 29 * @file config.h
dudmuck 0:aad43948c45c 30 * @date Wed Mar 20 12:21:26 UTC 2013
dudmuck 1:b497f235115a 31 *
dudmuck 0:aad43948c45c 32 * @brief SCPI Configuration
dudmuck 1:b497f235115a 33 *
dudmuck 1:b497f235115a 34 *
dudmuck 0:aad43948c45c 35 */
dudmuck 0:aad43948c45c 36
dudmuck 0:aad43948c45c 37 #ifndef __SCPI_CONFIG_H_
dudmuck 0:aad43948c45c 38 #define __SCPI_CONFIG_H_
dudmuck 0:aad43948c45c 39
dudmuck 0:aad43948c45c 40 #ifdef __cplusplus
dudmuck 0:aad43948c45c 41 extern "C" {
dudmuck 0:aad43948c45c 42 #endif
dudmuck 0:aad43948c45c 43
dudmuck 1:b497f235115a 44 #ifdef SCPI_USER_CONFIG
dudmuck 1:b497f235115a 45 #include "scpi_user_config.h"
dudmuck 1:b497f235115a 46 #endif
dudmuck 1:b497f235115a 47
dudmuck 1:b497f235115a 48 /* set the termination character(s) */
dudmuck 1:b497f235115a 49 #define LINE_ENDING_CR "\r" /* use a <CR> carriage return as termination charcter */
dudmuck 1:b497f235115a 50 #define LINE_ENDING_LF "\n" /* use a <LF> line feed as termination charcter */
dudmuck 1:b497f235115a 51 #define LINE_ENDING_CRLF "\r\n" /* use <CR><LF> carriage return + line feed as termination charcters */
dudmuck 1:b497f235115a 52
dudmuck 1:b497f235115a 53 #ifndef SCPI_LINE_ENDING
dudmuck 1:b497f235115a 54 #define SCPI_LINE_ENDING LINE_ENDING_CRLF
dudmuck 1:b497f235115a 55 #endif
dudmuck 1:b497f235115a 56
dudmuck 1:b497f235115a 57 /* Enable full error list
dudmuck 1:b497f235115a 58 * 0 = Minimal set of errors
dudmuck 1:b497f235115a 59 * 1 = Full set of errors
dudmuck 1:b497f235115a 60 *
dudmuck 1:b497f235115a 61 * For small systems, full set of errors will occupy large ammount of data
dudmuck 1:b497f235115a 62 */
dudmuck 1:b497f235115a 63 #ifndef USE_FULL_ERROR_LIST
dudmuck 1:b497f235115a 64 #define USE_FULL_ERROR_LIST 0
dudmuck 1:b497f235115a 65 #endif
dudmuck 1:b497f235115a 66
dudmuck 1:b497f235115a 67 /**
dudmuck 1:b497f235115a 68 * Enable also LIST_OF_USER_ERRORS to be included
dudmuck 1:b497f235115a 69 * 0 = Use only library defined errors
dudmuck 1:b497f235115a 70 * 1 = Use also LIST_OF_USER_ERRORS
dudmuck 1:b497f235115a 71 */
dudmuck 1:b497f235115a 72 #ifndef USE_USER_ERROR_LIST
dudmuck 1:b497f235115a 73 #define USE_USER_ERROR_LIST 0
dudmuck 1:b497f235115a 74 #endif
dudmuck 1:b497f235115a 75
dudmuck 0:aad43948c45c 76 /* Compiler specific */
dudmuck 1:b497f235115a 77 /* RealView/Keil ARM Compiler, e.g. Cortex-M CPUs */
dudmuck 1:b497f235115a 78 #if defined(__CC_ARM)
dudmuck 1:b497f235115a 79 #define HAVE_STRNLEN 0
dudmuck 1:b497f235115a 80 #define HAVE_STRNCASECMP 1
dudmuck 1:b497f235115a 81 #define HAVE_STRNICMP 0
dudmuck 1:b497f235115a 82 #endif
dudmuck 1:b497f235115a 83
dudmuck 1:b497f235115a 84 /* National Instruments (R) CVI x86/x64 PC platform */
dudmuck 1:b497f235115a 85 #if defined(_CVI_)
dudmuck 1:b497f235115a 86 #define HAVE_STRNLEN 0
dudmuck 1:b497f235115a 87 #define HAVE_STRNCASECMP 0
dudmuck 1:b497f235115a 88 #define HAVE_STRNICMP 1
dudmuck 1:b497f235115a 89 #define HAVE_STDBOOL 0
dudmuck 1:b497f235115a 90 #endif
dudmuck 1:b497f235115a 91
dudmuck 0:aad43948c45c 92 /* 8bit PIC - PIC16, etc */
dudmuck 0:aad43948c45c 93 #if defined(_MPC_)
dudmuck 0:aad43948c45c 94 #define HAVE_STRNLEN 0
dudmuck 0:aad43948c45c 95 #define HAVE_STRNCASECMP 0
dudmuck 0:aad43948c45c 96 #define HAVE_STRNICMP 1
dudmuck 0:aad43948c45c 97 #endif
dudmuck 0:aad43948c45c 98
dudmuck 0:aad43948c45c 99 /* PIC24 */
dudmuck 0:aad43948c45c 100 #if defined(__C30__)
dudmuck 0:aad43948c45c 101 #define HAVE_STRNLEN 0
dudmuck 0:aad43948c45c 102 #define HAVE_STRNCASECMP 0
dudmuck 0:aad43948c45c 103 #define HAVE_STRNICMP 0
dudmuck 0:aad43948c45c 104 #endif
dudmuck 0:aad43948c45c 105
dudmuck 0:aad43948c45c 106 /* PIC32mx */
dudmuck 0:aad43948c45c 107 #if defined(__C32__)
dudmuck 0:aad43948c45c 108 #define HAVE_STRNLEN 0
dudmuck 0:aad43948c45c 109 #define HAVE_STRNCASECMP 1
dudmuck 0:aad43948c45c 110 #define HAVE_STRNICMP 0
dudmuck 0:aad43948c45c 111 #endif
dudmuck 0:aad43948c45c 112
dudmuck 1:b497f235115a 113 /* AVR libc */
dudmuck 1:b497f235115a 114 #if defined(__AVR__)
dudmuck 1:b497f235115a 115 #include <stdlib.h>
dudmuck 1:b497f235115a 116 #define HAVE_DTOSTRE 1
dudmuck 1:b497f235115a 117 #endif
dudmuck 1:b497f235115a 118
dudmuck 0:aad43948c45c 119 /* ======== test strnlen ======== */
dudmuck 0:aad43948c45c 120 #ifndef HAVE_STRNLEN
dudmuck 0:aad43948c45c 121 #define HAVE_STRNLEN 1
dudmuck 0:aad43948c45c 122 #endif
dudmuck 0:aad43948c45c 123 /* ======== test strncasecmp ======== */
dudmuck 0:aad43948c45c 124 #ifndef HAVE_STRNCASECMP
dudmuck 0:aad43948c45c 125 #define HAVE_STRNCASECMP 1
dudmuck 0:aad43948c45c 126 #endif
dudmuck 0:aad43948c45c 127 /* ======== test strnicmp ======== */
dudmuck 0:aad43948c45c 128 #ifndef HAVE_STRNICMP
dudmuck 0:aad43948c45c 129 #define HAVE_STRNICMP 0
dudmuck 0:aad43948c45c 130 #endif
dudmuck 0:aad43948c45c 131
dudmuck 1:b497f235115a 132 #ifndef HAVE_STDBOOL
dudmuck 1:b497f235115a 133 #define HAVE_STDBOOL 1
dudmuck 1:b497f235115a 134 #endif
dudmuck 1:b497f235115a 135
dudmuck 0:aad43948c45c 136 /* define local macros depending on existance of strnlen */
dudmuck 0:aad43948c45c 137 #if HAVE_STRNLEN
dudmuck 1:b497f235115a 138 #define SCPIDEFINE_strnlen(s, l) strnlen((s), (l))
dudmuck 0:aad43948c45c 139 #else
dudmuck 1:b497f235115a 140 #define SCPIDEFINE_strnlen(s, l) BSD_strnlen((s), (l))
dudmuck 0:aad43948c45c 141 #endif
dudmuck 0:aad43948c45c 142
dudmuck 0:aad43948c45c 143 /* define local macros depending on existance of strncasecmp and strnicmp */
dudmuck 0:aad43948c45c 144 #if HAVE_STRNCASECMP
dudmuck 1:b497f235115a 145 #define SCPIDEFINE_strncasecmp(s1, s2, l) strncasecmp((s1), (s2), (l))
dudmuck 0:aad43948c45c 146 #elif HAVE_STRNICMP
dudmuck 1:b497f235115a 147 #define SCPIDEFINE_strncasecmp(s1, s2, l) strnicmp((s1), (s2), (l))
dudmuck 0:aad43948c45c 148 #else
dudmuck 1:b497f235115a 149 #define SCPIDEFINE_strncasecmp(s1, s2, l) OUR_strncasecmp((s1), (s2), (l))
dudmuck 0:aad43948c45c 150 #endif
dudmuck 0:aad43948c45c 151
dudmuck 1:b497f235115a 152 #if HAVE_DTOSTRE
dudmuck 1:b497f235115a 153 #define SCPIDEFINE_doubleToStr(v, s, l) strlen(dtostre((v), (s), 6, DTOSTR_PLUS_SIGN | DTOSTR_ALWAYS_SIGN | DTOSTR_UPPERCASE))
dudmuck 1:b497f235115a 154 #else
dudmuck 1:b497f235115a 155 #define SCPIDEFINE_doubleToStr(v, s, l) snprintf((s), (l), "%lg", (v))
dudmuck 1:b497f235115a 156 #endif
dudmuck 1:b497f235115a 157
dudmuck 1:b497f235115a 158
dudmuck 0:aad43948c45c 159 #ifdef __cplusplus
dudmuck 0:aad43948c45c 160 }
dudmuck 0:aad43948c45c 161 #endif
dudmuck 0:aad43948c45c 162
dudmuck 0:aad43948c45c 163 #endif