// // ****************************************************************** // // /\ /| @File export_method.cc // // \ V/ @Brief // // | "") @Author lijinwen, ghz005@uni-trend.com.cn // // / | @Creation 2024-05-20 // // / \\ @Modified 2024-06-24 // // *(__\_\ // // ****************************************************************** #include "export_method.h" #include "ProtocolIIC/iic_decoder.h" #include "ProtocolIIC/iic_decode_options.h" #include "ProtocolIIC/iic_decode_result.h" #include "ProtocolRS232/rs232_decoder.h" #include "ProtocolSPI/spi_decoder.h" #include "ProtocolUsb/Usb_decoder.h" namespace Protocol { bool ParseUsb(const UsbDecodeOptions& option, const EdgePulseDataTwoLevels& edge_pluses_data1, const EdgePulseDataTwoLevels& edge_pluses_data2, UsbDecodeResult& result) { const auto usb_decode = new UsbDecoder(); return usb_decode->DecodeUsb(option, edge_pluses_data1, edge_pluses_data2, result); } void ReleaseUsbHeap(const intptr_t decoder_ptr) { if (decoder_ptr == 0 || reinterpret_cast(decoder_ptr) == nullptr) { return; } reinterpret_cast(decoder_ptr)->~UsbDecoder(); } bool ParseRs232(const ProtocolRs232Options& options, const EdgePulseDataTwoLevels& edge_pulse_data, Rs232DecodeResult& decode_result) { const auto rs232_decode = new Rs232Decoder(); return rs232_decode->DecodeRs232(options, edge_pulse_data.GetDataAddrPtr(), edge_pulse_data.edge_pulses_count, edge_pulse_data.waveform_data_count, edge_pulse_data.sample_rate, decode_result); } void ReleaseRs232Heap(const intptr_t decoder_ptr) { if (decoder_ptr == 0 || reinterpret_cast(decoder_ptr) == nullptr) { return; } reinterpret_cast(decoder_ptr)->~Rs232Decoder(); } bool ParseIic(const IicDecodeOptions& option, const EdgePulseDataTwoLevels& edge_pulses_clk, const EdgePulseDataTwoLevels& edge_pulses_data, IicDecodeResult& result) { const auto decoder = new IicDecoder(); return decoder->DecodeIic(option, edge_pulses_clk, edge_pulses_data, result); } void ReleaseIicHeap(const intptr_t decoder_ptr) { if (decoder_ptr == 0 || reinterpret_cast(decoder_ptr) == nullptr) { return; } reinterpret_cast(decoder_ptr)->~IicDecoder(); } 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) { const auto decoder = new SpiDecoder(); return decoder->DecodeSpi(options, edge_pulse_data_clk, edge_pulse_data_cs, edge_pulse_data_mosi, edge_pulse_data_miso, decode_result); } void ReleaseSpiHeap(const intptr_t decoder_ptr) { if (decoder_ptr == 0 || reinterpret_cast(decoder_ptr) == nullptr) { return; } reinterpret_cast(decoder_ptr)->~SpiDecoder(); } }