Separate acquisition and communication in FTD2 code

This commit is contained in:
Lorenzooone
2025-03-26 12:58:20 +01:00
parent 72110aba94
commit 7893e0b022
12 changed files with 952 additions and 890 deletions

View File

@@ -0,0 +1,8 @@
#ifndef __DSCAPTURE_FTD2_DRIVER_ACQUISITION_HPP
#define __DSCAPTURE_FTD2_DRIVER_ACQUISITION_HPP
#include "capture_structs.hpp"
void ftd2_capture_main_loop_driver(CaptureData* capture_data);
#endif

View File

@@ -1,17 +1,13 @@
#ifndef __DSCAPTURE_FTD2_DRIVER_HPP
#define __DSCAPTURE_FTD2_DRIVER_HPP
#ifndef __DSCAPTURE_FTD2_DRIVER_COMMS_HPP
#define __DSCAPTURE_FTD2_DRIVER_COMMS_HPP
#include <vector>
#include "utils.hpp"
#include "hw_defs.hpp"
#include "capture_structs.hpp"
#include "display_structs.hpp"
#include "devicecapture.hpp"
#define FTD2_OLDDS_SYNCH_VALUES 0x4321
void list_devices_ftd2_driver(std::vector<CaptureDevice> &devices_list, std::vector<no_access_recap_data> &no_access_list);
int ftd2_driver_open_serial(CaptureDevice* device, void** handle);
void ftd2_capture_main_loop_driver(CaptureData* capture_data);
#endif

View File

@@ -0,0 +1,9 @@
#ifndef __DSCAPTURE_FTD2_LIBUSB_ACQUISITION_HPP
#define __DSCAPTURE_FTD2_LIBUSB_ACQUISITION_HPP
#include "dscapture_ftd2_shared.hpp"
#include "capture_structs.hpp"
void ftd2_capture_main_loop_libusb(CaptureData* capture_data);
#endif

View File

@@ -1,5 +1,5 @@
#ifndef __DSCAPTURE_FTD2_LIBUSB_HPP
#define __DSCAPTURE_FTD2_LIBUSB_HPP
#ifndef __DSCAPTURE_FTD2_LIBUSB_COMMS_HPP
#define __DSCAPTURE_FTD2_LIBUSB_COMMS_HPP
#include "dscapture_ftd2_shared.hpp"
#include "capture_structs.hpp"
@@ -16,9 +16,11 @@ enum ftd2_flow_ctrls {
void ftd2_libusb_init();
void ftd2_libusb_end();
void ftd2_libusb_start_thread(std::thread* thread_ptr, bool* usb_thread_run);
void ftd2_libusb_close_thread(std::thread* thread_ptr, bool* usb_thread_run);
// Generic functions
void list_devices_ftd2_libusb(std::vector<CaptureDevice> &devices_list, std::vector<no_access_recap_data> &no_access_list);
void ftd2_capture_main_loop_libusb(CaptureData* capture_data);
int ftd2_libusb_reset(void* handle);
int ftd2_libusb_set_latency_timer(void* handle, unsigned char latency);
int ftd2_libusb_setflowctrl(void* handle, int flowctrl, unsigned char xon, unsigned char xoff);
@@ -34,4 +36,14 @@ int get_ftd2_libusb_read_queue_size(void* handle, size_t* bytesIn);
int ftd2_libusb_open_serial(CaptureDevice* device, void** handle);
int ftd2_libusb_close(void* handle);
// Functions which are related to the raw buffer
size_t ftd2_libusb_get_expanded_length(const int max_packet_size, size_t length, size_t header_packet_size);
size_t ftd2_libusb_get_expanded_length(size_t length);
size_t ftd2_libusb_get_actual_length(const int max_packet_size, size_t length, size_t header_packet_size);
size_t ftd2_libusb_get_actual_length(size_t length);
void ftd2_libusb_copy_buffer_to_target(uint8_t* buffer_written, uint8_t* buffer_target, const int max_packet_size, size_t length, size_t header_packet_size);
void ftd2_libusb_copy_buffer_to_target(uint8_t* buffer_written, uint8_t* buffer_target, size_t length);
int ftd2_libusb_force_read_with_timeout(void* handle, uint8_t* buffer_raw, uint8_t* buffer_normal, size_t length, double timeout);
int ftd2_libusb_async_bulk_in_prepare_and_submit(void* handle, void *transfer_in, uint8_t* buffer_raw, size_t size, void* cb_fn, void* cb_data, int timeout_multiplier = 1);
#endif