forked from hbkworld/open-api-time-data-recorder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCalculateAcquisitionTime.m
33 lines (27 loc) · 1.53 KB
/
CalculateAcquisitionTime.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
function ChannelAcquisitionTime = CalculateAcquisitionTime(SignalDataMessages,NumberOfModules,NumberOfActiveChannels)
% Bruel & Kjaer LAN-XI Open Application Programming Interface
% MATLAB Simple Recorder GUI Version 1.0 (September 15, 2021)
% By Matthew Houtteman and Gert Nyrup
% +1 800-332-2040
% Developed in MATLAB R2021a with LAN-XI Firmware 2.10.0.501
% This function calculates how much time data has been collected for each
% channel in the setup
SignalDataMessages = sortrows(SignalDataMessages,{'Ticks','ModuleNumber','SignalId'},{'ascend','ascend','ascend'});
for ii=1:1:height(SignalDataMessages)
TicksPerSecond = 2^double(SignalDataMessages.K(ii))*3^double(SignalDataMessages.L(ii))*5^double(SignalDataMessages.M(ii))*7^double(SignalDataMessages.N(ii));
SignalDataMessages.TickSecondsRelativeTime(ii) = (1/TicksPerSecond)*double(SignalDataMessages.Ticks(ii));
end
SignalDataMessages.TickSecondsRelativeTime = SignalDataMessages.TickSecondsRelativeTime - min(SignalDataMessages.TickSecondsRelativeTime);
ChannelAcquisitionTime = zeros(sum(NumberOfActiveChannels),1);
kk = 1;
for ii = 1:1:NumberOfModules
for jj = 1:1:NumberOfActiveChannels(ii)
TableRowNumbers = SignalDataMessages.ModuleNumber == ii & SignalDataMessages.SignalId == jj;
TempSignalDataMessages = SignalDataMessages(TableRowNumbers,:);
ChannelAcquisitionTime(kk) = max(TempSignalDataMessages.TickSecondsRelativeTime);
kk = kk + 1;
clearvars TableRowNumbers TempSignalDataMessages
end
end
end