Merge pull request #144 from j123b567/issue/143-fix-cxx-build
Fix build for c++
| | |
| | | - name: coverage |
| | | env: |
| | | CFLAGS: -fprofile-arcs -ftest-coverage |
| | | CXXFLAGS: -fprofile-arcs -ftest-coverage |
| | | LDFLAGS: -lgcov |
| | | run: make clean all test |
| | | |
| | |
| | | |
| | | cli: |
| | | $(MAKE) -C test-interactive |
| | | $(MAKE) -C test-interactive-cxx |
| | | $(MAKE) -C test-parser |
| | | |
| | | tcp: |
| | |
| | | |
| | | clean: |
| | | $(MAKE) clean -C test-interactive |
| | | $(MAKE) clean -C test-interactive-cxx |
| | | $(MAKE) clean -C test-parser |
| | | $(MAKE) clean -C test-tcp |
| | | $(MAKE) clean -C test-tcp-srq |
New file |
| | |
| | | /*- |
| | | * BSD 2-Clause License |
| | | * |
| | | * Copyright (c) 2012-2018, Jan Breuer |
| | | * All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * * Redistributions of source code must retain the above copyright notice, this |
| | | * list of conditions and the following disclaimer. |
| | | * |
| | | * * 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. |
| | | * |
| | | * 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. |
| | | */ |
| | | |
| | | #ifndef __SCPI_DEF_H_ |
| | | #define __SCPI_DEF_H_ |
| | | |
| | | |
| | | #include "scpi/scpi.h" |
| | | |
| | | #define SCPI_INPUT_BUFFER_LENGTH 256 |
| | | #define SCPI_ERROR_QUEUE_SIZE 17 |
| | | #define SCPI_IDN1 "MANUFACTURE" |
| | | #define SCPI_IDN2 "INSTR2013" |
| | | #define SCPI_IDN3 NULL |
| | | #define SCPI_IDN4 "01-02" |
| | | |
| | | extern const scpi_command_t scpi_commands[]; |
| | | extern scpi_interface_t scpi_interface; |
| | | extern char scpi_input_buffer[]; |
| | | extern scpi_error_t scpi_error_queue_data[]; |
| | | extern scpi_t scpi_context; |
| | | |
| | | size_t SCPI_Write(scpi_t * context, const char * data, size_t len); |
| | | int SCPI_Error(scpi_t * context, int_fast16_t err); |
| | | scpi_result_t SCPI_Control(scpi_t * context, scpi_ctrl_name_t ctrl, scpi_reg_val_t val); |
| | | scpi_result_t SCPI_Reset(scpi_t * context); |
| | | scpi_result_t SCPI_Flush(scpi_t * context); |
| | | |
| | | |
| | | scpi_result_t SCPI_SystemCommTcpipControlQ(scpi_t * context); |
| | | |
| | | #endif /* __SCPI_DEF_H_ */ |
| | | |
New file |
| | |
| | | |
| | | PROG = test |
| | | |
| | | SRCS = main.cpp ../common-cxx/scpi-def.cpp |
| | | CPPFLAGS += -I ../../libscpi/inc/ |
| | | CXXFLAGS += -Wextra |
| | | LDFLAGS += -lm ../../libscpi/dist/libscpi.a -Wl,--as-needed |
| | | |
| | | .PHONY: clean all |
| | | |
| | | all: $(PROG) |
| | | |
| | | OBJS = $(SRCS:.cpp=.o) |
| | | |
| | | %.o: %.cpp |
| | | $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) -o $@ $< |
| | | |
| | | $(PROG): $(OBJS) |
| | | $(CXX) -o $@ $(OBJS) $(CXXFLAGS) $(LDFLAGS) |
| | | |
| | | clean: |
| | | $(RM) $(PROG) $(OBJS) |
New file |
| | |
| | | /*- |
| | | * BSD 2-Clause License |
| | | * |
| | | * Copyright (c) 2012-2018, Jan Breuer |
| | | * All rights reserved. |
| | | * |
| | | * Redistribution and use in source and binary forms, with or without |
| | | * modification, are permitted provided that the following conditions are met: |
| | | * |
| | | * * Redistributions of source code must retain the above copyright notice, this |
| | | * list of conditions and the following disclaimer. |
| | | * |
| | | * * 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. |
| | | * |
| | | * 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. |
| | | */ |
| | | |
| | | /** |
| | | * @file main.c |
| | | * @date Thu Nov 15 10:58:45 UTC 2012 |
| | | * |
| | | * @brief SCPI parser test |
| | | * |
| | | * |
| | | */ |
| | | #include <iostream> |
| | | #include "scpi/scpi.h" |
| | | #include "../common-cxx/scpi-def.h" |
| | | |
| | | size_t SCPI_Write(scpi_t * context, const char * data, size_t len) { |
| | | (void) context; |
| | | std::cout.write(data, len); |
| | | return len; |
| | | } |
| | | |
| | | scpi_result_t SCPI_Flush(scpi_t * context) { |
| | | (void) context; |
| | | std::cout << std::flush; |
| | | return SCPI_RES_OK; |
| | | } |
| | | |
| | | int SCPI_Error(scpi_t * context, int_fast16_t err) { |
| | | (void) context; |
| | | std::cerr << "**ERROR: " << err << ", \"" << SCPI_ErrorTranslate(err) << "\"" << std::endl; |
| | | return 0; |
| | | } |
| | | |
| | | scpi_result_t SCPI_Control(scpi_t * context, scpi_ctrl_name_t ctrl, scpi_reg_val_t val) { |
| | | (void) context; |
| | | |
| | | if (SCPI_CTRL_SRQ == ctrl) { |
| | | std::cerr << "**SRQ: 0x" << std::hex << val << "(" << std::dec << val << ")" << std::endl; |
| | | } else { |
| | | std::cerr << "**CTRL: " << std::hex << ctrl << ": 0x" << std::hex << val << "(" << std::dec << val << ")" << std::endl; |
| | | } |
| | | return SCPI_RES_OK; |
| | | } |
| | | |
| | | scpi_result_t SCPI_Reset(scpi_t * context) { |
| | | (void) context; |
| | | |
| | | std::cerr << "**Reset" << std::endl; |
| | | return SCPI_RES_OK; |
| | | } |
| | | |
| | | scpi_result_t SCPI_SystemCommTcpipControlQ(scpi_t * context) { |
| | | (void) context; |
| | | |
| | | return SCPI_RES_ERR; |
| | | } |
| | | |
| | | /* |
| | | * |
| | | */ |
| | | int main(int argc, char** argv) { |
| | | (void) argc; |
| | | (void) argv; |
| | | |
| | | SCPI_Init(&scpi_context, |
| | | scpi_commands, |
| | | &scpi_interface, |
| | | scpi_units_def, |
| | | SCPI_IDN1, SCPI_IDN2, SCPI_IDN3, SCPI_IDN4, |
| | | scpi_input_buffer, SCPI_INPUT_BUFFER_LENGTH, |
| | | scpi_error_queue_data, SCPI_ERROR_QUEUE_SIZE); |
| | | |
| | | std::cerr << "SCPI Interactive demo" << std::endl; |
| | | |
| | | while (1) { |
| | | char ch = std::cin.get(); |
| | | SCPI_Input(&scpi_context, &ch, 1); |
| | | } |
| | | |
| | | |
| | | return (EXIT_SUCCESS); |
| | | } |
| | | |
| | |
| | | |
| | | #if defined(__cplusplus) |
| | | # if (__cplusplus >= 199711) |
| | | # define CXX98 |
| | | # define CXX98 1 |
| | | # endif |
| | | #endif |
| | | |