MEDAQLib
err = calllib('medaqlib', 'ExecSCmd', h_sensor, 'Get_ControllerInfo');
assert(strcmp(err, 'ERR_NOERROR'), 'medaqlib:ExecSCmd', 'Get_ControllerInfo');
% Display controller name
[~, param_name, controller_name, ~] = calllib('medaqlib', ...
'GetParameterString', h_sensor, 'SA_ControllerName', ...
blanks(max_str_length), libpointer('uint32Ptr', max_str_length));
fprintf('%s = %s\n', param_name, controller_name);
% Display controller serial number
[~, param_name, controller_serial_number, ~] = calllib('medaqlib', ...
'GetParameterString', h_sensor, 'SA_SerialNumber', ...
blanks(max_str_length), libpointer('uint32Ptr', max_str_length));
fprintf('%s = %s\n', param_name, controller_serial_number);
%% Read information about the transmitted data
err = calllib('medaqlib', 'ExecSCmd', h_sensor, 'Get_TransmittedDataInfo');
assert(strcmp(err, 'ERR_NOERROR'), 'medaqlib:ExecSCmd', 'Get_TransmittedDataInfo');
[~, ~, channel_count] = calllib('medaqlib', 'GetParameterInt', h_sensor, ...
'IA_ValuesPerFrame', libpointer('int32Ptr', 0));
disp("Read "+string(number_of_reads)+" measurements from "+ ...
channel_count+" channels ...");
if channel_count == 0
error('No data channels available');
end
channel_names = cell(1, channel_count);
for k = 1:channel_count
[~, ~, index] = calllib('medaqlib', 'GetParameterInt', h_sensor, ...
sprintf('IA_Index%d', k), libpointer('int32Ptr', 0));
[~, ~, scaled_name, ~] = calllib('medaqlib', 'GetParameterString', ...
h_sensor, sprintf('IA_Scaled_Name%d', k), blanks(max_str_length), ...
libpointer('uint32Ptr', max_str_length));
[~, ~, scaled_unit, len] = calllib('medaqlib', 'GetParameterBinary', ...
h_sensor, sprintf('IA_Scaled_Unit%d', k), ...
zeros(1, max_str_length, 'uint8'), ...
libpointer('uint32Ptr', max_str_length));
if len > 0
scaled_unit = char(scaled_unit(1:len));
else
scaled_unit = '';
end
[~, ~, scaled_range_min] = calllib('medaqlib', 'GetParameterDouble', ...
h_sensor, sprintf('IA_Scaled_RangeMin%d', k), libpointer('doublePtr', 0));
[~, ~, scaled_range_max] = calllib('medaqlib', 'GetParameterDouble', ...
h_sensor, sprintf('IA_Scaled_RangeMax%d', k), libpointer('doublePtr', 0));
disp(string(index)+": "+scaled_name+" ["+string(scaled_range_min) ...
eddyNCDT 3005 Schnittstellenanleitung
Seite 27