// // ****************************************************************** // // /\ /| @File export_method.h // // \ V/ @Brief // // | "") @Author lijinwen, ghz005@uni-trend.com.cn // // / | @Creation 2024-05-20 // // / \\ @Modified 2024-06-24 // // *(__\_\ // // ****************************************************************** #pragma once #include #include "protocol_decode_base.h" #include "edge_pulse_data.h" #include "quantize_params.h" #include "ProtocolIIC/iic_decode_options.h" #include "ProtocolIIC/iic_decode_result.h" #include "ProtocolRS232/protocol_rs232_options.h" #include "ProtocolRS232/rs232_decode_result.h" #include "ProtocolSPI/spi_decode_options.h" #include "ProtocolSPI/spi_decode_result.h" #include "ProtocolUsb/Usb_decode_options.h" #include "ProtocolUsb/Usb_decode_result.h" #ifdef LIBMATH_EXPORTS #define LIBMATH_API __declspec(dllexport) #else #define LIBMATH_API __declspec(dllimport) #endif namespace Protocol { extern "C" { LIBMATH_API bool ParseUsb(const UsbDecodeOptions& option, const EdgePulseDataTwoLevels& edge_pluses_data1, const EdgePulseDataTwoLevels& edge_pluses_data2, UsbDecodeResult& result); LIBMATH_API void ReleaseUsbHeap(intptr_t decoder_ptr); // LIBMATH_API bool quantizeParamsDecodeRS232(const QuantizeParams& quantizeParams, // const ProtocolRS232Options& options, // rs232_decode_result& decodeResult); LIBMATH_API bool ParseRs232(const ProtocolRs232Options& options, const EdgePulseDataTwoLevels& edge_pulse_data, Rs232DecodeResult& decode_result); LIBMATH_API void ReleaseRs232Heap(intptr_t decoder_ptr); LIBMATH_API bool ParseSpi(const SpiDecodeOptions& options, const EdgePulseDataTwoLevels& edge_pulse_data_clk, const EdgePulseDataTwoLevels& edge_pulse_data_cs, const EdgePulseDataTwoLevels& edge_pulse_data_mosi, const EdgePulseDataTwoLevels& edge_pulse_data_miso, SpiDecodeResult& decode_result); LIBMATH_API void ReleaseSpiHeap(intptr_t decoder_ptr); LIBMATH_API bool ParseIic(const IicDecodeOptions& option, const EdgePulseDataTwoLevels& edge_pulses_clk, const EdgePulseDataTwoLevels& edge_pulses_data, IicDecodeResult& result); LIBMATH_API void ReleaseIicHeap(intptr_t decoder_ptr); inline LIBMATH_API void GetVersionExport(uint8_t* version) { // 遍历字符串,将其转换为字节数组 for (size_t i = 0; i < DLL_VERSION.size(); ++i) { version[i] = static_cast(DLL_VERSION.c_str()[i]); } } } }