Files
imdd_silas/Functions/moveit_wrapper_.m
2025-02-20 05:38:09 +01:00

41 lines
1.2 KiB
Matlab

function [data_out, state_out] = moveit_wrapper(func_name, data_in, para)
% Generic wrapper for legacy MATLAB functions using loop-based execution
%
% Usage:
% [data_out, state_out] = wrapper('quantize', data_in, para);
%
% Inputs:
% - func_name: Name of the function as a string (e.g., 'quantize')
% - data_in: Input signal or empty for initialization
% - para: Structure with parameters (optional)
%
% Outputs:
% - data_out: Processed output signal
% - state_out: Internal state of the function
global loop;
% Ensure the function exists
if ~exist(func_name, 'file')
error('Function "%s" does not exist.', func_name);
end
% Step 1: Get default parameters if not provided
if nargin < 3 || isempty(para)
loop = 0; % Request parameter structure
[para, comment] = feval(func_name);
end
% Initialize state
state = struct();
% Step 2: Initialize the function
loop = 0;
[~, state_] = feval(func_name, data_in, state, para);
% Step 3: Process input signal
loop = 1;
[data_out, state_out] = feval(func_name, data_in, state_, para);
end