C++ ReferenceΒΆ
-
struct vortex::engine::engine_config_t::acquire_config
Public Members
-
bool preload
-
bool master
-
process_graph_t graph
-
bool preload
-
struct vortex::engine::detail::engine_plan_t::acquire_plan
Public Members
-
processor_sets rotation
-
size_t output_index
-
processor_sets rotation
-
struct vortex::engine::adapter::acquisition : public vortex::engine::adapter<block_t>::detail::base
-
Public Members
- std::function< std::optional< cuda::device_t >)> device
-
std::function<spectra_stream_factory_t()> stream_factory
-
std::function<shape_t()> output_shape
-
std::function<size_t()> channels_per_sample
-
std::function<void()> prepare
-
std::function<void()> start
-
std::function<void()> stop
-
std::function<void(block_t&, spectra_stream_t&, callback_t&&)> next_async
-
struct vortex::marker::active_lines : public vortex::marker::detail::base
Public Functions
-
auto operator<=>(const active_lines&) const = default
-
auto operator<=>(const active_lines&) const = default
-
template<typename block_t>
struct vortex::engine::adapter Public Types
-
using spectra_stream_t = typename block_t::spectra_stream_t
-
using ascan_stream_t = typename block_t::ascan_stream_t
-
using spectra_stream_factory_t = std::function<spectra_stream_t()>
-
using ascan_stream_factory_t = std::function<ascan_stream_t()>
-
using shape_t = std::array<size_t, 3>
-
using spectra_stream_t = typename block_t::spectra_stream_t
-
template<typename T>
class vortex::sync::aggregator_t Public Functions
-
inline aggregator_t(size_t n)
-
inline void push(size_t index, T o, size_t limit = 0, bool drop = true)
-
inline void clear()
-
inline void finish()
Protected Functions
-
inline bool _empty()
-
inline aggregator_t(size_t n)
-
template<typename config_t>
class vortex::acquire::alazar_acquisition_t : public vortex::acquire::detail::alazar_acquisition_t<config_t, alazar::board_t> Subclassed by vortex::acquire::alazar_fft_acquisition_t< config_t >
Public Types
-
using base_t = detail::alazar_acquisition_t<config_t, alazar::board_t>
-
using callback_t = typename base_t::callback_t
Public Functions
-
template<typename V>
inline size_t next(const cpu_viewable<V> &buffer)
-
template<typename V>
inline size_t next(size_t id, const cpu_viewable<V> &buffer)
-
template<typename V>
inline void next_async(const cpu_viewable<V> &buffer, callback_t &&callback)
-
template<typename V>
inline void next_async(size_t id, const cpu_viewable<V> &buffer, callback_t &&callback)
-
using base_t = detail::alazar_acquisition_t<config_t, alazar::board_t>
-
template<typename config_t_, typename board_t_>
class vortex::acquire::detail::alazar_acquisition_t -
Public Functions
-
inline alazar_acquisition_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~alazar_acquisition_t()
-
inline const config_t &config() const
-
inline const board_t &board() const
-
inline virtual void initialize(config_t config)
-
inline virtual void prepare()
-
inline void start()
-
inline void stop()
-
inline bool running() const
Protected Types
-
using job_t = std::function<void()>
Protected Functions
-
template<typename V>
inline void _next_async(size_t id, const viewable<V> &buffer_, callback_t &&callback)
-
template<typename V>
inline auto _post_block(size_t id, const V &buffer, bool lock_is_held)
-
template<typename V>
inline auto _wait_block(size_t id, const V &buffer, bool lock_is_held)
-
inline void _stop(bool lock_is_held)
-
inline void _worker_loop()
-
inline alazar_acquisition_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
template<typename clock_t, typename trigger_t, typename option_t>
struct vortex::acquire::alazar_config_t : public vortex::acquire::detail::alazar_config_t<clock_t, trigger_t, option_t> Subclassed by vortex::acquire::alazar_fft_config_t< clock_t, trigger_t, option_t >
Public Types
-
using base_t = detail::alazar_config_t<clock_t, trigger_t, option_t>
-
using base_t = detail::alazar_config_t<clock_t, trigger_t, option_t>
-
template<typename clock_t_, typename trigger_t_, typename option_t_>
struct vortex::acquire::detail::alazar_config_t : public vortex::acquire::dso_config_t -
Public Functions
-
template<typename board_t>
inline void validate(const board_t &board)
-
inline size_t recommended_minimum_records_per_block() const
-
inline virtual size_t buffer_bytes_per_record() const
-
inline auto bytes_per_multisample() const
-
inline auto channel_mask() const
-
inline virtual size_t channels_per_sample() const override
-
inline bool samples_per_second_is_known() const
-
inline auto &samples_per_second()
-
inline const auto &samples_per_second() const
Public Members
-
struct vortex::acquire::detail::alazar_config_t::device_t device
-
std::vector<size_t> resampling
-
bool stop_on_error = true
-
template<typename board_t>
-
template<typename T>
class vortex::alazar::alazar_device_tensor_t : public vortex::detail::tensor_impl_t<T> Public Types
-
using element_t = T
Public Functions
-
inline alazar_device_tensor_t()
-
inline ~alazar_device_tensor_t()
-
inline alazar_device_tensor_t(alazar_device_tensor_t &&o)
-
inline alazar_device_tensor_t &operator=(alazar_device_tensor_t &&o)
-
inline const auto &handle() const
-
inline const auto &device() const
-
inline virtual size_t underlying_count() const override
Protected Functions
-
inline virtual void _allocate(size_t count) override
-
inline void _release()
-
inline void _reset()
-
using element_t = T
-
template<typename config_t>
class vortex::acquire::alazar_fft_acquisition_t : public vortex::acquire::alazar_acquisition_t<config_t> Public Types
-
using base_t = alazar_acquisition_t<config_t>
-
using callback_t = typename base_t::callback_t
-
using base_t = detail::alazar_acquisition_t<config_t, alazar::board_t>
Public Functions
-
inline virtual void prepare() override
-
using base_t = alazar_acquisition_t<config_t>
-
template<typename clock_t, typename trigger_t, typename option_t>
struct vortex::acquire::alazar_fft_config_t : public vortex::acquire::alazar_config_t<clock_t, trigger_t, option_t> Public Types
-
using base_t = alazar_config_t<clock_t, trigger_t, option_t>
Public Functions
-
inline virtual std::array<size_t, 3> shape() const override
-
inline virtual size_t buffer_bytes_per_record() const override
-
inline size_t samples_per_ascan() const
-
inline size_t &ascans_per_block()
-
inline const size_t &ascans_per_block() const
-
inline virtual void validate() override
Public Members
-
size_t fft_length = 1024
-
xt::xtensor<std::complex<float>, 1> spectral_filter
-
bool include_time_domain = false
-
xt::xtensor<int16_t, 1> background
Protected Functions
-
inline auto _fft_record_length() const
-
using base_t = alazar_config_t<clock_t, trigger_t, option_t>
-
template<typename config_t>
class vortex::acquire::alazar_gpu_acquisition_t : public vortex::acquire::detail::alazar_acquisition_t<config_t, alazar::gpu_board_t> Public Types
-
using base_t = detail::alazar_acquisition_t<config_t, alazar::gpu_board_t>
-
using callback_t = typename base_t::callback_t
Public Functions
-
template<typename V>
inline size_t next(const alazar::alazar_viewable<V> &buffer)
-
template<typename V>
inline size_t next(size_t id, const alazar::alazar_viewable<V> &buffer)
-
template<typename V>
inline void next_async(const alazar::alazar_viewable<V> &buffer, callback_t &&callback)
-
template<typename V>
inline void next_async(size_t id, const alazar::alazar_viewable<V> &buffer, callback_t &&callback)
-
using base_t = detail::alazar_acquisition_t<config_t, alazar::gpu_board_t>
-
template<typename clock_t, typename trigger_t, typename option_t>
struct vortex::acquire::alazar_gpu_config_t : public vortex::acquire::detail::alazar_config_t<clock_t, trigger_t, option_t> Public Types
-
using base_t = detail::alazar_config_t<clock_t, trigger_t, option_t>
Public Functions
-
inline auto create_board()
-
inline virtual void validate()
Public Members
-
size_t gpu_device_index = 0
-
using base_t = detail::alazar_config_t<clock_t, trigger_t, option_t>
-
template<typename T>
class vortex::alazar::detail::alazar_view_t : public vortex::alazar::alazar_viewable<alazar_view_t<T>>, public vortex::detail::dynamic_view_t<T, fixed_alazar_view_t<T>, alazar_view_t<T>> Public Types
-
using base_t = vortex::detail::dynamic_view_t<T, fixed_alazar_view_t<T>, alazar_view_t<T>>
Public Functions
-
inline alazar_view_t()
-
template<typename S1>
inline alazar_view_t(T *data, const S1 &shape, const cuda::device_t &device, const HANDLE &handle)
-
template<typename V>
inline alazar_view_t(const alazar_viewable<V> &other)
-
inline const auto &device() const
-
inline const auto &handle() const
-
inline bool is_accessible() const
-
using base_t = vortex::detail::dynamic_view_t<T, fixed_alazar_view_t<T>, alazar_view_t<T>>
-
template<typename derived_t>
class alazar_viewable : public vortex::cuda::cuda_viewable<derived_t>
-
struct vortex::alazar::detail::alignment_info_t
Public Members
-
U32 min_record_size
-
U32 pretrigger_alignment
-
U32 resolution
-
U32 min_record_size
-
struct analog_input_t : public vortex::io::detail::analog_t
Subclassed by vortex::io::channel::analog_voltage_input_t
-
struct analog_output_t : public vortex::io::detail::analog_t
Subclassed by vortex::io::channel::analog_voltage_output_t
-
struct vortex::io::detail::analog_t : public vortex::io::detail::base_t
Subclassed by vortex::io::detail::analog_input_t, vortex::io::detail::analog_output_t
Public Functions
-
inline bool operator==(const analog_t &o) const
-
inline bool operator==(const analog_t &o) const
-
struct vortex::io::channel::analog_voltage_input_t : public vortex::io::detail::analog_input_t
Public Functions
-
inline bool operator==(const analog_voltage_input_t &o) const
Public Members
-
daqmx::terminal_t terminal = daqmx::terminal_t::referenced
-
inline bool operator==(const analog_voltage_input_t &o) const
-
struct vortex::scan::warp::angular_t
Public Functions
-
inline angular_t()
-
inline angular_t(double factor_)
-
template<typename E1, typename E2>
inline auto forward(xt::xexpression<E1> &in, xt::xexpression<E2> &out) const
-
template<typename E1, typename E2>
inline auto inverse(xt::xexpression<E1> &in, xt::xexpression<E2> &out) const
-
template<typename E>
inline void forward(xt::xexpression<E> &inout) const
-
template<typename E>
inline void inverse(xt::xexpression<E> &inout) const
Public Members
-
double factor = 2
-
inline angular_t()
-
template<typename T>
struct array
-
template<>
struct vortex::storage::detail::matlab::array<double> Public Static Attributes
- static constexpr static auto valueΒ Β = mxDOUBLE_CLASS
- static constexpr static auto nameΒ Β = "float64"
- static constexpr static auto flagsΒ Β = 0
-
template<>
struct vortex::storage::detail::matlab::array<float> Public Static Attributes
- static constexpr static auto valueΒ Β = mxSINGLE_CLASS
- static constexpr static auto nameΒ Β = "float32"
- static constexpr static auto flagsΒ Β = 0
-
template<>
struct vortex::storage::detail::matlab::array<int16_t> Public Static Attributes
- static constexpr static auto valueΒ Β = mxINT16_CLASS
- static constexpr static auto nameΒ Β = "int16"
- static constexpr static auto flagsΒ Β = 0
-
template<>
struct vortex::storage::detail::matlab::array<int32_t> Public Static Attributes
- static constexpr static auto valueΒ Β = mxINT32_CLASS
- static constexpr static auto nameΒ Β = "int32"
- static constexpr static auto flagsΒ Β = 0
-
template<>
struct vortex::storage::detail::matlab::array<int64_t> Public Static Attributes
- static constexpr static auto valueΒ Β = mxINT64_CLASS
- static constexpr static auto nameΒ Β = "int64"
- static constexpr static auto flagsΒ Β = 0
-
template<>
struct vortex::storage::detail::matlab::array<int8_t> Public Static Attributes
- static constexpr static auto valueΒ Β = mxINT8_CLASS
- static constexpr static auto nameΒ Β = "int8"
- static constexpr static auto flagsΒ Β = 0
-
template<typename T>
struct vortex::storage::detail::matlab::array<std::complex<T>> Public Static Attributes
- static constexpr static auto valueΒ Β = array<T>::value
- static constexpr static auto flagsΒ Β = complex_flag
-
template<>
struct vortex::storage::detail::matlab::array<uint16_t> Public Static Attributes
- static constexpr static auto valueΒ Β = mxUINT16_CLASS
- static constexpr static auto nameΒ Β = "uint16"
- static constexpr static auto flagsΒ Β = 0
-
template<>
struct vortex::storage::detail::matlab::array<uint32_t> Public Static Attributes
- static constexpr static auto valueΒ Β = mxUINT32_CLASS
- static constexpr static auto nameΒ Β = "uint32"
- static constexpr static auto flagsΒ Β = 0
-
template<>
struct vortex::storage::detail::matlab::array<uint64_t> Public Static Attributes
- static constexpr static auto valueΒ Β = mxUINT64_CLASS
- static constexpr static auto nameΒ Β = "uint64"
- static constexpr static auto flagsΒ Β = 0
-
template<>
struct vortex::storage::detail::matlab::array<uint8_t> Public Static Attributes
- static constexpr static auto valueΒ Β = mxUINT8_CLASS
- static constexpr static auto nameΒ Β = "uint8"
- static constexpr static auto flagsΒ Β = 0
-
template<typename element_t>
struct ascan_stack_storage : public vortex::endpoint::detail::stack_storage<stack_format_executor_t, simple_stack_t<element_t>, detail::select_ascans_t>
-
template<typename element_t>
struct ascan_stream_storage : public vortex::endpoint::detail::stream_storage<simple_stream_t<element_t>, detail::select_ascans_t>
-
struct vortex::acquire::option::auxio_clock_out_t
Public Functions
-
template<typename board_t>
inline void apply(board_t &board, std::shared_ptr<spdlog::logger> &log) const
-
inline bool operator==(const auxio_clock_out_t &o) const
-
template<typename board_t>
-
struct vortex::acquire::option::auxio_pacer_out_t
Public Functions
-
template<typename board_t>
inline void apply(board_t &board, std::shared_ptr<spdlog::logger> &log) const
-
inline bool operator==(const auxio_pacer_out_t &o) const
Public Members
-
U32 divider = 2
-
template<typename board_t>
-
struct vortex::acquire::option::auxio_trigger_out_t
Public Functions
-
template<typename board_t>
inline void apply(board_t &board, std::shared_ptr<spdlog::logger> &log) const
-
inline bool operator==(const auxio_trigger_out_t &o) const
-
template<typename board_t>
-
struct balance_t
-
struct vortex::engine::adapter::detail::base
Subclassed by vortex::engine::adapter< block_t >::acquisition, vortex::engine::adapter< block_t >::endpoint, vortex::engine::adapter< block_t >::formatter, vortex::engine::adapter< block_t >::io, vortex::engine::adapter< block_t >::processor
Public Functions
-
template<typename T>
inline base(const T *target)
-
inline bool operator==(const base &o) const
-
inline bool operator<(const base &o) const
Private Members
-
const void *_target
-
template<typename T>
-
struct vortex::marker::detail::base
Subclassed by vortex::marker::active_lines, vortex::marker::event, vortex::marker::inactive_lines, vortex::marker::scan_boundary, vortex::marker::segment_boundary, vortex::marker::volume_boundary
Public Functions
-
inline base()
-
inline base(counter_t sample_)
-
auto operator<=>(const base &o) const = default
Public Members
-
counter_t sample
-
inline base()
-
struct base_t
-
struct vortex::io::detail::base_t
Subclassed by vortex::io::detail::analog_t, vortex::io::detail::digital_t
Public Functions
-
inline bool operator==(const base_t &o) const
Public Members
-
size_t stream = 0
-
size_t channel = 0
-
inline bool operator==(const base_t &o) const
-
template<typename T, typename shape_t, typename stride_t>
class vortex::detail::base_view_t -
Public Functions
-
inline auto valid() const
-
inline auto data() const
-
template<typename List>
inline auto data(const List &idxs) const
-
inline auto data(const std::initializer_list<size_t> &idxs) const
-
template<typename List>
inline auto offset(const List &idxs) const
-
inline auto offset(const std::initializer_list<size_t> &idxs) const
-
inline auto count() const
-
inline auto size_in_bytes() const
-
inline const auto &shape() const
-
inline auto shape(size_t idx) const
-
inline const auto &stride() const
-
inline auto stride(size_t idx) const
-
inline auto stride_in_bytes(size_t idx) const
-
inline auto stride_in_bytes() const
-
inline auto shape_and_stride() const
-
inline auto dimension() const
-
inline auto valid() const
-
template<typename acquire_element_t_, typename process_element_t_, typename analog_element_t_, typename digital_element_t_>
struct vortex::engine::block_t Public Types
-
enum stream_index_t
Values:
-
enumerator galvo_target
-
enumerator sample_target
-
enumerator galvo_actual
-
enumerator sample_actual
-
enumerator strobes
-
enumerator galvo_target
-
using acquire_element_t = acquire_element_t_
-
using process_element_t = process_element_t_
-
using analog_element_t = analog_element_t_
-
using digital_element_t = digital_element_t_
-
using id_t = size_t
-
using marker_t = default_marker_t
-
using spectra_stream_t = std::variant<sync::lockable<cuda::cuda_device_tensor_t<acquire_element_t>>, sync::lockable<cuda::cuda_host_tensor_t<acquire_element_t>>>
-
using ascan_stream_t = std::variant<sync::lockable<cuda::cuda_device_tensor_t<process_element_t>>, sync::lockable<cuda::cuda_host_tensor_t<process_element_t>>>
-
using scan_stream_t = sync::lockable<cuda::cuda_host_tensor_t<analog_element_t>>
-
using strobe_stream_t = sync::lockable<cpu_tensor_t<digital_element_t>>
Public Functions
-
inline auto streams(size_t lead_samples = 0)
-
inline auto streams(size_t lead_samples = 0) const
Public Members
-
size_t id
-
time_t timestamp
-
counter_t sample
-
size_t length
-
std::vector<spectra_stream_t> spectra
-
std::vector<ascan_stream_t> ascans
-
std::unordered_map<size_t, scan_stream_t> galvo_target
-
scan_stream_t sample_target
-
scan_stream_t galvo_actual
-
scan_stream_t sample_actual
-
std::unordered_map<size_t, strobe_stream_t> strobes
-
enum stream_index_t
-
class vortex::alazar::board_t
Public Functions
-
board_t()
-
board_t(U32 system_index, U32 board_index)
-
~board_t()
-
const info_t &info() const
-
const HANDLE &handle() const
-
void configure_clock_external(float level_ratio = 0.5f, coupling_t coupling = coupling_t::AC, clock_edge_t clock_edge = clock_edge_t::rising, U32 decimation = 0)
-
void configure_clock_internal(size_t samples_per_second, U32 decimation = 0)
-
void configure_single_trigger_external(size_t range_millivolts = trigger_range_TTL, float level_ratio = 0.0f, size_t delay_samples = 0, trigger_slope_t slope = trigger_slope_t::positive, coupling_t coupling = coupling_t::DC)
-
void configure_dual_trigger_external(size_t range_millivolts = trigger_range_TTL, float level_ratio_first = 0.0f, float level_ratio_second = 0.0f, size_t delay_samples = 0, trigger_slope_t slope_first = trigger_slope_t::positive, coupling_t coupling = coupling_t::DC)
-
void configure_input(channel_t channel, coupling_t coupling = coupling_t::DC, size_t range_millivolts = 400, size_t impedance_ohms = 50)
-
void configure_auxio_trigger_out()
-
void configure_auxio_clock_out()
-
void configure_auxio_pacer_out(U32 divider = 2)
-
void configure_fft_window(U32 samples_per_record, const std::complex<float> *window)
-
void configure_fft_window(U32 samples_per_record, float *real = nullptr, float *imaginary = nullptr)
-
void configure_fft_background_subtraction(U32 samples_per_record = 0, const S16 *background_record = nullptr)
-
void configure_sample_skipping(U32 clocks_per_record = 0, U16 *sample_bitmap = nullptr)
-
void configure_capture(channel_t channels, U32 samples_per_record, U32 records_per_buffer, U32 records_per_acquisition = infinite_acquisition, long transfer_offset = 0)
-
void configure_capture_fft(channel_t channels, U32 samples_per_record, U32 records_per_buffer, U32 fft_length, U32 output_format, long transfer_offset = 0)
-
void start_capture()
-
void stop_capture()
-
void post_buffer(void *ptr, size_t size_in_bytes)
-
void wait_buffer(void *ptr)
-
void wait_buffer(void *ptr, const std::chrono::milliseconds &timeout)
-
void set_dual_edge_sampling(U8 channel_mask, bool enable)
-
void set_ignore_bad_clock(bool enable, double good_seconds = 0.0, double bad_seconds = 0.0)
-
double buffer_bytes_per_sample() const
-
size_t samples_per_record() const
-
size_t record_capture_count() const
-
size_t pending_buffer_count() const
-
bool valid() const
-
bool running() const
Protected Functions
-
U32 _capture_flags() const
-
void _configure_external_trigger(size_t range_millivolts, size_t delay_samples, coupling_t coupling)
-
RETURN_CODE _dsp_aware_abort_capture()
-
RETURN_CODE _dsp_aware_wait_buffer(void *buffer, U32 timeout_ms)
Protected Attributes
-
bool _started = false
-
bool _dsp_active = false
-
HANDLE _handle = NULL
-
info_t _info = {0}
-
board_t()
-
template<typename config_t>
class vortex::format::broct_format_executor_t : public vortex::format::stack_format_executor_t<config_t> Public Types
-
using base_t = stack_format_executor_t<config_t>
Public Functions
-
template<typename V1, typename V2>
inline void execute(const cpu_viewable<V1> &volume_buffer_, const cpu_viewable<V2> &block_buffer_, const action::copy &action) const
-
using base_t = stack_format_executor_t<config_t>
-
struct broct_storage : public vortex::endpoint::detail::stack_storage<broct_format_executor_t, broct_storage_t, detail::select_ascans_t, detail::broct_volume_shape_t>
-
struct vortex::storage::broct_storage_config_t
Public Functions
-
inline size_t &samples_per_ascan()
-
inline const size_t &samples_per_ascan() const
-
inline size_t &ascans_per_bscan()
-
inline const size_t &ascans_per_bscan() const
-
inline size_t &bscans_per_volume()
-
inline const size_t &bscans_per_volume() const
-
inline auto broct_volume_shape() const
-
inline auto broct_bscan_shape() const
Public Members
-
std::string path
-
std::array<size_t, 3> shape = {{0, 0, 0}}
-
std::array<double, 3> dimensions = {{1.0, 1.0, 1.0}}
-
broct_scan_t scan_type = broct_scan_t::rectangular
-
std::string notes
-
bool buffering = false
-
inline size_t &samples_per_ascan()
-
template<typename config_t_>
class vortex::storage::broct_storage_t -
Public Functions
-
inline broct_storage_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~broct_storage_t()
-
inline const auto &config() const
-
inline virtual void open(config_t config)
-
inline virtual void seek(size_t volume_index, size_t bscan_index)
-
template<typename V>
inline void write_bscan(size_t index, const cpu_viewable<V> &bscan_)
-
template<typename V>
inline void write_multi_bscan(size_t index, const cpu_viewable<V> &chunk_)
-
template<typename V>
inline void write_partial_bscan(size_t bscan_index, size_t ascan_index, const cpu_viewable<V> &chunk_)
-
template<typename V>
inline void write_volume(const cpu_viewable<V> &volume_)
-
inline virtual void advance_volume(bool allocate = true)
-
inline virtual void close()
-
inline virtual bool ready() const
Protected Functions
-
inline size_t _volume_size_in_bytes()
-
inline size_t _bscan_size_in_bytes()
-
inline broct_storage_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
struct vortex::endpoint::detail::broct_volume_shape_t
Public Static Functions
-
template<typename config_t>
static inline auto shape(const config_t &config)
-
template<typename config_t>
-
template<typename ...Args>
class vortex::util::completion_worker_pool_t Public Types
-
using setup_task_t = std::function<void(size_t)>
Public Functions
-
inline completion_worker_pool_t()
-
inline completion_worker_pool_t(const std::string &prefix, size_t n = 0, setup_task_t &&setup_task = {}, std::shared_ptr<spdlog::logger> log = nullptr)
-
inline ~completion_worker_pool_t()
-
inline void post(work_t &&work, callback_t &&callback)
-
inline void wait_finish()
-
using setup_task_t = std::function<void(size_t)>
-
struct vortex::format::action::copy
Public Functions
-
auto operator<=>(const copy&) const = default
Public Members
-
size_t count
-
size_t block_offset
-
size_t buffer_segment
-
size_t buffer_record
-
bool reverse
-
auto operator<=>(const copy&) const = default
-
struct vortex::process::copy_processor_config_t
Public Functions
-
inline std::array<size_t, 3> input_shape() const
-
inline size_t &records_per_block()
-
inline const size_t &records_per_block() const
-
inline size_t &samples_per_record()
-
inline const size_t &samples_per_record() const
-
inline size_t channels_per_sample() const
-
inline std::array<size_t, 3> output_shape() const
-
inline size_t &ascans_per_block()
-
inline const size_t &ascans_per_block() const
-
inline size_t samples_per_ascan() const
-
inline virtual void validate() const
Protected Attributes
-
size_t _ascans_per_block = 1000
-
size_t _samples_per_record = 1000
-
inline std::array<size_t, 3> input_shape() const
-
template<typename input_element_t_, typename output_element_t_, typename config_t_>
class vortex::process::copy_processor_t Public Types
-
using base_t = processor_t<config_t_>
-
using config_t = config_t_
-
using input_element_t = input_element_t_
-
using output_element_t = output_element_t_
Public Functions
-
inline copy_processor_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~copy_processor_t()
-
inline virtual void initialize(config_t config)
-
inline virtual void change(config_t new_config)
-
inline const auto &config() const
-
template<typename V1, typename V2>
inline void next(const cpu_viewable<V1> &input_buffer, const cpu_viewable<V2> &output_buffer)
-
template<typename V1, typename V2>
inline void next(size_t id, const cpu_viewable<V1> &input_buffer, const cpu_viewable<V2> &output_buffer)
-
template<typename V1, typename V2>
inline void next_async(const cpu_viewable<V1> &input_buffer, const cpu_viewable<V2> &output_buffer, callback_t &&callback)
-
template<typename V1, typename V2>
inline void next_async(size_t id, const cpu_viewable<V1> &input_buffer_, const cpu_viewable<V2> &output_buffer_, callback_t &&callback)
Protected Types
-
using job_t = std::function<void()>
Protected Functions
-
template<typename V1, typename V2>
inline auto _process(size_t id, const cpu_viewable<V1> &input_buffer_, const cpu_viewable<V2> &output_buffer_)
-
using base_t = processor_t<config_t_>
-
class vortex::sync::counter_t
Public Functions
-
counter_t(size_t initial = 0)
-
void set(size_t value)
-
void operator++(int)
-
void operator--(int)
-
void increment()
-
bool decrement()
-
size_t query() const
-
bool wait(size_t value = 0) const
-
void finish()
-
counter_t(size_t initial = 0)
-
template<typename config_t_, typename input_assignment_t_, typename output_assignment_t_>
class vortex::process::cpu_processor_t : private vortex::process::processor_t<config_t_> Public Types
-
using config_t = config_t_
-
using input_assignment_t = input_assignment_t_
-
using output_assignment_t = output_assignment_t_
-
using input_element_t = typename input_assignment_t::element_t
-
using output_element_t = typename output_assignment_t::element_t
-
using block_t = typename input_assignment_t::block_t
Public Functions
-
inline virtual ~cpu_processor_t()
-
inline virtual void initialize(config_t config)
-
inline virtual void change(config_t &new_config)
-
inline virtual void next(block_t &block)
-
inline virtual void next_async(block_t *block)
-
inline virtual void next_async(block_t *block, callback_t &&callback)
Protected Functions
-
inline void _recalculate()
-
inline void _shutdown_workers()
-
inline virtual void _process_block(slot_t &slot, block_t &block, bool append_history)
-
inline void _worker_loop()
Protected Attributes
-
std::thread _worker
-
std::mutex _slot_mutex
-
slot_t _slot
-
xt::xtensor<output_element_t, 1> _resample_before_weight
-
xt::xtensor<output_element_t, 1> _resample_after_weight
-
xt::xtensor<ptrdiff_t, 1> _resample_before_index
-
xt::xtensor<ptrdiff_t, 1> _resample_after_index
-
std::mutex _average_ascan_mutex
-
xt::xtensor<output_element_t, 2> _average_ascan
-
size_t _average_ascan_index
-
size_t _average_ascan_count
-
fft::fftw_plan_t<output_element_t> _ifft
-
std::shared_mutex _config_mutex
-
using config_t = config_t_
-
template<typename tensor_t, typename executor_t>
struct vortex::endpoint::detail::cpu_tensor : public vortex::endpoint::detail::notify -
Public Functions
-
inline cpu_tensor(std::shared_ptr<executor_t> executor, std::vector<size_t> shape, std::shared_ptr<spdlog::logger> log = nullptr)
-
template<size_t N>
inline cpu_tensor(std::shared_ptr<executor_t> executor, const std::array<size_t, N> &shape, std::shared_ptr<spdlog::logger> log = nullptr)
-
inline cpu_tensor(std::shared_ptr<executor_t> executor, std::shared_ptr<sync::lockable<tensor_t>> tensor, std::shared_ptr<spdlog::logger> log = nullptr)
-
inline const auto &tensor() const
-
inline const auto &executor() const
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
template<typename block_t, typename V1, typename V2>
inline void handle(const format::format_plan_t &plan, const block_t &block, const viewable<V1> &spectra, const cuda::cuda_viewable<V2> &ascans)
-
template<typename block_t, typename V1, typename V2>
inline void handle(const format::format_plan_t &plan, const block_t &block, const viewable<V1> &spectra, const cpu_viewable<V2> &ascans_)
Public Members
-
aggregate_segment_callback_t aggregate_segment_callback
-
update_callback_t update_callback
Protected Functions
-
template<typename Callback, typename ...Args>
inline void _notify(std::shared_ptr<spdlog::logger> log, const Callback &callback, Args&&... args)
-
inline void _default(std::shared_ptr<spdlog::logger> log, std::vector<size_t> &segments, const format::format_action_t &action)
Private Functions
-
inline void _check()
-
inline cpu_tensor(std::shared_ptr<executor_t> executor, std::vector<size_t> shape, std::shared_ptr<spdlog::logger> log = nullptr)
-
template<typename T>
class vortex::cpu_tensor_t : public vortex::detail::tensor_impl_t<T> Public Types
-
using element_t = T
Public Functions
-
inline cpu_tensor_t()
-
inline ~cpu_tensor_t()
-
inline cpu_tensor_t(cpu_tensor_t &&o)
-
inline cpu_tensor_t &operator=(cpu_tensor_t &&o)
-
inline virtual size_t underlying_count() const override
Protected Functions
-
inline virtual void _allocate(size_t count) override
-
using element_t = T
-
template<typename T>
class vortex::detail::cpu_view_t : public vortex::cpu_viewable<cpu_view_t<T>>, public vortex::detail::dynamic_view_t<T, fixed_cpu_view_t<T>, cpu_view_t<T>> Public Types
-
using base_t = detail::dynamic_view_t<T, fixed_cpu_view_t<T>, cpu_view_t<T>>
Public Functions
-
template<typename V>
inline cpu_view_t(const cpu_viewable<V> &other)
-
inline auto to_xt()
-
inline auto to_xt() const
-
using base_t = detail::dynamic_view_t<T, fixed_cpu_view_t<T>, cpu_view_t<T>>
-
template<typename T>
struct cuda_complex_t
-
template<>
struct vortex::cuda::detail::cuda_complex_t<double> Public Types
-
using type = cuDoubleComplex
-
using type = cuDoubleComplex
-
template<>
struct vortex::cuda::detail::cuda_complex_t<float> Public Types
-
using type = cuFloatComplex
-
using type = cuFloatComplex
-
template<typename T, typename executor_t, typename derived_t>
struct vortex::endpoint::detail::cuda_device_tensor_impl : public vortex::endpoint::detail::cuda_tensor_impl<executor_t, cuda::cuda_device_tensor_t<T>, derived_t> Subclassed by vortex::endpoint::detail::cuda_device_tensor_with_galvo_impl< T, position_format_executor_t, position_cuda_device_tensor< T > >, vortex::endpoint::detail::cuda_device_tensor_with_galvo_impl< T, spiral_format_executor_t, spiral_galvo_cuda_device_tensor< T > >, vortex::endpoint::detail::cuda_device_tensor_with_galvo_impl< T, executor_t, derived_t >
Public Types
-
using base_t = cuda_tensor_impl<executor_t, cuda::cuda_device_tensor_t<T>, derived_t>
Public Functions
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
template<typename block_t, typename V1, typename V2>
inline void handle(const format::format_plan_t &plan, const block_t &block, const viewable<V1> &spectra, const cpu_viewable<V2> &ascans)
-
template<typename block_t, typename V1, typename V2>
inline void handle(const format::format_plan_t &plan, const block_t &block, const viewable<V1> &spectra, const cuda::cuda_viewable<V2> &ascans_)
-
using base_t = cuda_tensor_impl<executor_t, cuda::cuda_device_tensor_t<T>, derived_t>
-
template<typename T>
class vortex::cuda::cuda_device_tensor_t : public vortex::detail::tensor_impl_t<T> Public Types
-
using element_t = T
Public Functions
-
inline cuda_device_tensor_t()
-
inline ~cuda_device_tensor_t()
-
inline cuda_device_tensor_t(cuda_device_tensor_t &&o)
-
inline cuda_device_tensor_t &operator=(cuda_device_tensor_t &&o)
-
inline bool is_accessible() const
-
inline bool is_accessible(device_t device2) const
-
inline const auto &device() const
-
inline virtual size_t underlying_count() const override
Protected Functions
-
inline virtual void _allocate(size_t count) override
-
inline void _release()
-
inline void _reset()
-
using element_t = T
-
template<typename T, typename executor_t, typename derived_t>
struct vortex::endpoint::detail::cuda_device_tensor_with_galvo_impl : public vortex::endpoint::detail::cuda_device_tensor_impl<T, executor_t, derived_t> Public Types
-
using base_t = cuda_device_tensor_impl<T, executor_t, derived_t>
Public Functions
-
template<typename block_t, typename V1, typename V2>
inline void handle(const format::format_plan_t &plan, const block_t &block, const viewable<V1> &spectra, const cpu_viewable<V2> &ascans)
-
template<typename block_t, typename V1, typename V2>
inline void handle(const format::format_plan_t &plan, const block_t &block, const viewable<V1> &spectra, const cuda::cuda_viewable<V2> &ascans_)
Protected Attributes
-
cuda::cuda_device_tensor_t<double> _sample_target
-
cuda::cuda_device_tensor_t<double> _sample_actual
-
using base_t = cuda_device_tensor_impl<T, executor_t, derived_t>
-
template<typename T, typename executor_t, typename derived_t>
struct vortex::endpoint::detail::cuda_host_tensor_impl : public vortex::endpoint::detail::cuda_tensor_impl<executor_t, cuda::cuda_host_tensor_t<T>, derived_t> Public Types
-
using base_t = cuda_tensor_impl<executor_t, cuda::cuda_host_tensor_t<T>, derived_t>
Public Functions
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
template<typename block_t, typename spectra_stream_t, typename ascan_stream_t>
inline void handle(const format::format_plan_t &plan, const block_t &block, const spectra_stream_t &spectra, const ascan_stream_t &ascans)
Protected Functions
-
inline void _transfer(std::vector<size_t> segments)
Protected Attributes
-
cuda::cuda_device_tensor_t<T> _device_buffer
-
using base_t = cuda_tensor_impl<executor_t, cuda::cuda_host_tensor_t<T>, derived_t>
-
template<typename T>
class vortex::cuda::cuda_host_tensor_t : public vortex::detail::tensor_impl_t<T> Subclassed by vortex::sync::lockable< cuda::cuda_host_tensor_t< analog_element_t > >
Public Types
-
using element_t = T
Public Functions
-
inline cuda_host_tensor_t()
-
inline ~cuda_host_tensor_t()
-
inline cuda_host_tensor_t(cuda_host_tensor_t &&o)
-
inline cuda_host_tensor_t &operator=(cuda_host_tensor_t &&o)
-
inline virtual size_t underlying_count() const override
Protected Functions
-
inline virtual void _allocate(size_t count) override
-
inline void _release()
-
inline void _reset()
Protected Attributes
-
size_t _count
-
using element_t = T
-
template<typename T>
struct vortex::process::cuda_processor_config_t : public vortex::process::processor_config_t<T> Public Types
-
using element_t = T
Public Functions
-
inline virtual void validate() override
Public Members
-
int device = 0
-
size_t slots = 2
-
using element_t = T
-
template<typename input_element_t_, typename output_element_t_, typename float_element_t_, typename index_element_t_, typename config_t_>
class vortex::process::cuda_processor_t : public vortex::process::processor_t<config_t_> Public Types
-
using base_t = processor_t<config_t_>
-
using config_t = config_t_
-
using input_element_t = input_element_t_
-
using output_element_t = output_element_t_
-
using float_element_t = float_element_t_
-
using index_element_t = index_element_t_
Public Functions
-
inline cuda_processor_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~cuda_processor_t()
-
inline virtual void initialize(config_t config)
-
inline virtual void change(config_t new_config)
-
template<typename V1, typename V2>
inline void next(const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, bool append_history = true)
-
template<typename V1, typename V2>
inline void next(size_t id, const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, bool append_history = true)
-
template<typename V1, typename V2>
inline void next_async(const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, callback_t &&callback)
-
template<typename V1, typename V2>
inline void next_async(size_t id, const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, callback_t &&callback)
-
template<typename V1, typename V2>
inline void next_async(const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, bool append_history, callback_t &&callback)
-
template<typename V1, typename V2>
inline void next_async(size_t id, const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, bool append_history, callback_t &&callback)
-
template<typename V1, typename V2>
inline void next_async(const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, const cuda::event_t *start_event, const cuda::event_t *done_event, callback_t &&callback)
-
template<typename V1, typename V2>
inline void next_async(size_t id, const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, const cuda::event_t *start_event, const cuda::event_t *done_event, callback_t &&callback)
-
template<typename V1, typename V2>
inline void next_async(const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, const cuda::event_t *start_event, const cuda::event_t *done_event, bool append_history, callback_t &&callback)
-
template<typename V1, typename V2>
inline void next_async(size_t id, const cuda::cuda_viewable<V1> &input_buffer, const cuda::cuda_viewable<V2> &output_buffer, const cuda::event_t *start_event, const cuda::event_t *done_event, bool append_history, callback_t &&callback)
Protected Types
-
using job_t = std::function<void()>
Protected Functions
-
inline void _recalculate(const config_t &prior, bool lightweight = true)
-
inline auto &_next_slot()
-
template<typename V1, typename V2>
inline auto _next_block(slot_t &slot, size_t id, const cuda::cuda_viewable<V1> &input_buffer_, const cuda::cuda_viewable<V2> &output_buffer_, const cuda::event_t *start_event, const cuda::event_t *done_event, bool append_history)
-
template<typename V1, typename V2>
inline auto _dispatch_block(slot_t &slot, size_t id, size_t count, const cuda::cuda_viewable<V1> &input_buffer_, const cuda::cuda_viewable<V2> &output_buffer_, const cuda::event_t *start_event, const cuda::event_t *done_event, bool append_history)
-
inline auto _wait_block(slot_t &slot, size_t id)
-
inline void _worker_loop()
-
template<typename T>
inline void _sync_with_device(const xt::xtensor<T, 1> &host, cuda::cuda_device_tensor_t<cuda::device_type<T>> &device)
Protected Attributes
-
std::shared_ptr<spdlog::logger> _log
-
std::thread _worker
-
std::mutex _mutex
-
size_t _next_slot_index = 0
-
std::vector<slot_t> _slots
-
size_t _fft_plan_length = 0
-
cuda::cuda_device_tensor_t<index_element_t> _resample_before_index
-
cuda::cuda_device_tensor_t<index_element_t> _resample_after_index
-
cuda::cuda_device_tensor_t<float_element_t> _resample_before_weight
-
cuda::cuda_device_tensor_t<float_element_t> _resample_after_weight
-
cuda::cuda_device_tensor_t<input_element_t> _average_record_buffer
-
cuda::cuda_device_tensor_t<float_element_t> _average_record
-
cuda::cuda_device_tensor_t<uint8_t> _average_internal_storage
-
size_t _average_record_index
-
size_t _average_record_count
-
cuda::cuda_device_tensor_t<cuda::complex<float_element_t>> _complex_filter
-
using base_t = processor_t<config_t_>
-
template<typename derived_t_>
struct vortex::endpoint::cuda_tensor : public vortex::endpoint::detail::notify Public Types
-
using derived_t = derived_t_
Public Functions
-
inline auto &derived_cast()
-
inline const auto &derived_cast() const
-
inline const auto &stream()
-
using derived_t = derived_t_
-
template<typename executor_t, typename tensor_t, typename derived_t>
struct vortex::endpoint::detail::cuda_tensor_impl : public vortex::endpoint::cuda_tensor<derived_t> Subclassed by vortex::endpoint::detail::cuda_device_tensor_impl< T, radial_format_executor_t, radial_cuda_device_tensor< T > >, vortex::endpoint::detail::cuda_device_tensor_impl< T, stack_format_executor_t, stack_cuda_device_tensor< T > >, vortex::endpoint::detail::cuda_host_tensor_impl< T, stack_format_executor_t, stack_cuda_host_tensor< T > >
Public Functions
-
inline cuda_tensor_impl(std::shared_ptr<executor_t> executor, std::vector<size_t> shape, std::shared_ptr<spdlog::logger> log = nullptr)
-
template<size_t N>
inline cuda_tensor_impl(std::shared_ptr<executor_t> executor, const std::array<size_t, N> &shape, std::shared_ptr<spdlog::logger> log = nullptr)
-
inline cuda_tensor_impl(std::shared_ptr<executor_t> executor, std::shared_ptr<sync::lockable<tensor_t>> tensor, std::shared_ptr<spdlog::logger> log = nullptr)
-
inline const auto &tensor() const
-
inline const auto &executor() const
Private Functions
-
inline void _check()
-
inline cuda_tensor_impl(std::shared_ptr<executor_t> executor, std::vector<size_t> shape, std::shared_ptr<spdlog::logger> log = nullptr)
-
template<>
struct vortex::cuda::detail::cuda_type_t<std::complex<double>> Public Types
-
using type = cuda_complex_t<double>::type
-
using type = cuda_complex_t<double>::type
-
template<>
struct vortex::cuda::detail::cuda_type_t<std::complex<float>> Public Types
-
using type = cuda_complex_t<float>::type
-
using type = cuda_complex_t<float>::type
-
template<typename T>
class vortex::cuda::detail::cuda_view_t : public vortex::cuda::cuda_viewable<cuda_view_t<T>>, public vortex::detail::dynamic_view_t<T, fixed_cuda_view_t<T>, cuda_view_t<T>> Public Types
-
using base_t = vortex::detail::dynamic_view_t<T, fixed_cuda_view_t<T>, cuda_view_t<T>>
Public Functions
-
inline cuda_view_t()
-
template<typename V>
inline cuda_view_t(const cuda_viewable<V> &other)
-
inline const auto &device() const
-
inline bool is_accessible() const
-
inline bool is_accessible(device_t device2) const
-
using base_t = vortex::detail::dynamic_view_t<T, fixed_cuda_view_t<T>, cuda_view_t<T>>
-
template<typename derived_t>
class cuda_viewable : public vortex::viewable<derived_t> Subclassed by vortex::alazar::alazar_viewable< alazar_view_t< T > >, vortex::alazar::alazar_viewable< derived_t >
-
template<typename channel_t_>
struct vortex::io::daqmx_config_t Public Types
-
using channel_t = channel_t_
Public Functions
-
inline size_t &samples_per_second()
-
inline const size_t &samples_per_second() const
-
inline size_t &samples_per_block()
-
inline const size_t &samples_per_block() const
-
inline void validate()
Public Members
-
std::string name =
"unknown"
-
std::string source =
"pfi0"
-
size_t divisor = 1
-
struct vortex::io::daqmx_config_t::[anonymous] clock
-
size_t blocks_to_buffer = 1
-
bool stop_on_error = true
Protected Functions
-
inline bool _port_name_contains_multiple_channels(const std::string &s)
Protected Attributes
-
size_t _samples_per_block = 100
- size_t _samples_per_secondΒ Β = 100'000
-
using channel_t = channel_t_
-
template<typename config_t_>
class vortex::io::daqmx_io_t Public Types
-
using config_t = config_t_
-
using analog_element_t = float64
-
using digital_element_t = uInt32
Public Functions
-
inline daqmx_io_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~daqmx_io_t()
-
inline const config_t &config() const
-
inline void initialize(config_t config)
-
template<typename ...Vs, typename = typename std::enable_if_t<(is_cpu_viewable<Vs> && ...)>>
inline size_t next(size_t count, const std::tuple<Vs...> &streams)
-
template<typename ...Vs, typename = typename std::enable_if_t<(is_cpu_viewable<Vs> && ...)>>
inline size_t next(size_t id, size_t count, const std::tuple<Vs...> &streams)
-
template<typename ...Vs, typename = typename std::enable_if_t<(is_cpu_viewable<Vs> && ...)>>
inline void next_async(size_t count, const std::tuple<Vs...> &streams, callback_t &&callback)
-
template<typename ...Vs, typename = typename std::enable_if_t<(is_cpu_viewable<Vs> && ...)>>
inline void next_async(size_t id, size_t count, const std::tuple<Vs...> &streams, callback_t &&callback)
-
inline void prepare()
-
inline void start()
-
inline void stop()
-
inline bool running() const
Protected Types
-
using job_t = std::function<void()>
Protected Functions
-
template<typename ...Vs>
inline auto _next_block(size_t id, size_t count, const std::tuple<Vs...> &streams)
-
template<typename ...Vs>
inline size_t _process_block(size_t id, size_t count, const std::tuple<Vs...> &streams)
-
inline void _worker_loop()
-
template<typename B>
inline void _check_buffer(const B &buffer, size_t samples, size_t channel)
Protected Attributes
-
std::shared_ptr<spdlog::logger> _log
-
std::atomic_bool _abort = false
-
std::thread _worker
-
xt::xtensor<analog_element_t, 2> _analog_output_buffer
-
xt::xtensor<analog_element_t, 2> _analog_input_buffer
-
xt::xtensor<digital_element_t, 2> _digital_output_buffer
-
xt::xtensor<digital_element_t, 2> _digital_input_buffer
-
std::mutex _mutex
-
config_t _config
-
using config_t = config_t_
-
class vortex::daqmx::daqmx_t
Public Functions
-
daqmx_t()
-
daqmx_t(std::string task_name)
-
daqmx_t(const daqmx_t &other) = delete
-
daqmx_t(daqmx_t &&other)
-
virtual ~daqmx_t()
-
void create_digital_output(const std::string &line_name)
-
void create_digital_input(const std::string &line_name)
-
void create_analog_voltage_output(const std::string &port_name, float64 min, float64 max)
-
void create_analog_voltage_input(const std::string &port_name, float64 min, float64 max, terminal_t terminal = terminal_t::referenced)
-
void configure_sample_clock(const std::string &source, sample_mode_t sample_mode, size_t samples_per_second, size_t samples_per_channel, size_t divisor = 1, edge_t edge = edge_t::rising)
-
void set_output_buffer_size(size_t samples_per_channel)
-
void set_input_buffer_size(size_t samples_per_channel)
-
void set_regeneration(bool enable)
-
void write_analog(size_t samples_per_channel, const xt::xtensor<float64, 2> &buffer)
-
void write_analog(size_t samples_per_channel, const xt::xtensor<float64, 2> &buffer, const seconds &timeout)
-
void write_digital(size_t samples_per_channel, const xt::xtensor<uInt32, 2> &buffer)
-
void write_digital(size_t samples_per_channel, const xt::xtensor<uInt32, 2> &buffer, const seconds &timeout)
-
void read_analog(size_t samples_per_channel, xt::xtensor<float64, 2> &buffer)
-
void read_analog(size_t samples_per_channel, xt::xtensor<float64, 2> &buffer, const seconds &timeout)
-
void read_digital(size_t samples_per_channel, xt::xtensor<uInt32, 2> &buffer)
-
void read_digital(size_t samples_per_channel, xt::xtensor<uInt32, 2> &buffer, const seconds &timeout)
-
void start_task()
-
void stop_task()
-
void clear_task()
-
bool valid() const
-
const std::string &name() const
-
TaskHandle handle() const
-
bool running() const
-
daqmx_t()
-
template<typename T>
struct datatype_helper
-
template<>
struct vortex::storage::detail::datatype_helper<double> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
template<>
struct vortex::storage::detail::datatype_helper<float> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
template<>
struct vortex::storage::detail::datatype_helper<int16_t> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
template<>
struct vortex::storage::detail::datatype_helper<int32_t> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
template<>
struct vortex::storage::detail::datatype_helper<int64_t> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
template<>
struct vortex::storage::detail::datatype_helper<int8_t> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
template<>
struct vortex::storage::detail::datatype_helper<uint16_t> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
template<>
struct vortex::storage::detail::datatype_helper<uint32_t> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
template<>
struct vortex::storage::detail::datatype_helper<uint64_t> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
template<>
struct vortex::storage::detail::datatype_helper<uint8_t> Public Static Functions
-
static inline auto value()
-
static inline auto value()
-
struct vortex::endpoint::detail::default_volume_shape_t
Public Static Functions
-
template<typename config_t>
static inline auto shape(const config_t &config)
-
template<typename config_t>
-
struct detail
-
template<typename T>
class device_array_t
-
struct vortex::acquire::detail::alazar_config_t::device_t
Public Members
-
U32 system_index = 1
-
U32 board_index = 1
-
U32 system_index = 1
-
struct vortex::io::detail::digital_t : public vortex::io::detail::base_t
Subclassed by vortex::io::channel::digital_input_t, vortex::io::channel::digital_output_t
Public Functions
-
inline bool operator==(const digital_t &o) const
Public Members
-
std::string line_name
Public Static Attributes
-
static const size_t max_bits = 32
-
inline bool operator==(const digital_t &o) const
-
struct vortex::acquire::dso_config_t
Subclassed by vortex::acquire::detail::alazar_config_t< clock_t, trigger_t, option_t >, vortex::acquire::detail::alazar_config_t< clock_t_, trigger_t_, option_t_ >
Public Functions
-
inline virtual ~dso_config_t()
-
inline virtual std::array<size_t, 3> shape() const
-
inline virtual size_t channels_per_sample() const
-
inline size_t &samples_per_record()
-
inline const size_t &samples_per_record() const
-
inline size_t &records_per_block()
-
inline const size_t &records_per_block() const
Protected Attributes
-
size_t _samples_per_record = 1024
-
size_t _records_per_block = 1000
-
inline virtual ~dso_config_t()
-
struct vortex::alazar::board_t::info_t::dsp_t
Public Functions
-
double max_trigger_rate_per_fft_length(U32 fft_length) const
-
double max_trigger_rate_per_fft_length(U32 fft_length) const
-
template<typename T>
struct dtype
-
template<>
struct vortex::storage::detail::numpy::dtype<double> Public Static Attributes
- static constexpr static auto nameΒ Β = "float64"
-
template<>
struct vortex::storage::detail::numpy::dtype<float> Public Static Attributes
- static constexpr static auto nameΒ Β = "float32"
-
template<>
struct vortex::storage::detail::numpy::dtype<int16_t> Public Static Attributes
- static constexpr static auto nameΒ Β = "int16"
-
template<>
struct vortex::storage::detail::numpy::dtype<int32_t> Public Static Attributes
- static constexpr static auto nameΒ Β = "int32"
-
template<>
struct vortex::storage::detail::numpy::dtype<int64_t> Public Static Attributes
- static constexpr static auto nameΒ Β = "int64"
-
template<>
struct vortex::storage::detail::numpy::dtype<int8_t> Public Static Attributes
- static constexpr static auto nameΒ Β = "int8"
-
template<>
struct vortex::storage::detail::numpy::dtype<std::complex<double>> Public Static Attributes
- static constexpr static auto nameΒ Β = "complex128"
-
template<>
struct vortex::storage::detail::numpy::dtype<std::complex<float>> Public Static Attributes
- static constexpr static auto nameΒ Β = "complex64"
-
template<>
struct vortex::storage::detail::numpy::dtype<uint16_t> Public Static Attributes
- static constexpr static auto nameΒ Β = "uint16"
-
template<>
struct vortex::storage::detail::numpy::dtype<uint32_t> Public Static Attributes
- static constexpr static auto nameΒ Β = "uint32"
-
template<>
struct vortex::storage::detail::numpy::dtype<uint64_t> Public Static Attributes
- static constexpr static auto nameΒ Β = "uint64"
-
template<>
struct vortex::storage::detail::numpy::dtype<uint8_t> Public Static Attributes
- static constexpr static auto nameΒ Β = "uint8"
-
struct vortex::acquire::trigger::dual_external_t
Public Functions
Public Members
-
size_t range_millivolts = 2500
-
std::array<float, 2> level_ratios = {0.09f, 0.09f}
-
size_t delay_samples = 80
-
alazar::trigger_slope_t initial_slope = alazar::trigger_slope_t::positive
-
alazar::coupling_t coupling = alazar::coupling_t::DC
-
size_t range_millivolts = 2500
-
template<typename T, typename static_t_, typename dynamic_t>
class vortex::detail::dynamic_view_t : public vortex::detail::base_view_t<T, xt::svector<size_t>, xt::svector<ptrdiff_t>> Public Functions
-
inline dynamic_view_t()
-
inline auto index(std::initializer_list<size_t> idx) const
-
inline auto range(size_t end) const
-
inline auto range(size_t start, size_t end) const
-
inline auto morph_right(size_t dim) const
-
inline bool is_contiguous() const
Protected Types
-
using base_t = base_view_t<T, xt::svector<size_t>, xt::svector<ptrdiff_t>>
-
inline dynamic_view_t()
-
template<typename block_t_, typename warp_t>
struct vortex::engine::engine_config_t -
Public Functions
- template<typename A, typename... Ns, typename = typename std::enable_if_t<std::tuple_size_v<std::tuple<Ns...>> >= 2> inline void add_acquisition (std::shared_ptr< A > &acquire, bool preload, bool master, Ns &&... nodes)
-
template<typename A, typename P>
inline void add_acquisition(std::shared_ptr<A> &acquire, bool preload, bool master, std::shared_ptr<P> &process)
-
template<typename A>
inline void add_acquisition(std::shared_ptr<A> &acquire, bool preload, bool master, process_graph_t graph)
-
template<typename P, typename ...Fs>
inline void add_processor(const std::shared_ptr<P> &processor, const std::shared_ptr<Fs>&... formatters)
-
template<typename F, typename ...EPs>
inline void add_formatter(const std::shared_ptr<F> &formatter, const std::shared_ptr<EPs>&... endpoints)
-
template<typename T>
inline void add_io(std::shared_ptr<T> &io, bool preload = true, bool master = false, size_t lead_samples = 0)
-
inline void validate()
Public Members
-
size_t records_per_block = 1000
-
size_t blocks_to_allocate = 4
-
size_t preload_count = 2
-
size_t blocks_to_acquire = 0
-
size_t post_scan_records = 0
-
size_t galvo_output_channels = 2
-
size_t galvo_input_channels = 2
Public Static Functions
-
template<typename ...Ns>
static inline auto divide(Ns&... nodes)
-
template<typename ...Ns>
static inline auto cycle(Ns&... nodes)
Protected Static Functions
-
template<typename N, typename ...Ns, typename = typename std::enable_if_t<std::is_same_v<std::decay_t<N>, node> || std::is_same_v<std::decay_t<N>, divide_t> || std::is_same_v<std::decay_t<N>, cycle_t>>>
static inline void _bind_to_graph(std::vector<node> &subgraph, N &head, Ns&... rest)
-
template<typename P, typename ...Ns>
static inline void _bind_to_graph(std::vector<node> &subgraph, std::shared_ptr<P> &head, Ns&... rest)
-
template<typename T, typename ...Ts>
static inline auto _bind_to_set(format_graph_t &graph, T &head, Ts&... rest)
-
template<typename T, typename ...Ts>
static inline auto _bind_to_set(endpoint_graph_t &graph, T &head, Ts&... rest)
-
template<typename G>
static inline auto _bind_to_set(G&)
-
template<typename block_t>
struct vortex::engine::detail::engine_plan_t Public Types
-
using spectra_stream_t = typename block_t::spectra_stream_t
-
using acquire_element_t = typename block_t::acquire_element_t
-
using spectra_stream_factory_t = typename adapter::spectra_stream_factory_t
-
using ascan_stream_factory_t = typename adapter::ascan_stream_factory_t
-
using shape_t = typename adapter::shape_t
-
using channels_t = std::vector<size_t>
Public Functions
-
inline engine_plan_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline size_t allocate_spectra_buffer(bool elide, const typename adapter::acquisition &acquisition, spectra_stream_factory_t factory, const std::optional<cuda::device_t> &device, channels_t channels, shape_t shape)
-
inline size_t allocate_ascan_buffer(ascan_stream_factory_t factory, const std::optional<cuda::device_t> &device, shape_t shape)
-
using spectra_stream_t = typename block_t::spectra_stream_t
-
struct vortex::engine::engine_t::engine_status
Public Members
-
bool active
-
size_t dispatched_blocks = 0
-
size_t inflight_blocks = 0
-
double dispatch_completion = 0
-
double block_utilization = 0
-
bool active
-
template<typename config_t_>
class vortex::engine::engine_t Public Types
-
using config_t = config_t_
-
using block_t = typename config_t::block_t
-
using acquisition_t = typename adapter::acquisition
-
using processor_t = typename adapter::processor
-
using io_t = typename adapter::io
-
using formatter_t = typename adapter::formatter
-
using endpoint_t = typename adapter::endpoint
-
using acquire_element_t = typename block_t::acquire_element_t
-
using process_element_t = typename block_t::process_element_t
-
using analog_element_t = typename block_t::analog_element_t
-
using digital_elment_t = typename block_t::digital_element_t
-
using process_sets = typename master_plan_t::processor_sets
-
using scan_queue_t = scan_queue_t<typename block_t::scan_stream_t::element_t, typename block_t::marker_t>
Public Functions
-
inline engine_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~engine_t()
-
inline void initialize(config_t config)
-
inline auto &scan_queue()
-
inline const auto &scan_queue() const
-
inline void prepare()
-
inline void start()
-
inline void wait() const
-
inline auto wait_for(const std::chrono::high_resolution_clock::duration &timeout) const
-
inline auto done() const
-
inline void stop()
-
inline auto status() const
-
inline const auto &config() const
-
inline void set_event_callback(event_callback_t &&callback)
-
inline const auto &event_callback() const
-
inline void set_job_callback(job_callback_t &&callback)
-
inline const auto &job_callback() const
Protected Types
-
using session_t = detail::session_t<config_t, master_plan_t, scan_queue_t, block_t>
Protected Functions
-
inline auto _expand_acquire_graph(typename config_t::node &c)
-
inline void _plan_acquire(const acquisition_t &acquire, typename config_t::node &nodes)
-
inline std::optional<cuda::device_t> _choose_endpoint_device(const endpoint_t &endpoint)
-
inline void _handle_abort() const
-
template<typename stream_t, typename descriptor_t>
inline void _allocate_stream(const descriptor_t &desc, stream_t &stream_)
-
inline void _allocate_blocks()
-
inline void _release_blocks()
Protected Attributes
-
std::shared_ptr<scan_queue_t> _scan_queue
-
std::shared_ptr<spdlog::logger> _log
-
config_t _config
-
master_plan_t _master_plan
-
event_callback_t _event_callback
-
job_callback_t _job_callback
-
mutable std::exception_ptr _aborting_exception
-
mutable std::mutex _mutex
-
using config_t = config_t_
-
struct vortex::format::action::event
Public Functions
-
auto operator<=>(const event&) const = default
-
auto operator<=>(const event&) const = default
-
struct vortex::marker::event : public vortex::marker::detail::base
Public Types
-
using eid_t = size_t
Public Functions
-
inline event()
-
inline event(counter_t sample)
-
auto operator<=>(const event&) const = default
Public Members
-
eid_t id
-
using eid_t = size_t
-
class vortex::cuda::event_t
Public Functions
-
event_t(unsigned int flags = cudaEventDefault)
-
~event_t()
-
void sync() const
-
bool done() const
-
void record()
-
void record(const stream_t &stream)
-
float elapsed(const event_t &start) const
-
const cudaEvent_t &handle() const
Protected Attributes
-
cudaEvent_t _event
-
event_t(unsigned int flags = cudaEventDefault)
-
class vortex::sync::event_t
Public Functions
-
event_t(bool s = false)
-
void set()
-
void unset()
-
void change(bool s)
-
bool status() const
-
bool wait() const
-
bool wait_for(const std::chrono::high_resolution_clock::duration &timeout) const
-
void finish()
-
event_t(bool s = false)
-
class exception : public std::runtime_error
Subclassed by vortex::alazar::buffer_not_ready, vortex::alazar::buffer_overflow, vortex::alazar::unsupported_operation, vortex::alazar::wait_timeout
-
class exception : public std::runtime_error
-
class exception : public std::runtime_error
Subclassed by vortex::daqmx::buffer_overflow, vortex::daqmx::buffer_underflow, vortex::daqmx::incomplete_operation, vortex::daqmx::unsupported_operation, vortex::daqmx::wait_timeout
-
struct vortex::acquire::clock::external_t
Public Functions
Public Members
-
float level_ratio = 0.5f
-
alazar::coupling_t coupling = alazar::coupling_t::AC
-
alazar::clock_edge_t edge = alazar::clock_edge_t::rising
-
bool dual = false
-
float level_ratio = 0.5f
-
template<typename T>
class vortex::cuda::fft_plan_t Public Functions
-
inline fft_plan_t()
-
inline ~fft_plan_t()
-
fft_plan_t(const fft_plan_t&) = delete
-
fft_plan_t &operator=(const fft_plan_t&) = delete
-
inline fft_plan_t(fft_plan_t &&o)
-
inline fft_plan_t &operator=(fft_plan_t &&o)
-
inline void execute(const cuda_view_t<complex<T>> &in, const cuda_view_t<complex<T>> &out, bool forward)
-
inline void destroy()
-
inline bool valid() const
Protected Functions
-
inline void _reset()
Protected Attributes
-
cufftHandle _plan = 0
-
inline fft_plan_t()
-
template<typename T>
class vortex::fft::fftw_plan_t -
Public Functions
-
inline fftw_plan_t()
-
inline ~fftw_plan_t()
-
fftw_plan_t(const fftw_plan_t&) = delete
-
fftw_plan_t &operator=(const fftw_plan_t&) = delete
-
inline fftw_plan_t(fftw_plan_t &&o)
-
inline fftw_plan_t &operator=(fftw_plan_t &&o)
-
inline void forward(int count, const std::pair<int, int> stride, const std::pair<int, int> &offset, const std::vector<int> &n, complex_t *in, complex_t *out, int flags = FFTW_PRESERVE_INPUT | FFTW_MEASURE)
-
inline void inverse(int count, const std::pair<int, int> stride, const std::pair<int, int> &offset, const std::vector<int> &n, complex_t *in, complex_t *out, int flags = FFTW_PRESERVE_INPUT | FFTW_MEASURE)
-
inline void create(bool forward, int count, const std::pair<int, int> stride, const std::pair<int, int> &offset, const std::vector<int> &n, complex_t *in, complex_t *out, int flags = FFTW_PRESERVE_INPUT | FFTW_MEASURE)
-
inline void execute()
-
inline void destroy()
-
inline bool valid() const
Protected Functions
-
inline void _reset()
Protected Attributes
-
fftw_plan _plan = nullptr
-
inline fftw_plan_t()
-
template<typename output_element_t_, typename config_t_>
class vortex::acquire::file_acquisition_t -
Public Functions
-
inline file_acquisition_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~file_acquisition_t()
-
inline void initialize(config_t config)
-
inline const config_t &config() const
-
inline void prepare()
-
inline void start()
-
inline void stop()
-
template<typename V>
inline size_t next(const cpu_viewable<V> &buffer)
-
template<typename V>
inline size_t next(size_t id, const cpu_viewable<V> &buffer)
-
template<typename V>
inline void next_async(const cpu_viewable<V> &buffer, callback_t &&callback)
-
template<typename V>
inline void next_async(size_t id, const cpu_viewable<V> &buffer, callback_t &&callback)
Protected Functions
-
inline auto _load(size_t id, const fixed_cpu_view_t<output_element_t, 3> &buffer)
-
inline file_acquisition_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
struct vortex::acquire::file_config_t : public vortex::acquire::null_config_t
-
struct vortex::format::action::finish_scan
Public Functions
-
auto operator<=>(const finish_scan&) const = default
-
auto operator<=>(const finish_scan&) const = default
-
struct vortex::format::action::finish_segment
Public Functions
-
auto operator<=>(const finish_segment&) const = default
-
auto operator<=>(const finish_segment&) const = default
-
struct vortex::format::action::finish_volume
Public Functions
-
auto operator<=>(const finish_volume&) const = default
-
auto operator<=>(const finish_volume&) const = default
-
template<typename T>
struct fixed_alazar_view_t
-
template<typename T>
struct fixed_cpu_view_t
-
template<typename T>
struct fixed_cuda_view_t
-
template<typename T = uintmax_t, typename index_t = uint8_t>
struct vortex::marker::flags_t Public Functions
-
inline flags_t()
-
inline flags_t(T flags_)
-
inline void set(index_t idx)
-
inline void set()
-
inline void clear(index_t idx)
-
inline void clear()
-
inline bool matches(const flags_t &o) const
-
auto operator<=>(const flags_t&) const = default
Public Members
-
T value
-
inline flags_t()
-
struct vortex::format::format_planner_config_t
Public Types
-
using flags_t = marker::segment_boundary::flags_t
Public Functions
-
inline auto &segments_per_volume()
-
inline const auto &segments_per_volume() const
-
inline auto &records_per_segment()
-
inline const auto &records_per_segment() const
-
using flags_t = marker::segment_boundary::flags_t
-
template<typename config_t_>
class vortex::format::format_planner_t Public Types
-
using config_t = config_t_
Public Functions
-
inline format_planner_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline const config_t &config() const
-
inline void initialize(config_t config)
-
template<typename markers_t>
inline auto next(size_t block_sample, size_t block_length, const markers_t &markers)
-
template<typename markers_t>
inline void next(format_plan_t &plan, size_t block_sample, size_t block_length, const markers_t &markers)
-
inline auto finish()
-
inline void finish(format_plan_t &plan)
-
inline void reset()
-
inline const auto &segments_per_volume() const
-
inline const auto &records_per_segment() const
Protected Functions
-
inline auto &segments_per_volume()
-
inline auto &records_per_segment()
-
inline auto _accepted()
-
template<typename marker_t>
inline auto _finish_prior(format_plan_t &plan, size_t block_sample, const marker_t &m, size_t active_sample)
-
inline auto _setup_load(format_plan_t &plan, size_t block_sample, size_t start_sample, size_t end_sample)
-
inline void _handle_scan(format_plan_t &plan, size_t index)
-
inline void _handle_volume(format_plan_t &plan, size_t index)
-
inline void _handle_segment(format_plan_t &plan, size_t index)
Protected Attributes
-
std::shared_ptr<spdlog::logger> _log
-
counter_t _active_sample
-
size_t _buffer_segment_position
-
ptrdiff_t _buffer_record_position
-
bool _segment_reversed
-
bool _segment_accepted
-
bool _volume_accepted
-
bool _scan_accepted
-
bool _lines_active
-
std::optional<size_t> _last_scan_index
-
std::optional<size_t> _last_volume_index
-
std::optional<size_t> _last_segment_index
-
std::array<size_t, 2> _shape
-
config_t _config
-
using config_t = config_t_
-
struct vortex::engine::adapter::formatter : public vortex::engine::adapter<block_t>::detail::base
Public Members
-
std::function<format::format_plan_t(const block_t&)> next
-
std::function<void(format::format_plan_t&)> finish
-
std::function<format::format_plan_t(const block_t&)> next
-
template<typename T, size_t N, typename warp_t>
struct vortex::scan::detail::grid_waypoints_t Public Functions
-
inline grid_waypoints_t()
-
inline grid_waypoints_t()
-
struct vortex::storage::hdf5_stack_config_t
Public Functions
-
inline auto &channels_per_sample()
-
inline const auto &channels_per_sample() const
-
inline auto &samples_per_ascan()
-
inline const auto &samples_per_ascan() const
-
inline auto &ascans_per_bscan()
-
inline const auto &ascans_per_bscan() const
-
inline auto &bscans_per_volume()
-
inline const auto &bscans_per_volume() const
-
inline auto volume_shape() const
-
inline std::array<size_t, 3> bscan_shape() const
-
inline std::array<size_t, 2> ascan_shape() const
Public Members
-
std::string path
-
std::array<size_t, 4> shape = {{0, 0, 0, 1}}
-
hdf5_stack_header_t header = hdf5_stack_header_t::none
-
int compression_level = 0
-
inline auto &channels_per_sample()
-
template<typename element_t_, typename config_t_>
class vortex::storage::hdf5_stack_t -
Public Functions
-
inline hdf5_stack_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~hdf5_stack_t()
-
inline const auto &config() const
-
inline virtual void open(config_t config)
-
template<typename V>
inline void write_partial_bscan(size_t bscan_index, size_t ascan_index, const cpu_viewable<V> &raw_chunk_)
-
template<typename V>
inline void write_multi_bscan(size_t index, const cpu_viewable<V> &raw_chunk_)
-
template<typename V>
inline void write_volume(const cpu_viewable<V> &volume)
-
inline virtual void advance_volume(bool allocate = true)
-
inline virtual void close()
-
inline virtual bool ready() const
Public Static Attributes
- static constexpr static auto matlab_userblock_sizeΒ Β = 512
Protected Functions
-
inline void _resize()
-
inline hdf5_stack_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
struct vortex::marker::inactive_lines : public vortex::marker::detail::base
Public Functions
-
auto operator<=>(const inactive_lines&) const = default
-
auto operator<=>(const inactive_lines&) const = default
-
class incompatible_shape : public std::invalid_argument
-
template<size_t I, size_t N, typename T, typename ...Args>
struct vortex::detail::tuple::index_by_pointer
-
template<size_t N, typename T, typename ...Args>
struct vortex::detail::tuple::index_by_pointer<N, N, T, Args...>
-
template<size_t I, size_t N, typename T, typename ...Args>
struct vortex::detail::tuple::index_by_value
-
template<size_t N, typename T, typename ...Args>
struct vortex::detail::tuple::index_by_value<N, N, T, Args...>
-
struct vortex::alazar::board_t::info_t
Public Functions
-
size_t max_sampling_rate() const
-
U32 nearest_aligned_samples_per_record(double target_samples_per_record) const
-
U32 smallest_aligned_samples_per_record(double target_samples_per_record) const
-
const dsp_t &find_fft_info() const
Public Members
-
U32 system_index
-
U32 board_index
-
U32 serial_number
-
U32 calibration_date
-
U32 onboard_memory_size
-
U8 bits_per_sample
-
std::vector<size_t> supported_sampling_rates
-
std::vector<input_combination_t> supported_input_combinations
-
U32 max_pretrigger_samples
-
U32 min_samples_per_record
-
U32 sample_alignment_divisor
-
bool dual_port_memory
-
bool dual_edge_sampling
-
size_t max_sampling_rate() const
-
struct vortex::alazar::board_t::info_t::input_combination_t
Public Members
-
size_t impedance_ohms
-
size_t input_range_millivolts
-
size_t impedance_ohms
-
struct vortex::acquire::input_t
Public Functions
-
template<typename board_t>
inline void apply(board_t &board, std::shared_ptr<spdlog::logger> &log) const
-
inline size_t bytes_per_sample() const
-
inline bool operator==(const input_t &o) const
Public Members
-
size_t range_millivolts = 400
-
size_t impedance_ohms = 50
-
alazar::coupling_t coupling = alazar::coupling_t::DC
-
template<typename board_t>
-
struct vortex::acquire::clock::internal_t
Public Functions
Public Members
- size_t samples_per_secondΒ Β = 800'000'000
-
struct vortex::engine::engine_config_t::io_config
Public Members
-
bool preload = true
-
bool master = false
-
size_t lead_samples = 0
-
bool preload = true
-
struct vortex::process::cpu_processor_t::job_t
Public Members
-
block_t *block
-
callback_t callback
-
block_t *block
-
struct vortex::util::completion_worker_pool_t::job_t
Public Functions
-
inline job_t()
-
inline job_t(work_t &&work_, callback_t &&callback_)
-
inline job_t()
-
struct left_t
-
template<typename T>
struct vortex::sync::lockable : public T -
Private Members
-
mutable std::shared_mutex _mutex
-
mutable std::shared_mutex _mutex
-
template<typename T, typename marker_t>
struct vortex::scan::manual_pattern_t -
Public Functions
-
template<typename ...Args>
inline const auto &to_pattern(const Args&...) const
-
template<typename ...Args>
-
struct vortex::endpoint::marker_log_storage
Public Functions
-
inline marker_log_storage(std::shared_ptr<marker_log_t> storage)
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
template<typename block_t, typename spectra_stream_t, typename ascan_stream_t>
inline void handle(const format::format_plan_t &plan, const block_t &block, const spectra_stream_t &spectra, const ascan_stream_t &ascans)
-
inline const auto &storage() const
Protected Attributes
-
std::shared_ptr<marker_log_t> _storage
-
inline marker_log_storage(std::shared_ptr<marker_log_t> storage)
-
template<typename config_t_>
class vortex::storage::marker::marker_v0_t Public Types
-
using config_t = config_t_
Public Functions
-
inline marker_v0_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~marker_v0_t()
-
inline const auto &config() const
-
inline virtual void open(config_t config)
-
inline void close()
-
inline auto ready() const
Protected Functions
-
using config_t = config_t_
-
struct none_t
-
struct none_t
-
struct vortex::scan::warp::none_t
Public Functions
-
template<typename E1, typename E2>
inline void forward(xt::xexpression<E1> &in, xt::xexpression<E2> &out) const
-
template<typename E1, typename E2>
inline void inverse(xt::xexpression<E1> &in, xt::xexpression<E2> &out) const
-
template<typename E>
inline void forward(xt::xexpression<E> &inout) const
-
template<typename E>
inline void inverse(xt::xexpression<E> &inout) const
-
template<typename E1, typename E2>
-
struct vortex::endpoint::detail::notify
Subclassed by vortex::endpoint::cuda_tensor< derived_t >, vortex::endpoint::detail::cpu_tensor< cpu_tensor_t< T >, stack_format_executor_t >, vortex::endpoint::detail::stack_storage< broct_format_executor_t, broct_storage_t, detail::select_ascans_t, detail::broct_volume_shape_t >, vortex::endpoint::detail::stack_storage< stack_format_executor_t, simple_stack_t< element_t >, detail::select_ascans_t >, vortex::endpoint::detail::stack_storage< stack_format_executor_t, simple_stack_t< element_t >, detail::select_spectra_t >, vortex::endpoint::cuda_tensor< derived_t_ >, vortex::endpoint::detail::cpu_tensor< tensor_t, executor_t >, vortex::endpoint::detail::stack_storage< executor_t, storage_t, source_selector_t, volume_shape_t >
Public Types
-
using update_callback_t = std::function<void()>
Public Members
-
update_callback_t update_callback
-
aggregate_segment_callback_t aggregate_segment_callback
-
segment_callback_t segment_callback
-
volume_callback_t volume_callback
-
scan_callback_t scan_callback
-
event_callback_t event_callback
-
using update_callback_t = std::function<void()>
-
struct vortex::endpoint::null
Public Functions
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
template<typename block_t, typename spectra_stream_t, typename ascan_stream_t>
inline void handle(const format::format_plan_t &plan, const block_t &block, const spectra_stream_t &spectra, const ascan_stream_t &ascans)
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
template<typename output_element_t_, typename config_t_>
class vortex::acquire::null_acquisition_t -
Public Functions
-
inline void initialize(config_t config)
-
inline const config_t &config() const
-
inline void prepare()
-
inline void start()
-
inline void stop()
-
template<typename V>
inline void next_async(const viewable<V> &buffer, callback_t &&callback)
-
template<typename V>
inline void next_async(size_t id, const viewable<V> &buffer, callback_t &&callback)
Protected Attributes
-
config_t _config
-
inline void initialize(config_t config)
-
struct vortex::acquire::null_config_t
Subclassed by vortex::acquire::file_config_t
Public Functions
-
inline std::array<size_t, 3> shape() const
-
inline size_t &channels_per_sample()
-
inline const size_t &channels_per_sample() const
-
inline size_t &samples_per_record()
-
inline const size_t &samples_per_record() const
-
inline size_t &records_per_block()
-
inline const size_t &records_per_block() const
Protected Attributes
-
size_t _samples_per_record = 1024
-
size_t _records_per_block = 1000
-
size_t _channels_per_sample = 1
-
inline std::array<size_t, 3> shape() const
-
template<typename config_t_>
class vortex::io::null_io_t Public Types
-
using config_t = config_t_
Public Functions
-
inline void prepare()
-
inline void start()
-
inline void stop()
-
inline const config_t &config() const
-
inline void initialize(config_t config)
-
template<typename ...Vs>
inline size_t next(size_t id, size_t count, const std::tuple<Vs...> &streams)
-
template<typename ...Vs>
inline void next_async(size_t count, const std::tuple<Vs...> &streams, callback_t &&callback)
-
template<typename ...Vs>
inline void next_async(size_t id, size_t count, const std::tuple<Vs...> &streams, callback_t &&callback)
Protected Attributes
-
config_t _config
-
using config_t = config_t_
-
template<typename config_t_>
class vortex::process::null_processor_t : public vortex::process::processor_t<config_t_> Public Types
-
using config_t = config_t_
Public Functions
-
inline virtual void initialize(config_t config)
Protected Attributes
-
config_t _config
-
using config_t = config_t_
-
template<typename T>
struct vortex::scan::null_waypoints_t Public Functions
-
inline xt::xtensor<T, 3> to_waypoints() const
-
inline xt::xtensor<T, 3> to_waypoints() const
-
struct vortex::acquire::option::oct_ignore_bad_clock_t
Public Functions
-
template<typename board_t>
inline void apply(board_t &board, std::shared_ptr<spdlog::logger> &log) const
-
inline bool operator==(const oct_ignore_bad_clock_t &o) const
Public Members
-
double good_seconds = 4.95e-6
-
double bad_seconds = 4.95e-6
-
template<typename board_t>
-
template<size_t N>
class vortex::alazar::detail::fixed_alazar_view_t::of_dimension : public vortex::alazar::alazar_viewable<of_dimension<N>>, public vortex::detail::static_view_t<T, N, fixed_alazar_view_t<T>, alazar_view_t<T>> Public Types
-
using base_t = vortex::detail::static_view_t<T, N, fixed_alazar_view_t<T>, alazar_view_t<T>>
Public Functions
-
inline of_dimension()
-
template<typename S1>
inline of_dimension(T *data, const S1 &shape, const cuda::device_t &device, const HANDLE &handle)
-
template<typename V>
inline of_dimension(const alazar_viewable<V> &other)
-
inline const auto &device() const
-
using base_t = vortex::detail::static_view_t<T, N, fixed_alazar_view_t<T>, alazar_view_t<T>>
-
template<size_t N>
class vortex::cuda::detail::fixed_cuda_view_t::of_dimension : public vortex::cuda::cuda_viewable<of_dimension<N>>, public vortex::detail::static_view_t<T, N, fixed_cuda_view_t<T>, cuda_view_t<T>> Public Types
-
using base_t = vortex::detail::static_view_t<T, N, fixed_cuda_view_t<T>, cuda_view_t<T>>
Public Functions
-
inline of_dimension()
-
template<typename V>
inline of_dimension(const cuda_viewable<V> &other)
-
inline const auto &device() const
-
using base_t = vortex::detail::static_view_t<T, N, fixed_cuda_view_t<T>, cuda_view_t<T>>
-
template<size_t N>
class vortex::detail::fixed_cpu_view_t::of_dimension : public vortex::cpu_viewable<of_dimension<N>>, public vortex::detail::static_view_t<T, N, fixed_cpu_view_t<T>, cpu_view_t<T>> Public Types
-
using base_t = detail::static_view_t<T, N, fixed_cpu_view_t<T>, cpu_view_t<T>>
Public Functions
-
template<typename V>
inline of_dimension(const cpu_viewable<V> &other)
-
inline auto to_xt()
-
inline auto to_xt() const
-
using base_t = detail::static_view_t<T, N, fixed_cpu_view_t<T>, cpu_view_t<T>>
-
struct vortex::engine::scan_queue_t::online_scan_queue_t
Public Functions
-
inline online_scan_queue_t(scan_queue_t &sq)
Protected Attributes
-
scan_queue_t &_sq
-
inline online_scan_queue_t(scan_queue_t &sq)
-
struct vortex::motion::options_t
Public Members
-
bool include_initial = false
-
bool include_final = false
-
bool bypass_limits_check = false
-
bool include_initial = false
-
template<class ...Ts>
struct overloaded : public vortex::Ts
-
template<typename T, typename waypoints_t, typename pattern_t>
struct vortex::scan::detail::patterned_config_factory_t : public vortex::scan::detail::segmented_config_t<T>, public waypoints_t, public pattern_t Public Functions
-
inline auto to_segments() const
-
inline auto to_segments() const
-
template<typename T, typename marker_t, typename config_t>
class vortex::scan::detail::patterned_scan_factory_t : public vortex::scan::detail::segmented_scan_t<T, marker_t, config_t> Public Types
Public Functions
-
inline void initialize(const config_t &config)
-
inline void change(const config_t &new_config, bool restart = false)
Protected Functions
-
inline auto _check_and_apply_config(const config_t &new_config)
-
inline void initialize(const config_t &config)
-
template<typename T>
struct position_cuda_device_tensor : public vortex::endpoint::detail::cuda_device_tensor_with_galvo_impl<T, position_format_executor_t, position_cuda_device_tensor<T>>
-
struct vortex::format::position_format_executor_config_t : public vortex::format::stack_format_executor_config_t
Public Functions
-
inline position_format_executor_config_t()
-
inline void set()
-
inline void set(std::array<double, 2> pitch)
Public Members
-
xt::xtensor_fixed<double, xt::xshape<2, 3>> transform
-
bool use_target_position = true
-
std::array<size_t, 2> channels = {0, 1}
-
inline position_format_executor_config_t()
-
template<typename config_t_>
class vortex::format::position_format_executor_t Public Types
-
using config_t = config_t_
Protected Attributes
-
config_t _config
-
using config_t = config_t_
-
struct post_scan
-
struct vortex::scan::detail::segmented_scan_t::pre_scan
Public Members
-
point_t position
-
point_t velocity
-
counter_t index
-
bool include_start = false
-
bool fully_buffered = false
-
point_t position
-
template<typename T>
struct vortex::process::processor_config_t Subclassed by vortex::process::cuda_processor_config_t< T >
Public Types
-
using element_t = T
Public Functions
-
inline virtual ~processor_config_t()
-
inline std::array<size_t, 3> input_shape() const
-
inline size_t &records_per_block()
-
inline const size_t &records_per_block() const
-
inline size_t &samples_per_record()
-
inline const size_t &samples_per_record() const
-
inline std::array<size_t, 3> output_shape() const
-
inline size_t &ascans_per_block()
-
inline const size_t &ascans_per_block() const
-
inline size_t samples_per_ascan() const
-
inline virtual void validate()
Public Members
-
size_t channel = 0
-
size_t average_window = 0
-
xt::xtensor<T, 1> resampling_samples
-
bool enable_log10 = true
-
bool enable_ifft = true
Protected Attributes
-
size_t _ascans_per_block = 1000
-
size_t _samples_per_record = 1000
-
using element_t = T
-
template<typename config_t>
class vortex::process::processor_t Public Functions
-
inline const auto &config() const
Protected Attributes
-
config_t _config
-
inline const auto &config() const
-
template<typename T>
struct radial_cuda_device_tensor : public vortex::endpoint::detail::cuda_device_tensor_impl<T, radial_format_executor_t, radial_cuda_device_tensor<T>>
-
struct vortex::format::radial_format_executor_config_t : public vortex::format::stack_format_executor_config_t
Public Functions
-
inline auto &x_extent()
-
inline const auto &x_extent() const
-
inline auto &y_extent()
-
inline const auto &y_extent() const
-
inline auto &radial_extent()
-
inline const auto &radial_extent() const
-
inline auto &angular_extent()
-
inline const auto &angular_extent() const
-
inline auto &radial_segments_per_volume()
-
inline const auto &radial_segments_per_volume() const
-
inline auto &radial_records_per_segment()
-
inline const auto &radial_records_per_segment() const
-
inline auto &x_extent()
-
template<typename config_t_>
class vortex::format::radial_format_executor_t Public Types
-
using config_t = config_t_
Protected Attributes
-
config_t _config
-
using config_t = config_t_
-
template<typename T, typename warp_t>
struct vortex::scan::radial_waypoints_t : public vortex::scan::detail::xy_waypoints_t<T, warp_t> Public Types
-
using base_t = detail::xy_waypoints_t<T, warp_t>
Public Functions
-
inline radial_waypoints_t()
-
inline void set_half_evenly_spaced(size_t n)
-
inline void set_evenly_spaced(size_t n)
-
inline void set_aiming()
-
inline auto to_waypoints() const
-
inline size_t &bscans_per_volume()
-
inline const size_t &bscans_per_volume() const
-
using base_t = detail::xy_waypoints_t<T, warp_t>
-
template<typename T>
struct vortex::range_t Public Functions
-
inline T &min()
-
inline const T &min() const
-
inline T length() const
-
inline T &max()
-
inline const T &max() const
-
inline bool contains(const T &o)
-
inline bool operator==(const range_t &o) const
Public Members
-
inline T &min()
-
template<typename T, typename warp_t>
struct vortex::scan::raster_waypoints_t : public vortex::scan::detail::xy_waypoints_t<T, warp_t> Public Types
-
using base_t = detail::xy_waypoints_t<T, warp_t>
Public Functions
-
inline raster_waypoints_t()
-
inline auto to_waypoints() const
-
using base_t = detail::xy_waypoints_t<T, warp_t>
-
template<typename marker_t>
struct vortex::scan::repeated_pattern_t Public Types
-
using flags_t = typename marker_t::flags_t
-
using repeat_strategy_t = std::variant<repeat_pack, repeat_flags>
Public Functions
-
template<typename T>
inline auto to_pattern(const xt::xtensor<T, 3> &waypoints) const
Public Members
-
repeat_strategy_t strategy = {repeat_pack{}}
-
size_t repeat_period = 2
-
size_t repeat_count = 3
-
repeat_strategy_t repeat_strategy = {repeat_pack{}}
-
bool bidirectional_segments = false
-
using flags_t = typename marker_t::flags_t
-
struct vortex::format::action::resize
Public Functions
-
inline auto &segments_per_volume()
-
inline const auto &segments_per_volume() const
-
inline auto &records_per_segment()
-
inline const auto &records_per_segment() const
-
inline auto operator==(const resize &rhs) const
Public Members
-
std::array<size_t, 2> shape
-
inline auto &segments_per_volume()
-
struct right_t
-
class vortex::ring_buffer_xt
Public Functions
-
inline ring_buffer_xt()
-
inline ring_buffer_xt(size_t head, size_t tail)
-
template<typename B1, typename B2>
inline void store(B1 &buffer, B2 &input, size_t count, size_t offset = 0)
-
template<typename B1, typename B2>
inline void load(B1 &buffer, B2 &output, size_t count, size_t offset = 0)
-
inline void reset(size_t head, size_t tail)
-
inline void clear()
-
inline const auto &head() const
-
inline const auto &tail() const
Protected Attributes
-
size_t _head
-
size_t _tail
-
inline ring_buffer_xt()
-
struct vortex::marker::scan_boundary : public vortex::marker::detail::base
Public Functions
-
inline scan_boundary()
-
inline scan_boundary(counter_t sample_, counter_t sequence_, size_t volume_count_hint_, flags_t flags_)
-
auto operator<=>(const scan_boundary&) const = default
-
inline scan_boundary()
-
template<typename T>
struct vortex::scan::detail::scan_config_t Subclassed by vortex::scan::detail::segmented_config_t< T >
Public Functions
-
inline auto sampling_interval() const
-
inline virtual void validate() const
Public Members
-
size_t channels_per_sample = 2
- size_t samples_per_secondΒ Β = 100'000
-
bool loop = true
-
bool consolidate = false
-
inline auto sampling_interval() const
-
template<typename T, typename marker_t>
class vortex::engine::scan_queue_t Public Types
-
enum event_t
Values:
-
enumerator start
-
enumerator finish
-
enumerator interrupt
-
enumerator abort
-
enumerator start
-
using element_t = T
-
using point_t = xt::xtensor<T, 1>
-
using array_t = xt::xtensor<T, 2>
-
using empty_callback_t = std::function<void(online_scan_queue_t&)>
Public Functions
-
inline scan_queue_t()
-
inline void reset()
-
inline void rebase(counter_t sample)
-
template<typename S>
inline void append(std::shared_ptr<S> &scan, scan_callback_t &&callback = {}, marker::scan_boundary marker = {})
-
template<typename S>
inline void interrupt(std::shared_ptr<S> &scan, scan_callback_t &&callback = {}, marker::scan_boundary marker = {})
-
inline auto generate(std::vector<marker_t> &markers, const fixed_cpu_view_t<T, 2> &buffer, bool zero_order_hold = true)
-
inline void clear()
-
inline void set_empty_callback(empty_callback_t &&callback)
-
inline const auto &empty_callback() const
-
inline auto state() const
-
enum event_t
-
struct vortex::engine::scan_queue_t::scan_t
Public Members
-
std::function<size_t(std::vector<marker_t>&, const fixed_cpu_view_t<T, 2>&)> generate
- std::function< std::tuple< std::optional< point_t >, std::optional< point_t > >)> last
-
std::function<size_t()> channels_per_sample
-
scan_callback_t callback
-
marker::scan_boundary marker
-
std::function<size_t(std::vector<marker_t>&, const fixed_cpu_view_t<T, 2>&)> generate
-
template<typename T, typename marker_t_, typename config_t_>
class vortex::scan::detail::scan_t Public Types
-
using element_t = T
-
using config_t = config_t_
-
using marker_t = marker_t_
-
using point_t = xt::xtensor<T, 1>
-
using array_t = xt::xtensor<T, 2>
Public Functions
-
inline scan_t()
-
inline scan_t(std::shared_ptr<spdlog::logger> log)
-
inline virtual ~scan_t()
-
inline const config_t &config() const
-
inline virtual void restart(counter_t sample)
-
inline void prepare()
-
inline void prepare(size_t count)
-
template<typename markers_t>
inline size_t next(markers_t &markers, const fixed_cpu_view_t<T, 2> &buffer)
-
inline auto last() const
-
inline virtual void consolidate()
-
inline virtual const array_t &scan_buffer()
Protected Functions
-
virtual bool _fully_buffered() = 0
-
virtual void _prepare_next_chunk() = 0
-
inline counter_t _next_unbuffered_sample()
-
inline counter_t _scan_buffer_initial_sample()
-
inline counter_t _stream_buffer_initial_sample()
-
inline size_t _stream_buffer_size()
-
inline size_t _scan_buffer_size()
-
inline void _discard_scan_buffer()
-
inline void _discard_stream_buffer()
-
inline void _shift_scan_markers(ptrdiff_t delta_samples)
-
inline void _split_scan_buffer(counter_t requested_sample)
-
inline void _shift_scan_to_stream()
-
inline void _shift_scan_to_stream(counter_t requested_sample)
-
inline virtual void _prepare()
-
inline virtual void _prepare(size_t count)
-
using element_t = T
-
struct vortex::marker::segment_boundary : public vortex::marker::detail::base
Public Functions
-
inline segment_boundary()
-
inline segment_boundary(counter_t sample, counter_t sequence, counter_t index_in_volume, bool reversed, size_t record_count_hint = 0)
-
inline segment_boundary(counter_t sample_, counter_t sequence_, counter_t index_in_volume_, bool reversed_, size_t record_count_hint_, flags_t flags_)
-
auto operator<=>(const segment_boundary&) const = default
-
inline segment_boundary()
-
template<typename T>
struct vortex::scan::detail::segmented_config_t : public vortex::scan::detail::scan_config_t<T> Subclassed by vortex::scan::detail::patterned_config_factory_t< T, waypoints_t, pattern_t >
Public Types
-
using base_t = scan_config_t<T>
Public Functions
-
inline segmented_config_t()
-
inline virtual void validate() const override
-
using base_t = scan_config_t<T>
-
template<typename T, typename marker_t_, typename config_t>
class vortex::scan::detail::segmented_scan_t : public vortex::scan::detail::scan_t<T, marker_t_, config_t> Public Types
-
using marker_t = marker_t_
-
using array_t = typename segment_t::array_t
-
using point_t = typename segment_t::point_t
Public Functions
-
inline void restart()
Protected Types
-
using state_t = std::variant<pre_scan, pre_segment, post_segment, post_scan>
Protected Functions
-
inline virtual void _prepare_next_chunk() override
-
inline virtual bool _fully_buffered() override
Private Functions
-
using marker_t = marker_t_
-
struct vortex::endpoint::detail::select_ascans_t
Public Static Functions
-
template<typename spectra_stream_t, typename ascan_stream_t>
static inline const auto &select(const spectra_stream_t &spectra, const ascan_stream_t &ascans)
-
template<typename spectra_stream_t, typename ascan_stream_t>
-
struct vortex::endpoint::detail::select_spectra_t
Public Static Functions
-
template<typename spectra_stream_t, typename ascan_stream_t>
static inline const auto &select(const spectra_stream_t &spectra, const ascan_stream_t &ascans)
-
template<typename spectra_stream_t, typename ascan_stream_t>
-
template<typename marker_t>
struct vortex::scan::sequential_pattern_t Public Types
-
using flags_t = typename marker_t::flags_t
Public Functions
-
template<typename T>
inline auto to_pattern(const xt::xtensor<T, 3> &waypoints) const
-
using flags_t = typename marker_t::flags_t
-
struct vortex::engine::session_status_t
Public Functions
-
inline auto available() const
-
inline auto progress() const
-
inline auto utilization() const
Public Members
-
size_t allocated
-
size_t inflight
-
size_t dispatched
-
size_t limit
-
inline auto available() const
-
template<typename config_t, typename master_plan_t, typename scan_queue_t, typename block_t>
class vortex::engine::detail::session_t Public Types
-
using clock_t = std::chrono::high_resolution_clock
Public Functions
-
inline session_t(config_t &config, master_plan_t &master_plan, std::vector<block_t> &blocks, scan_queue_t &scan_queue, event_callback_t event_callback, job_callback_t job_callback, std::exception_ptr &aborting_exception, std::shared_ptr<spdlog::logger> log)
-
inline ~session_t()
-
inline auto done() const
-
inline void wait() const
-
inline bool wait_for(const std::chrono::high_resolution_clock::duration &timeout) const
-
inline void shutdown(bool interrupt = false)
-
inline auto status() const
Protected Functions
-
inline void _abort()
-
inline void _main_loop()
-
inline void _acquire_loop()
-
inline void _process_loop()
-
inline void _format_loop(size_t index, typename config_t::adapter::formatter format)
-
inline void _recycle_loop()
-
template<typename T>
inline auto _aggregate_sized(sync::aggregator_t<T> &aggregator, size_t index, T job)
-
inline void _prepare()
-
inline void _start(bool master, bool preload)
-
inline void _stop(bool master)
-
template<typename V1, typename V2>
inline cuda::stream_t &_choose_stream(const cpu_viewable<V1> &src_, const cuda::cuda_viewable<V2> &dst_)
-
template<typename V1, typename V2>
inline cuda::stream_t &_choose_stream(const cuda::cuda_viewable<V1> &src_, const viewable<V2> &dst_)
-
template<typename V1, typename V2>
inline cuda::stream_t &_choose_stream(const cpu_viewable<V1> &src_, const cpu_viewable<V2> &dst_)
-
template<typename V1, typename V2>
inline void _transfer(size_t channel, cuda::stream_t &stream, const viewable<V1> &src_, const viewable<V2> &dst_, cuda::event_t &done)
-
inline auto _number_of_acquire_tasks()
-
inline auto _number_of_format_tasks()
-
inline void _emit()
-
inline void _emit(std::exception_ptr error)
-
inline auto _max_io_lead_delay() const
Protected Attributes
-
config_t &_config
-
master_plan_t &_master_plan
-
scan_queue_t &_scan_queue
-
event_callback_t _event_callback
-
job_callback_t _job_callback
-
std::exception_ptr &_aborting_exception
-
std::shared_ptr<spdlog::logger> _log
-
std::atomic_bool _interrupt = false
-
std::atomic_bool _shutdown = false
-
std::thread _main_thread
-
std::atomic<size_t> _dispatch_index = 0
-
sync::aggregator_t<job_t> _acquired_jobs
-
sync::aggregator_t<job_t> finished_jobs
-
using clock_t = std::chrono::high_resolution_clock
-
struct vortex::simple::simple_engine_config_t
-
Public Members
-
bool internal_clock = false
-
std::string broct_save_path
-
std::string sample_target_save_path
-
std::string sample_actual_save_path
- source_t swept_sourceΒ Β = { 100'000, 1376, 0.50 }
-
double galvo_delay = 0.0
-
std::array<double, 2> dispersion = {{0, 0}}
-
size_t samples_per_ascan = 2752
-
size_t ascans_per_bscan = 500
-
size_t bscans_per_volume = 500
-
size_t blocks_to_acquire = 0
-
size_t blocks_to_allocate = 128
-
size_t ascans_per_block = 500
-
size_t preload_count = 4
-
size_t process_slots = 2
-
bool internal_clock = false
-
class vortex::simple::simple_engine_t
Public Types
-
using acquisition_t = alazar_acquisition_t
-
using processor_t = cuda_processor_t<acquisition_t::output_element_t, int8_t>
-
using io_t = daqmx_io_t
-
using engine_t = engine_t<acquisition_t::output_element_t, processor_t::output_element_t, io_t::analog_element_t, io_t::digital_element_t>
Public Functions
-
inline simple_engine_t(std::string log_scope =
"")
-
inline void initialize(simple_engine_config_t config)
-
inline void start(callback_t callback = {})
-
inline void wait() const
-
inline bool wait_for(const std::chrono::high_resolution_clock::duration &timeout) const
-
inline void stop()
-
inline const auto &volume() const
Protected Attributes
-
acquisition_t::config_t _acquire_config
-
std::shared_ptr<acquisition_t> _acquire
-
processor_t::config_t _process_config
-
std::shared_ptr<processor_t> _process
-
io_t::config_t _io_out_config
-
io_t::config_t _io_in_config
-
std::shared_ptr<format_planner_t> _stack_format
-
std::shared_ptr<format_planner_t> _radial_format
-
stack_format_executor_t::config_t _stack_executor_config
-
radial_format_executor_t::config_t _radial_executor_config
-
std::shared_ptr<endpoint::stack_cuda_device_tensor<processor_t::output_element_t>> _stack_tensor_endpoint
-
std::shared_ptr<endpoint::radial_cuda_device_tensor<processor_t::output_element_t>> _radial_tensor_endpoint
-
broct_storage_t::config_t _broct_storage_config
-
broct_format_executor_t::config_t _broct_executor_config
-
std::shared_ptr<endpoint::broct_storage> _broct_storage_endpoint
-
stream_dump_t::config_t _sample_target_dump_config
-
stream_dump_t::config_t _sample_actual_dump_config
-
std::shared_ptr<endpoint::stream_dump_storage> _sample_target_endpoint
-
std::shared_ptr<endpoint::stream_dump_storage> _sample_actual_endpoint
-
std::shared_ptr<sync::lockable<cuda::cuda_device_tensor_t<int8_t>>> _volume
-
engine_t::config_t _engine_config
-
engine_t _engine
-
simple_engine_config_t _config
-
std::string _log_scope
-
using acquisition_t = alazar_acquisition_t
-
struct vortex::storage::simple_stack_config_t
Public Functions
-
inline size_t &samples_per_ascan()
-
inline const size_t &samples_per_ascan() const
-
inline size_t &ascans_per_bscan()
-
inline const size_t &ascans_per_bscan() const
-
inline size_t &bscans_per_volume()
-
inline const size_t &bscans_per_volume() const
-
inline auto volume_shape() const
-
inline auto bscan_shape() const
Public Members
-
std::string path
-
std::array<size_t, 3> shape = {{0, 0, 0}}
-
bool buffering = false
-
simple_stack_header_t header = simple_stack_header_t::raw
-
inline size_t &samples_per_ascan()
-
template<typename element_t_, typename config_t_>
class vortex::storage::simple_stack_t -
Public Functions
-
inline simple_stack_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~simple_stack_t()
-
inline const auto &config() const
-
inline virtual void open(config_t config)
-
inline virtual void seek(size_t volume_index, size_t bscan_index)
-
template<typename V>
inline void write_partial_bscan(size_t bscan_index, size_t ascan_index, const cpu_viewable<V> &chunk_)
-
template<typename V>
inline void write_bscan(size_t index, const cpu_viewable<V> &bscan_)
-
template<typename V>
inline void write_multi_bscan(size_t index, const cpu_viewable<V> &chunk_)
-
template<typename V>
inline void write_volume(const cpu_viewable<V> &volume_)
-
inline virtual void advance_volume(bool allocate = true)
-
inline virtual void close()
-
inline virtual bool ready() const
Protected Functions
-
inline size_t _volume_size_in_bytes()
-
inline size_t _bscan_size_in_bytes()
-
inline size_t _ascan_size_in_bytes()
-
inline simple_stack_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
struct vortex::storage::simple_stream_config_t
Public Members
-
std::string path
-
bool buffering = false
-
simple_stream_header_t header = simple_stream_header_t::raw
-
std::string path
-
template<typename element_t_, typename config_t_>
class vortex::storage::simple_stream_t -
Public Functions
-
inline simple_stream_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~simple_stream_t()
-
inline const auto &config() const
-
inline virtual void open(config_t config)
-
template<typename V, typename = std::enable_if_t<std::is_same_v<std::decay_t<typename V::element_t>, element_t>>>
inline void write(const cpu_viewable<V> &data_)
-
inline virtual void close()
-
inline virtual bool ready() const
-
inline simple_stream_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
struct vortex::copy::slice::simple_t
Public Functions
-
inline simple_t()
-
inline simple_t(size_t stop)
-
inline simple_t(size_t start, size_t stop)
-
inline simple_t(size_t start_, size_t stop_, size_t step_)
-
inline size_t count() const
Public Members
-
size_t start
-
size_t stop
-
size_t step
-
inline simple_t()
-
struct vortex::acquire::trigger::single_external_t
Public Functions
Public Members
-
size_t range_millivolts = 2500
-
float level_ratio = 0.09f
-
size_t delay_samples = 80
-
alazar::trigger_slope_t slope = alazar::trigger_slope_t::positive
-
alazar::coupling_t coupling = alazar::coupling_t::DC
-
size_t range_millivolts = 2500
-
struct vortex::process::cpu_processor_t::slot_t
-
struct vortex::process::cuda_processor_t::slot_t
Public Members
-
size_t id
-
cuda::cuda_device_tensor_t<float_element_t> float_records
-
cuda::cuda_device_tensor_t<float_element_t> float_ascans
-
cuda::cuda_device_tensor_t<cuda::complex<float_element_t>> complex_ascans
-
cuda::fft_plan_t<float_element_t> fft_plan
-
slot_t *prior = nullptr
-
size_t id
-
template<typename T>
struct vortex::engine::source_t Public Types
-
using element_t = T
Public Functions
-
inline bool has_clock() const
-
inline auto &clock_edges_seconds()
-
inline const auto &clock_edges_seconds() const
-
using element_t = T
-
struct vortex::engine::detail::engine_plan_t::spectra_buffer
Public Functions
-
inline bool operator==(const spectra_buffer &o) const
Public Members
-
adapter::acquisition acquisition
-
spectra_stream_factory_t factory
-
channels_t channels
-
shape_t shape
-
inline bool operator==(const spectra_buffer &o) const
-
template<typename element_t>
struct spectra_stack_storage : public vortex::endpoint::detail::stack_storage<stack_format_executor_t, simple_stack_t<element_t>, detail::select_spectra_t>
-
template<typename element_t>
struct spectra_stream_storage : public vortex::endpoint::detail::stream_storage<simple_stream_t<element_t>, detail::select_spectra_t>
-
template<typename T>
struct spiral_cuda_device_tensor : public vortex::endpoint::detail::cuda_device_tensor_impl<T, radial_format_executor_t, radial_cuda_device_tensor<T>>
-
struct vortex::format::spiral_format_executor_config_t : public vortex::format::stack_format_executor_config_t
Public Functions
-
inline auto &x_extent()
-
inline const auto &x_extent() const
-
inline auto &y_extent()
-
inline const auto &y_extent() const
-
inline auto &x_extent()
-
template<typename config_t_>
class vortex::format::spiral_format_executor_t Public Types
-
using config_t = config_t_
Protected Attributes
-
config_t _config
-
using config_t = config_t_
-
template<typename T>
struct spiral_galvo_cuda_device_tensor : public vortex::endpoint::detail::cuda_device_tensor_with_galvo_impl<T, spiral_format_executor_t, spiral_galvo_cuda_device_tensor<T>>
-
template<typename T, typename warp_t>
struct vortex::scan::spiral_waypoints_t : public vortex::scan::detail::xy_waypoints_t<T, warp_t> Public Types
-
using base_t = detail::xy_waypoints_t<T, warp_t>
Public Functions
-
inline spiral_waypoints_t()
-
inline void set_hybrid_spiral(T frequency_in, T slew_in, T amp_in, T pitch_in, size_t samples_per_second)
-
inline auto to_waypoints() const
-
inline size_t &ascans_per_bscan()
-
inline const size_t &ascans_per_bscan() const
-
inline size_t &bscans_per_volume()
-
inline const size_t &bscans_per_volume() const
-
using base_t = detail::xy_waypoints_t<T, warp_t>
-
template<typename T>
struct stack_cpu_tensor : public vortex::endpoint::detail::cpu_tensor<cpu_tensor_t<T>, stack_format_executor_t>
-
template<typename T>
struct stack_cuda_device_tensor : public vortex::endpoint::detail::cuda_device_tensor_impl<T, stack_format_executor_t, stack_cuda_device_tensor<T>>
-
template<typename T>
struct stack_cuda_host_tensor : public vortex::endpoint::detail::cuda_host_tensor_impl<T, stack_format_executor_t, stack_cuda_host_tensor<T>>
-
struct vortex::format::stack_format_executor_config_t
Subclassed by vortex::format::position_format_executor_config_t, vortex::format::radial_format_executor_config_t, vortex::format::spiral_format_executor_config_t
-
template<typename config_t_>
class vortex::format::stack_format_executor_t Public Types
-
using config_t = config_t_
Public Functions
-
inline const config_t &config() const
-
inline void initialize(config_t config)
-
template<typename V1, typename V2>
inline void execute(const cpu_viewable<V1> &volume_buffer, const cpu_viewable<V2> &block_buffer, const action::copy &action) const
Public Members
-
config_t _config
-
using config_t = config_t_
-
template<typename executor_t, typename storage_t, typename source_selector_t, typename volume_shape_t = default_volume_shape_t>
struct vortex::endpoint::detail::stack_storage : public vortex::endpoint::detail::notify Public Functions
-
inline stack_storage(std::shared_ptr<executor_t> executor, std::shared_ptr<storage_t> storage, std::shared_ptr<spdlog::logger> log)
-
inline stack_storage(std::shared_ptr<executor_t> executor, std::shared_ptr<storage_t> storage, buffer_strategy_t buffer_strategy, std::shared_ptr<spdlog::logger> log)
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
template<typename block_t, typename spectra_stream_t, typename ascan_stream_t>
inline void handle(const format::format_plan_t &plan, const block_t &block, const spectra_stream_t &spectra, const ascan_stream_t &ascans)
-
inline const auto &executor() const
-
inline const auto &storage() const
-
inline const auto &stream() const
Protected Functions
-
template<typename shape_t>
inline auto _buffer_shape(const shape_t &in)
-
template<typename shape_t, typename block_t>
inline auto _buffer_shape(const shape_t &in, const block_t &block)
-
inline void _transfer(std::vector<size_t> segments)
Protected Attributes
-
std::shared_ptr<executor_t> _executor
-
buffer_strategy_t _buffer_strategy
-
std::shared_ptr<spdlog::logger> _log
-
cuda::cuda_device_tensor_t<typename storage_t::element_t> _device_buffer
-
cuda::cuda_host_tensor_t<typename storage_t::element_t> _host_buffer
-
inline stack_storage(std::shared_ptr<executor_t> executor, std::shared_ptr<storage_t> storage, std::shared_ptr<spdlog::logger> log)
-
template<typename T, size_t N, typename static_t_, typename dynamic_t>
class vortex::detail::static_view_t : public vortex::detail::base_view_t<T, std::array<size_t, N>, std::array<ptrdiff_t, N>>
-
struct vortex::endpoint::stream_dump_storage
Public Functions
-
inline stream_dump_storage(std::shared_ptr<stream_dump_t> storage, size_t lead_samples = 0)
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
template<typename block_t, typename spectra_stream_t, typename ascan_stream_t>
inline void handle(const format::format_plan_t &plan, const block_t &block, const spectra_stream_t &spectra, const ascan_stream_t &ascans)
-
inline const auto &storage() const
-
inline stream_dump_storage(std::shared_ptr<stream_dump_t> storage, size_t lead_samples = 0)
-
template<typename config_t_>
class vortex::storage::dump::stream_dump_v0_t Public Types
-
using config_t = config_t_
Public Functions
-
inline stream_dump_v0_t(std::shared_ptr<spdlog::logger> log = nullptr)
-
inline virtual ~stream_dump_v0_t()
-
inline const auto &config() const
-
inline virtual void open(config_t config)
-
template<typename ...Vs, typename = typename std::enable_if_t<(is_cpu_viewable<Vs> && ...)>>
inline void next(size_t id, const std::tuple<Vs...> &streams)
-
inline void close()
-
inline auto ready() const
Protected Functions
-
template<typename V>
inline void _dump(const cpu_viewable<V> &buffer_)
-
using config_t = config_t_
-
template<typename element_t>
struct stream_element_is_same
-
template<typename storage_t, typename source_selector_t>
struct vortex::endpoint::detail::stream_storage Public Functions
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
template<typename block_t, typename spectra_stream_t, typename ascan_stream_t>
inline void handle(const format::format_plan_t &plan, const block_t &block, const spectra_stream_t &spectra, const ascan_stream_t &ascans)
-
inline const auto &storage() const
Protected Functions
-
template<typename V>
inline void _handle(const cpu_viewable<V> &source)
-
template<typename V>
inline void _handle(const cuda::cuda_viewable<V> &source_)
-
inline void allocate(const std::optional<cuda::device_t> spectra, const std::optional<cuda::device_t> &ascans)
-
class vortex::cuda::stream_t
Public Functions
-
stream_t(unsigned int flags = cudaStreamNonBlocking)
-
~stream_t()
-
stream_t(const stream_t&) = delete
-
stream_t(stream_t &&o)
-
const cudaStream_t &handle() const
-
void sync() const
-
void wait(const event_t &event) const
-
bool ready() const
Public Static Functions
-
static stream_t default_()
Protected Attributes
-
cudaStream_t _stream
-
stream_t(unsigned int flags = cudaStreamNonBlocking)
-
class vortex::cuda::surface_t
Public Functions
-
surface_t()
-
template<typename T>
inline surface_t(const device_array_t<T> &array)
-
~surface_t()
-
surface_t(const surface_t&) = delete
-
surface_t(surface_t &&o)
-
bool valid() const
-
const cudaSurfaceObject_t &handle() const
Protected Attributes
-
cudaSurfaceObject_t _surface
-
surface_t()
-
struct vortex::storage::detail::matlab::tag
Public Functions
-
inline tag(std::ostream &out, uint32_t type, bool defer_padding = false)
-
inline ~tag()
-
inline void extend(size_t count)
-
inline tag(std::ostream &out, uint32_t type, bool defer_padding = false)
-
struct vortex::scan::warp::telecentric_t
Public Functions
-
inline telecentric_t()
-
inline telecentric_t(double galvo_lens_spacing_)
-
inline telecentric_t(double galvo_lens_spacing_, double scale_)
-
template<typename E1, typename E2>
inline auto forward(xt::xexpression<E1> &in, xt::xexpression<E2> &out) const
-
template<typename E1, typename E2>
inline auto inverse(xt::xexpression<E1> &in, xt::xexpression<E2> &out) const
-
template<typename E>
inline void forward(xt::xexpression<E> &inout) const
-
template<typename E>
inline void inverse(xt::xexpression<E> &inout) const
-
inline telecentric_t()
-
template<typename T>
class vortex::detail::tensor_impl_t Subclassed by vortex::cuda::cuda_device_tensor_t< float_element_t >, vortex::cuda::cuda_device_tensor_t< double >, vortex::cuda::cuda_device_tensor_t< index_element_t >, vortex::cuda::cuda_device_tensor_t< uint8_t >, vortex::cuda::cuda_device_tensor_t< typename storage_t::element_t >, vortex::cuda::cuda_device_tensor_t< input_element_t >, vortex::cuda::cuda_device_tensor_t< cuda::complex< float_element_t > >, vortex::cuda::cuda_host_tensor_t< typename storage_t::element_t >, vortex::alazar::alazar_device_tensor_t< T >, vortex::cpu_tensor_t< T >, vortex::cuda::cuda_device_tensor_t< T >, vortex::cuda::cuda_host_tensor_t< T >
Public Functions
-
inline tensor_impl_t()
-
inline virtual ~tensor_impl_t()
-
tensor_impl_t(const tensor_impl_t&) = delete
-
tensor_impl_t &operator=(const tensor_impl_t&) = delete
-
inline tensor_impl_t(tensor_impl_t &&o)
-
inline tensor_impl_t &operator=(tensor_impl_t &&o)
-
template<typename shape_t>
inline void resize(const shape_t &s, bool shrink = true)
-
inline void shrink()
-
inline void clear()
-
inline auto data()
-
inline const auto data() const
-
inline auto count() const
-
virtual size_t underlying_count() const = 0
-
inline auto size_in_bytes() const
-
inline auto underlying_size_in_bytes() const
-
inline auto dimension() const
-
inline const auto &shape() const
-
inline auto shape(size_t idx) const
-
inline const auto &stride() const
-
inline auto stride(size_t idx) const
-
inline auto stride_in_bytes(size_t idx) const
-
inline auto stride_in_bytes() const
-
inline auto valid() const
Protected Functions
-
virtual void _allocate(size_t n) = 0
-
template<typename shape_t>
inline void _resize(const shape_t &s, bool shrink)
-
inline tensor_impl_t()
-
class vortex::cuda::texture_t
Public Functions
-
texture_t()
-
template<typename T>
inline texture_t(const device_array_t<T> &array, const cudaTextureDesc &texture_desc)
-
~texture_t()
-
texture_t(const texture_t&) = delete
-
texture_t(texture_t &&o)
-
bool valid() const
-
void reset()
-
const cudaTextureObject_t &handle() const
Protected Attributes
-
cudaTextureObject_t _texture
-
texture_t()
-
template<typename ...Ts, typename U, typename ...Us>
struct unique<std::tuple<Ts...>, U, Us...> : public std::conditional_t<(std::is_same_v<U, Ts> || ...), unique<std::tuple<Ts...>, Us...>, unique<std::tuple<Ts..., U>, Us...>>
-
template<typename ...Ts, typename U, typename ...Us>
struct unique<std::variant<Ts...>, U, Us...> : public std::conditional_t<(std::is_same_v<U, Ts> || ...), unique<std::variant<Ts...>, Us...>, unique<std::variant<Ts..., U>, Us...>>
-
class unsupported_view : public std::invalid_argument
-
template<typename derived_t_>
struct vortex::viewable Subclassed by vortex::cpu_viewable< of_dimension< N > >, vortex::cpu_viewable< cpu_view_t< T > >, vortex::cuda::cuda_viewable< cuda_view_t< T > >, vortex::cuda::cuda_viewable< of_dimension< N > >
Public Types
-
using derived_t = derived_t_
Public Functions
-
inline auto &derived_cast()
-
inline const auto &derived_cast() const
-
using derived_t = derived_t_
-
struct vortex::marker::volume_boundary : public vortex::marker::detail::base
Public Functions
-
inline volume_boundary()
-
inline volume_boundary(counter_t sample, counter_t sequence, counter_t index_in_scan, bool reversed, size_t segment_count_hint = 0)
-
inline volume_boundary(counter_t sample_, counter_t sequence_, counter_t index_in_scan_, bool reversed_, size_t segment_count_hint_, flags_t flags_)
-
auto operator<=>(const volume_boundary&) const = default
-
inline volume_boundary()
-
class vortex::util::worker_pool_t
-
Public Functions
-
inline worker_pool_t()
-
inline worker_pool_t(const std::string &name, size_t n = 0, setup_task_t &&setup_task = {}, std::shared_ptr<spdlog::logger> log = nullptr)
-
inline ~worker_pool_t()
-
inline void post(task_t &&task)
-
inline void wait_finish()
Protected Functions
-
inline void _loop(size_t id, std::string name)
-
inline worker_pool_t()
-
template<typename T, typename warp_t>
struct vortex::scan::detail::xy_waypoints_t : public vortex::scan::detail::grid_waypoints_t<T, 2, warp_t> Subclassed by vortex::scan::radial_waypoints_t< T, warp_t >, vortex::scan::raster_waypoints_t< T, warp_t >, vortex::scan::spiral_waypoints_t< T, warp_t >
Public Types
-
using base_t = grid_waypoints_t<T, 2, warp_t>
Public Functions
-
inline size_t &ascans_per_bscan()
-
inline const size_t &ascans_per_bscan() const
-
inline size_t &bscans_per_volume()
-
inline const size_t &bscans_per_volume() const
-
inline size_t &samples_per_segment()
-
inline const size_t &samples_per_segment() const
-
inline size_t &segments_per_volume()
-
inline const size_t &segments_per_volume() const
-
inline xy_waypoints_t()
-
using base_t = grid_waypoints_t<T, 2, warp_t>
-
namespace std
-
namespace vortex
Typedefs
-
using null_acquire_config_t = acquire::null_config_t
-
template<typename T>
using null_acquisition_t = acquire::null_acquisition_t<T, null_acquire_config_t>
-
using file_config_t = acquire::file_config_t
-
template<typename T>
using file_acquisition_t = acquire::file_acquisition_t<T, file_config_t>
-
using counter_t = size_t
-
using delta_t = ptrdiff_t
-
using time_t = std::chrono::high_resolution_clock::time_point
-
template<typename T, size_t N>
using xt_point = xt::xtensor_fixed<double, xt::xshape<N>>
-
using seconds = std::chrono::duration<double>
-
using format_planner_t = format::format_planner_t<format::format_planner_config_t>
-
using stack_format_executor_t = format::stack_format_executor_t<format::stack_format_executor_config_t>
-
using broct_format_executor_t = format::broct_format_executor_t<format::stack_format_executor_config_t>
-
using position_format_executor_t = format::position_format_executor_t<format::position_format_executor_config_t>
-
using radial_format_executor_t = format::radial_format_executor_t<format::radial_format_executor_config_t>
-
using spiral_format_executor_t = format::spiral_format_executor_t<format::spiral_format_executor_config_t>
-
using null_io_config_t = io::null_config_t
-
using null_io_t = io::null_io_t<null_io_config_t>
-
using default_marker_t = vortex::marker::marker_t<marker::scan_boundary, marker::volume_boundary, marker::segment_boundary, marker::active_lines, marker::inactive_lines, marker::event>
-
template<typename T, size_t N>
using fixed_cpu_view_t = typename detail::fixed_cpu_view_t<T>::template of_dimension<N>
-
using null_processor_t = process::null_processor_t<process::processor_config_t<float>>
-
template<typename input_element_t, typename output_element_t>
using copy_processor_t = process::copy_processor_t<input_element_t, output_element_t, process::copy_processor_config_t>
-
using stream_dump_t = storage::stream_dump_t<storage::stream_dump_config_t>
-
using marker_log_t = storage::marker_log_t<storage::marker_log_config_t>
-
template<typename element_t>
using simple_stream_t = storage::simple_stream_t<element_t, storage::simple_stream_config_t>
-
template<typename element_t>
using simple_stack_t = storage::simple_stack_t<element_t, storage::simple_stack_config_t>
-
using broct_storage_t = storage::broct_storage_t<storage::broct_storage_config_t>
-
using interrupt_callback_t = std::function<void()>
Functions
-
template<typename T>
auto xt_row(T &m, ptrdiff_t r)
-
template<typename T>
auto xt_row(const T &m, ptrdiff_t r)
-
template<typename T>
auto xt_col(T &m, ptrdiff_t c)
-
template<typename T>
auto xt_col(const T &m, ptrdiff_t c)
-
template<typename logger_t, typename ...args_t>
void raise(std::shared_ptr<logger_t> logger, const std::string &msg, args_t... args)
-
template<typename logger_t, typename ...args_t>
void raise(std::shared_ptr<logger_t> logger, std::exception_ptr e = {})
-
template<typename container_t>
std::string join(const container_t &n, const std::string &sep)
-
template<typename container_t>
std::string shape_to_string(const container_t &n, const std::string &sep =" x ")
-
template<size_t N, typename T>
auto to_array(xt::svector<T> in)
-
template<size_t N, typename Input>
auto tail(const Input &in)
-
template<typename stride_t, typename ...indexes_t>
size_t strided_offset(const stride_t &stride, indexes_t... vals)
-
VORTEX_VIEW_AS_IMPL(is_cpu_viewable, cpu)
-
template<typename T>
auto view(cpu_tensor_t<T> &obj)
-
template<typename T>
auto view(const cpu_tensor_t<T> &obj)
-
template<typename T>
auto view(xt::xarray<T> &obj)
-
template<typename T>
auto view(const xt::xarray<T> &obj)
-
template<typename T, typename = std::enable_if_t<std::is_enum_v<T>>>
static std::underlying_type_t<T> cast(const T &v)
-
bool check_keyboard_interrupt()
-
void _signal_handler(int sig)
-
void setup_keyboard_interrupt()
-
void setup_tcp_low_latency()
-
void setup_realtime()
-
void set_thread_name(const std::string &name)
-
void setup_keyboard_interrupt(interrupt_callback_t &&callback)
-
template<typename T, typename ...stream_ts, typename function_t>
inline void select(const std::tuple<stream_ts...> &streams, size_t index, function_t &&function)
-
template<typename T, typename ...stream_ts, typename function_t>
inline void select(const std::tuple<const stream_ts...> &streams, size_t index, function_t &&function)
-
template<typename ...stream_ts, typename function_t>
inline void select_any(const std::tuple<stream_ts...> &streams, size_t idx, function_t &&function)
-
template<typename ...stream_ts, typename function_t>
inline void select_any(const std::tuple<const stream_ts...> &streams, size_t idx, function_t &&function)
-
template<class Func, class Tuple, size_t N = 0>
inline void runtime_get(Tuple &tup, size_t idx, const Func &func)
-
template<class Func, class Tuple, size_t N = 0>
inline void runtime_get(const Tuple &tup, size_t idx, const Func &func)
-
template<typename Condition, class Func, class Tuple, size_t N = 0>
inline void runtime_get_condition(Tuple &tup, size_t idx, const Func &func)
-
template<typename Condition, class Func, class Tuple, size_t N = 0>
inline void runtime_get_condition(const Tuple &tup, size_t idx, const Func &func)
-
template<typename T, typename ...Args>
ptrdiff_t index_by_value(const std::tuple<Args...> &t, T &&val)
-
template<typename T, typename ...Args>
ptrdiff_t index_by_pointer(const std::tuple<Args...> &t, const T &val)
-
template<class ...Ts>
overloaded(Ts...) -> overloaded<Ts...>
Variables
-
constexpr auto pi = std::numbers::pi
-
constexpr auto I = std::complex<double>(0, 1)
-
template<typename T>
constexpr bool is_cpu_viewable = std::is_base_of_v<cpu_viewable<std::decay_t<T>>, std::decay_t<T>>
-
template<typename T>
constexpr bool is_viewable = std::is_base_of_v<viewable<std::decay_t<T>>, std::decay_t<T>>
-
static sig_atomic_t _keyboard_interrupt = 0
-
static std::function<void()> _keyboard_callback
-
using null_acquire_config_t = acquire::null_config_t
-
namespace vortex::acquire
Typedefs
-
using default_clock_t = clock_t<clock::internal_t, clock::external_t>
-
using default_trigger_t = trigger_t<trigger::single_external_t, trigger::dual_external_t>
-
using default_option_t = option_t<option::auxio_trigger_out_t, option::auxio_clock_out_t, option::auxio_pacer_out_t, option::oct_ignore_bad_clock_t>
-
using default_clock_t = clock_t<clock::internal_t, clock::external_t>
-
namespace clock
-
namespace detail
-
namespace option
-
namespace trigger
-
namespace vortex::alazar
Typedefs
-
template<typename T, size_t N>
using fixed_alazar_view_t = typename detail::fixed_alazar_view_t<T>::template of_dimension<N>
Enums
-
enum channel_t
Values:
-
enumerator A
-
enumerator B
-
enumerator C
-
enumerator D
-
enumerator E
-
enumerator F
-
enumerator G
-
enumerator H
-
enumerator I
-
enumerator J
-
enumerator K
-
enumerator L
-
enumerator M
-
enumerator N
-
enumerator O
-
enumerator P
-
enumerator A
-
enum coupling_t
Values:
-
enumerator DC
-
enumerator AC
-
enumerator DC
-
enum clock_edge_t
Values:
-
enumerator rising
-
enumerator falling
-
enumerator rising
-
enum trigger_slope_t
Values:
-
enumerator positive
-
enumerator negative
-
enumerator positive
Functions
-
std::string to_string(const coupling_t &v)
-
std::string to_string(RETURN_CODE rc)
-
VORTEX_VIEW_AS_IMPL(is_alazar_viewable, alazar)
-
template<typename T>
auto view(alazar_device_tensor_t<T> &obj)
-
template<typename T>
auto view(const alazar_device_tensor_t<T> &obj)
-
template<typename T, size_t N>
-
namespace vortex::alazar::detail
Functions
-
template<typename ...Args>
const void handle_error(RETURN_CODE rc, const std::string &msg, Args... args)
-
_LOOKUP_DECLARE(lookup_board_kind, U32, std::string)
-
_LOOKUP_DECLARE(lookup_sampling_rate, size_t, U32)
-
_LOOKUP_DECLARE(lookup_impedance_ohms, size_t, U32)
-
_LOOKUP_DECLARE(lookup_input_range_millivolts, size_t, U32)
-
_LOOKUP_DECLARE(lookup_supported_impedance_ohms_input_range_millivolts, std::string, std::vector<impedance_input_range_t>)
-
_LOOKUP_DECLARE(lookup_trigger_range_volts, size_t, U32)
-
_LOOKUP_DECLARE(lookup_alignment, std::string, const alignment_info_t&)
-
template<typename ...Args>
-
namespace vortex::copy
Typedefs
Functions
-
template<typename V1, typename V2>
void copy(const cpu_viewable<V1> &src_, const cpu_viewable<V2> &dst_, const options_block2volume_t &options)
-
template<typename V1, typename V2>
void copy(const cpu_viewable<V1> &src_, const cpu_viewable<V2> &dst_, const options_block2block_t &options)
-
template<typename V1, typename V2>
-
namespace vortex::copy::detail
Functions
-
template<typename E1, typename E2>
void copy_by_xtensor(const xt::xexpression<E1> &viewed_src_, xt::xexpression<E2> &viewed_dst_, const options_block2volume_t &o)
-
template<typename E1, typename E2>
void copy_by_xtensor(const xt::xexpression<E1> &viewed_src_, xt::xexpression<E2> &viewed_dst_, const options_block2block_t &o)
-
template<typename E1, typename E2>
-
namespace vortex::copy::transform
Functions
-
template<typename T>
inline auto to_linear(transform_t transform)
-
template<typename T>
-
namespace vortex::cuda
Typedefs
-
using device_t = int
-
template<typename T>
using complex = typename detail::cuda_complex_t<T>::type
-
template<typename T>
using device_type = typename detail::cuda_type_t<T>::type
-
template<typename T, size_t N>
using fixed_cuda_view_t = typename detail::fixed_cuda_view_t<T>::template of_dimension<N>
Functions
-
template<typename V1, typename V2>
void copy(const viewable<V1> &src_, const viewable<V2> &dst_, const stream_t *stream = nullptr)
-
template<typename V1, typename V2>
void copy(const viewable<V1> &src, const viewable<V2> &dst, size_t count, const stream_t *stream = nullptr)
-
template<typename V1, typename V2>
void copy(const viewable<V1> &src_, size_t src_offset, const viewable<V2> &dst_, size_t dst_offset, size_t count, const stream_t *stream = nullptr)
-
template<typename V1, typename V2>
void copy(const viewable<V1> &src, size_t src_pitch, const viewable<V2> &dst, size_t dst_pitch, size_t rows, size_t cols, const stream_t *stream = nullptr)
-
template<typename V1, typename V2>
void copy(const viewable<V1> &src_, size_t src_offset, size_t src_pitch, const viewable<V2> &dst_, size_t dst_offset, size_t dst_pitch, size_t rows, size_t cols, const stream_t *stream = nullptr)
-
device_t device()
-
VORTEX_VIEW_AS_IMPL(is_cuda_viewable, cuda)
-
template<typename T>
auto view(cuda_device_tensor_t<T> &obj)
-
template<typename T>
auto view(const cuda_device_tensor_t<T> &obj)
-
template<typename T>
auto view(cuda_host_tensor_t<T> &obj)
-
template<typename T>
auto view(const cuda_host_tensor_t<T> &obj)
-
using device_t = int
-
namespace vortex::cuda::detail
Functions
-
template<typename V1, typename V2>
constexpr auto kind(const cuda_viewable<V1>&, const cuda_viewable<V2>&)
-
template<typename V1, typename V2>
constexpr auto kind(const cuda_viewable<V1>&, const cpu_viewable<V2>&)
-
template<typename V1, typename V2>
constexpr auto kind(const cpu_viewable<V1>&, const cuda_viewable<V2>&)
-
template<typename V1, typename V2>
constexpr auto kind(const cpu_viewable<V1>&, const cpu_viewable<V2>&)
-
template<typename T, typename U, typename = typename std::enable_if_t<std::is_same_v<cuda::device_type<T>, cuda::device_type<U>>>>
void memcpy(T *dst, const U *src, size_t count, cudaMemcpyKind kind, const stream_t *stream)
-
template<typename V1, typename V2>
-
namespace vortex::daqmx
Enums
-
enum edge_t
Values:
-
enumerator rising
-
enumerator falling
-
enumerator rising
-
enum terminal_t
Values:
-
enumerator referenced
-
enumerator unreferenced
-
enumerator differential
-
enumerator pseudodifferential
-
enumerator referenced
-
enum sample_mode_t
Values:
-
enumerator finite
-
enumerator continuous
-
enumerator hardware
-
enumerator finite
Functions
-
std::string to_string(int32 error)
-
enum edge_t
-
namespace vortex::detail
Functions
-
template<typename stride_t>
size_t strided_offset(const stride_t &stride, size_t level)
-
template<typename stride_t, typename index_t, typename ...indexes_t>
size_t strided_offset(const stride_t &stride, size_t level, index_t val, indexes_t... vals)
-
template<typename To, typename Convert, typename From>
void check_upper(From o)
-
template<typename To, typename Convert, typename From>
void check_lower(From o)
-
template<typename stride_t>
-
namespace tuple
-
namespace vortex::endpoint
Enums
-
enum buffer_strategy_t
Values:
-
enumerator none
-
enumerator segment
-
enumerator volume
-
enumerator none
-
enum buffer_strategy_t
-
namespace vortex::engine
Typedefs
-
using job_callback_t = std::function<void(size_t, session_status_t, timing_t)>
Enums
-
enum event_t
Values:
-
enumerator launch
-
enumerator start
-
enumerator run
-
enumerator stop
-
enumerator complete
-
enumerator shutdown
-
enumerator exit
-
enumerator error
-
enumerator abort
-
enumerator launch
Functions
-
template<typename T = double, typename E>
xt::xtensor<T, 1> find_rising_edges(const xt::xexpression<E> &signal_, size_t samples_per_second, size_t number_of_edges = 0)
-
using job_callback_t = std::function<void(size_t, session_status_t, timing_t)>
-
namespace vortex::engine::bind
Functions
-
template<typename block_t, typename T>
auto acquisition(std::shared_ptr<T> a, const base_t& = base_t())
-
template<typename block_t, typename T>
auto processor(std::shared_ptr<T> a, const base_t& = base_t())
-
template<typename block_t, typename T>
-
namespace detail
-
namespace fft
-
namespace vortex::format
Typedefs
-
using format_action_t = std::variant<action::copy, action::resize, action::finish_segment, action::finish_volume, action::finish_scan, action::event>
-
using format_plan_t = std::vector<format_action_t>
-
using format_action_t = std::variant<action::copy, action::resize, action::finish_segment, action::finish_volume, action::finish_scan, action::event>
-
namespace action
-
namespace vortex::io
Typedefs
-
using default_channel_t = channel_t<channel::analog_voltage_input_t, channel::analog_voltage_output_t, channel::digital_input_t, channel::digital_output_t>
-
using default_channel_t = channel_t<channel::analog_voltage_input_t, channel::analog_voltage_output_t, channel::digital_input_t, channel::digital_output_t>
-
namespace channel
-
namespace detail
-
namespace marker
-
namespace detail
-
namespace vortex::motion
Functions
-
xt::xtensor<double, 2> plan(size_t dimension, double dt, const state_t<const double*> &start, const state_t<const double*> &end, const limits_t<double> *limits, const options_t &options = {})
-
xt::xtensor<double, 2> plan(size_t dimension, double dt, const state_t<const double*> &start, const state_t<const double*> &end, const limits_t<double> *limits, const options_t &options = {})
-
namespace process
-
namespace vortex::process::detail
Functions
-
void resample(const cuda::stream_t &stream, size_t samples_per_record, size_t records, size_t samples_per_ascan, const uint16_t *before_index, const uint16_t *after_index, const float *before_weight, const float *after_weight, const uint16_t *in, float *out)
-
void resample(const cuda::stream_t &stream, size_t samples_per_record, size_t records, size_t samples_per_ascan, const uint16_t *before_index, const uint16_t *after_index, const float *before_weight, const float *after_weight, const float *in, float *out)
-
size_t compute_average_internal_storage_size(size_t samples_per_record, const uint16_t *average_record_buffer, size_t average_record_count, float *average_record)
-
void compute_average(const cuda::stream_t &stream, const uint8_t *internal_storage, size_t samples_per_record, const uint16_t *average_record_buffer, size_t average_record_count, float *average_record)
-
void compute_average(const cuda::stream_t &stream, size_t samples_per_record, const uint16_t *average_record_buffer, size_t average_record_count, float *average_record)
-
void subtract_average(const cuda::stream_t &stream, size_t samples_per_record, size_t records, const uint16_t *average_record_buffer, size_t average_record_count, const float *average_record, const uint16_t *in, float *out)
-
void complex_filter(const cuda::stream_t &stream, size_t samples_per_ascan, size_t ascans, const uint16_t *in, const cuFloatComplex *filter, cuFloatComplex *out)
-
void complex_filter(const cuda::stream_t &stream, size_t samples_per_ascan, size_t ascans, const float *in, const cuFloatComplex *filter, cuFloatComplex *out)
-
void cast(const cuda::stream_t &stream, size_t samples_per_ascan, size_t ascans, const uint16_t *in, cuFloatComplex *out)
-
void cast(const cuda::stream_t &stream, size_t samples_per_ascan, size_t ascans, const float *in, cuFloatComplex *out)
-
void cast(const cuda::stream_t &stream, size_t samples_per_ascan, size_t ascans, const cuFloatComplex *in, cuFloatComplex *out)
-
_DECLARE(float, uint16_t, float)
-
_DECLARE(float, float, float)
-
_DECLARE(float, cuFloatComplex, float)
-
_DECLARE(float, uint16_t, int8_t)
-
_DECLARE(float, float, int8_t)
-
_DECLARE(float, cuFloatComplex, int8_t)
-
void resample(const cuda::stream_t &stream, size_t samples_per_record, size_t records, size_t samples_per_ascan, const uint16_t *before_index, const uint16_t *after_index, const float *before_weight, const float *after_weight, const uint16_t *in, float *out)
-
namespace scan
-
namespace warp
-
namespace simple
-
namespace vortex::storage
Typedefs
-
template<typename config_t>
using marker_log_t = marker::marker_v0_t<config_t>
-
template<typename config_t>
using stream_dump_t = dump::stream_dump_v0_t<config_t>
Enums
-
enum broct_scan_t
Values:
-
enumerator rectangular
-
enumerator bscan
-
enumerator aiming
-
enumerator mscan
-
enumerator radial
-
enumerator ascan
-
enumerator speckle
-
enumerator mixed
-
enumerator xfast_yfast
-
enumerator xfast_yfast_speckle
-
enumerator spiral
-
enumerator rectangular
-
enum hdf5_stack_header_t
Values:
-
enumerator none
-
enumerator matlab
-
enumerator none
-
enum simple_stream_header_t
Values:
-
enumerator none
-
enumerator raw
-
enumerator none
-
enum simple_stack_header_t
Values:
-
enumerator none
-
enumerator raw
-
enumerator numpy
-
enumerator matlab
-
enumerator none
-
template<typename config_t>
-
namespace vortex::storage::detail::matlab
Functions
-
inline void write_preamble(std::ostream &out, uint16_t version, std::string text = default_text)
-
template<typename element_t, typename shape_t>
auto write_header(std::ostream &out, shape_t shape, std::string name ="data", std::string text = default_text, bool global = false, bool logical = false)
-
inline void write_final_padding(std::ofstream &out)
Variables
-
const uint32_t miINT8 = 1
-
const uint32_t miUINT8 = 2
-
const uint32_t miINT16 = 3
-
const uint32_t miUINT16 = 4
-
const uint32_t miINT32 = 5
-
const uint32_t miUINT32 = 6
-
const uint32_t miSINGLE = 7
-
const uint32_t miDOUBLE = 9
-
const uint32_t miINT64 = 12
-
const uint32_t miUINT64 = 13
-
const uint32_t miMATRIX = 14
-
const uint32_t miCOMPRESSED = 15
-
const uint32_t miUTF8 = 16
-
const uint32_t miUTF16 = 17
-
const uint32_t miUTF32 = 18
-
const uint8_t mxDOUBLE_CLASS = 6
-
const uint8_t mxSINGLE_CLASS = 7
-
const uint8_t mxINT8_CLASS = 8
-
const uint8_t mxUINT8_CLASS = 9
-
const uint8_t mxINT16_CLASS = 10
-
const uint8_t mxUINT16_CLASS = 11
-
const uint8_t mxINT32_CLASS = 12
-
const uint8_t mxUINT32_CLASS = 13
-
const uint8_t mxINT64_CLASS = 14
-
const uint8_t mxUINT64_CLASS = 15
-
const uint8_t complex_flag = 0b00001000
-
const uint8_t global_flag = 0b00000100
-
const uint8_t logical_flag = 0b00000010
-
const auto default_text =
"MATLAB"
-
const auto text_length = 116
-
const uint16_t endian_indicator = 0x4d49
-
const auto alignment = 8
-
inline void write_preamble(std::ostream &out, uint16_t version, std::string text = default_text)
-
namespace dump
-
namespace marker
-
namespace vortex::strategy
-
namespace sync
-
namespace util
-
namespace variant
-
namespace detail
- file acquire.hpp
- file dso.hpp
- file base.hpp
- file base.hpp
- file base.hpp
- file config.hpp
- file cuda.hpp
- file cuda.hpp
- file cuda.hpp
- file cuda.hpp
- file cuda.hpp
Defines
-
_DECLARE(factor_t, in_t, out_t)
-
_DECLARE(factor_t, in_t, out_t)
- file fft.hpp
- file fft.hpp
- file host.hpp
- file file.hpp
- file null.hpp
- file null.hpp
- file null.hpp
- file core.cpp
- file core.cpp
- file core.hpp
- file core.hpp
- file board.cpp
Defines
-
_ACCESSOR_HELPER(name, parameter, display)
Functions
-
static auto _trigger_level(float level)
- _ACCESSOR_HELPER (samples_per_record, RECORD_LENGTH, "samples per record (record length)")
- _ACCESSOR_HELPER (record_capture_count, GET_RECORDS_CAPTURED, "record capture count")
- _ACCESSOR_HELPER (pending_buffer_count, GET_ASYNC_BUFFERS_PENDING, "pending count")
-
_ACCESSOR_HELPER(name, parameter, display)
- file board.hpp
- file db.cpp
Defines
-
_LOOKUP_DEFINE(name, map, display, in_t, out_t)
Functions
- _LOOKUP_DEFINE (lookup_board_kind, _board_kind_map, "board kind", U32, std::string)
- _LOOKUP_DEFINE (lookup_sampling_rate, _sampling_rate_map, "sampling rate", size_t, U32)
- _LOOKUP_DEFINE (lookup_supported_sampling_rate, _supported_sampling_rate_map, "supported sampling rates", std::string, std::vector< size_t >)
- _LOOKUP_DEFINE (lookup_impedance_ohms, _impedance_ohms_map, "impedance (Ohms)", size_t, U32)
- _LOOKUP_DEFINE (lookup_input_range_millivolts, _input_range_millivolts_map, "input range (mV)", size_t, U32)
- _LOOKUP_DEFINE (lookup_supported_impedance_ohms_input_range_millivolts, _supported_impedance_ohms_input_range_millivolts_map, "supported impedance (Ohms)/input range (mV) combination", std::string, std::vector< impedance_input_range_t >)
- _LOOKUP_DEFINE (lookup_trigger_range_volts, _trigger_range_volts_map, "trigger range (V)", size_t, U32)
- _LOOKUP_DEFINE (lookup_alignment, _alignment_map, "alignment requirements", std::string, const alignment_info_t &)
Variables
-
static std::unordered_map<size_t, U32> _sampling_rate_map
-
static std::unordered_map<std::string, std::vector<size_t>> _supported_sampling_rate_map = {{
"ATS310", {10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000}}, {"ATS9120", {10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000}}, {"ATS330", {10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 25000000, 50000000}}, {"ATS9130", {10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 25000000, 50000000}}, {"ATS460", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 125000000}}, {"ATS660", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 125000000}}, {"ATS850", {10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 25000000, 50000000}}, {"ATS860", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 25000000, 50000000, 100000000, 125000000, 250000000}}, {"ATS9350", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 125000000, 250000000, 500000000}}, {"ATS9351", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 125000000, 250000000, 500000000}}, {"ATS9360", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 200000000, 500000000, 800000000, 1000000000, 1200000000, 1500000000, 1800000000}}, {"ATS9373", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 200000000, 500000000, 800000000, 1000000000}}, {"ATS9373", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 200000000, 500000000, 800000000, 1000000000, 1200000000, 1500000000, 2000000000, 2400000000, 3000000000, 3600000000, 4000000000}}, {"ATS9416", {1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000}}, {"ATS9440", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 125000000}}, {"ATS9462", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 125000000, 160000000, 180000000}}, {"ATS9625", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 125000000, 250000000}}, {"ATS9626", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 125000000, 250000000}}, {"ATS9870", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 250000000, 500000000, 1000000000}}, {"AXI9870", {1000, 2000, 5000, 10000, 20000, 50000, 100000, 200000, 500000, 1000000, 2000000, 5000000, 10000000, 20000000, 50000000, 100000000, 250000000, 500000000, 1000000000}},}
-
static std::unordered_map<size_t, U32> _impedance_ohms_map = {{1000000, IMPEDANCE_1M_OHM}, {50, IMPEDANCE_50_OHM}, {75, IMPEDANCE_75_OHM}, {300, IMPEDANCE_300_OHM},}
-
static std::unordered_map<size_t, U32> _input_range_millivolts_map = {{20, INPUT_RANGE_PM_20_MV}, {40, INPUT_RANGE_PM_40_MV}, {50, INPUT_RANGE_PM_50_MV}, {80, INPUT_RANGE_PM_80_MV}, {100, INPUT_RANGE_PM_100_MV}, {200, INPUT_RANGE_PM_200_MV}, {400, INPUT_RANGE_PM_400_MV}, {500, INPUT_RANGE_PM_500_MV}, {800, INPUT_RANGE_PM_800_MV}, {1000, INPUT_RANGE_PM_1_V}, {2000, INPUT_RANGE_PM_2_V}, {4000, INPUT_RANGE_PM_4_V}, {5000, INPUT_RANGE_PM_5_V}, {8000, INPUT_RANGE_PM_8_V}, {10000, INPUT_RANGE_PM_10_V}, {20000, INPUT_RANGE_PM_20_V}, {40000, INPUT_RANGE_PM_40_V}, {16000, INPUT_RANGE_PM_16_V}, {1250, INPUT_RANGE_PM_1_V_25}, {2500, INPUT_RANGE_PM_2_V_5}, {125, INPUT_RANGE_PM_125_MV}, {250, INPUT_RANGE_PM_250_MV},}
-
static std::unordered_map<std::string, std::vector<impedance_input_range_t>> _supported_impedance_ohms_input_range_millivolts_map
-
static std::unordered_map<size_t, U32> _packing_mode_map = {{16, PACK_DEFAULT}, {8, PACK_8_BITS_PER_SAMPLE}, {12, PACK_12_BITS_PER_SAMPLE},}
-
static std::unordered_map<size_t, U32> _trigger_range_volts_map = {{5000, ETR_5V}, {1000, ETR_1V}, {2500, ETR_2V5}, {0, ETR_TTL},}
-
static std::unordered_map<std::string, alignment_info_t> _alignment_map = {{
"ATS310", {256, 4, 16}}, {"ATS330", {256, 4, 16}}, {"ATS460", {128, 16, 16}}, {"ATS660", {128, 16, 16}}, {"ATS850", {256, 4, 16}}, {"ATS860", {256, 32, 32}}, {"ATS9350", {256, 32, 32}}, {"ATS9351", {256, 32, 32}}, {"ATS9120", {256, 32, 32}}, {"ATS9130", {256, 32, 32}}, {"ATS9360", {256, 128, 128}}, {"ATS9370", {256, 128, 128}}, {"ATS9371", {256, 128, 128}}, {"ATS9373", {256, 128, 128}}, {"ATS9416", {256, 128, 128}}, {"ATS9440", {256, 32, 32}}, {"ATS9462", {256, 32, 32}}, {"ATS9625", {256, 32, 32}}, {"ATS9626", {256, 32, 32}}, {"ATS9870", {256, 64, 64}}, {"AXI9870", {256, 64, 64}},}
-
_LOOKUP_DEFINE(name, map, display, in_t, out_t)
- file db.hpp
Defines
-
_LOOKUP_DECLARE(name, in_t, out_t)
-
_LOOKUP_DECLARE(name, in_t, out_t)
- file copy.hpp
- file copy.hpp
- file copy.hpp
- file runtime.cpp
- file runtime.hpp
- file types.hpp
- file daqmx.cpp
- file daqmx.hpp
- file daqmx.hpp
- file fftw.hpp
- file motion.cpp
- file motion.hpp
- file common.hpp
- file common.hpp
- file common.hpp
- file cpu.hpp
- file cpu.hpp
- file cpu.hpp
- file storage.hpp
- file storage.hpp
- file adapter.hpp
- file clock.hpp
- file session.hpp
- file dispersion.hpp
- file engine.hpp
- file engine.hpp
- file engine.hpp
- file scan.hpp
- file scan.hpp
- file source.hpp
- file format.hpp
- file broct.hpp
- file broct.hpp
- file plan.hpp
- file position.hpp
- file radial.hpp
- file radial.hpp
- file spiral.hpp
- file spiral.hpp
- file stack.hpp
- file io.hpp
- file flags.hpp
- file marker.hpp
- file marker.hpp
- file marker.hpp
- file memory.hpp
- file alazar.hpp
- file tensor.hpp
- file view.hpp
Defines
-
VORTEX_VIEW_AS_IMPL(view_check, suffix)
-
VORTEX_VIEW_AS_IMPL(view_check, suffix)
- file process.hpp
- file freeform.hpp
- file pattern.hpp
- file raster.hpp
- file segmented.hpp
- file warp.hpp
- file waypoints.hpp
- file header.hpp
- file raw.hpp
- file hdf5.hpp
- file simple.hpp
- file stream.hpp
- file stream.hpp
- file cast.hpp
- file platform.cpp
Defines
-
REALTIME_PRIORITY
-
REALTIME_PRIORITY
- file platform.hpp
- file ring.hpp
- file sync.cpp
- file sync.hpp
- file thread.hpp
- file tuple.hpp
- file variant.hpp
Defines
-
CALL(obj, function, ...)
-
CALL_CONST(obj, function, ...)
-
DISPATCH(function, ...)
-
DISPATCH_CONST(function, ...)
-
ACCESS(attribute)
-
ACCESS_CONST(attribute)
-
CALL(obj, function, ...)
- file vortex.hpp
- dir src/vortex/acquire
- dir src/vortex/acquire/dso/alazar
- dir src/vortex/driver/alazar
- dir src/vortex/driver/cuda
- dir src/vortex/engine/detail
- dir src/vortex/storage/detail
- dir src/vortex/driver
- dir src/vortex/acquire/dso
- dir src/vortex/endpoint
- dir src/vortex/engine
- dir src/vortex/format
- dir src/vortex/io
- dir src/vortex/marker
- dir src/vortex/memory
- dir src/vortex/process
- dir src/vortex/scan
- dir src/vortex/simple
- dir src
- dir src/vortex/storage
- dir src/vortex/util
- dir src/vortex