export_method.h 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. // // ******************************************************************
  2. // // /\ /| @File export_method.h
  3. // // \ V/ @Brief
  4. // // | "") @Author lijinwen, ghz005@uni-trend.com.cn
  5. // // / | @Creation 2024-05-20
  6. // // / \\ @Modified 2024-06-24
  7. // // *(__\_\
  8. // // ******************************************************************
  9. #pragma once
  10. #include <future>
  11. #include "protocol_decode_base.h"
  12. #include "edge_pulse_data.h"
  13. #include "quantize_params.h"
  14. #include "ProtocolIIC/iic_decode_options.h"
  15. #include "ProtocolIIC/iic_decode_result.h"
  16. #include "ProtocolRS232/protocol_rs232_options.h"
  17. #include "ProtocolRS232/rs232_decode_result.h"
  18. #include "ProtocolSPI/spi_decode_options.h"
  19. #include "ProtocolSPI/spi_decode_result.h"
  20. #include "ProtocolUsb/Usb_decode_options.h"
  21. #include "ProtocolUsb/Usb_decode_result.h"
  22. #ifdef LIBMATH_EXPORTS
  23. #define LIBMATH_API __declspec(dllexport)
  24. #else
  25. #define LIBMATH_API __declspec(dllimport)
  26. #endif
  27. namespace Protocol
  28. {
  29. extern "C" {
  30. LIBMATH_API bool ParseUsb(const UsbDecodeOptions& option, const EdgePulseDataTwoLevels& edge_pluses_data1,
  31. const EdgePulseDataTwoLevels& edge_pluses_data2, UsbDecodeResult& result);
  32. LIBMATH_API void ReleaseUsbHeap(intptr_t decoder_ptr);
  33. // LIBMATH_API bool quantizeParamsDecodeRS232(const QuantizeParams& quantizeParams,
  34. // const ProtocolRS232Options& options,
  35. // rs232_decode_result& decodeResult);
  36. LIBMATH_API bool ParseRs232(const ProtocolRs232Options& options,
  37. const EdgePulseDataTwoLevels& edge_pulse_data,
  38. Rs232DecodeResult& decode_result);
  39. LIBMATH_API void ReleaseRs232Heap(intptr_t decoder_ptr);
  40. LIBMATH_API bool ParseSpi(const SpiDecodeOptions& options,
  41. const EdgePulseDataTwoLevels& edge_pulse_data_clk,
  42. const EdgePulseDataTwoLevels& edge_pulse_data_cs,
  43. const EdgePulseDataTwoLevels& edge_pulse_data_mosi,
  44. const EdgePulseDataTwoLevels& edge_pulse_data_miso,
  45. SpiDecodeResult& decode_result);
  46. LIBMATH_API void ReleaseSpiHeap(intptr_t decoder_ptr);
  47. LIBMATH_API bool ParseIic(const IicDecodeOptions& option, const EdgePulseDataTwoLevels& edge_pulses_clk,
  48. const EdgePulseDataTwoLevels& edge_pulses_data, IicDecodeResult& result);
  49. LIBMATH_API void ReleaseIicHeap(intptr_t decoder_ptr);
  50. inline LIBMATH_API void GetVersionExport(uint8_t* version)
  51. {
  52. // 遍历字符串,将其转换为字节数组
  53. for (size_t i = 0; i < DLL_VERSION.size(); ++i)
  54. {
  55. version[i] = static_cast<unsigned char>(DLL_VERSION.c_str()[i]);
  56. }
  57. }
  58. }
  59. }