1414 end
1515
1616 properties (SetAccess = private )
17- isTriggered logical
18- isArmed logical
17+ isTriggered logical = false
18+ isArmed logical = false
1919
2020 TriggerTime {mustBePositive } % Time of occurrence of trigger event
2121 end
5353
5454 obj.preTrigger_ms = preTrigger_ms ;
5555 obj.postTrigger_ms = postTrigger_ms ;
56- obj.RemainingPostTriggerSamplesInitial = 1 + round(postTrigger_ms / obj .getSamplePeriod(options .AppName));
56+ obj.RemainingPostTriggerSamplesInitial = 1 + round(postTrigger_ms / 1000 / obj .getSamplePeriod(options .AppName));
5757 % Check if trigger signal exists by calling its info. Errors out if signal is not found
5858 bossapi .inst.getInfoSignalFromMldatx(options .AppName,triggerSignal );
5959 obj.TriggerSignal = triggerSignal ;
@@ -106,7 +106,6 @@ function disarm(obj)
106106 end
107107
108108 function reset(obj )
109- obj.isArmed = false ;
110109 obj.isTriggered = false ;
111110 obj.RemainingPostTriggerSamplesCurrent = obj .RemainingPostTriggerSamplesInitial;
112111 reset@bossapi.inst.streamingAsyncBuffer(obj );
@@ -118,7 +117,7 @@ function delete(obj)
118117
119118 function out = read(obj )
120119 if obj .isFull
121- out = read@bossapi.inst.streamingAsyncBuffer( obj , ' extractAsTimetable' ,true );
120+ out = obj .peek( ' extractAsTimetable' ,true );
122121 elseif obj .isArmed
123122 if obj .isTriggered
124123 error(' triggeredBuffer:notFull' ,' Buffer is not full yet. Please wait and try again.' );
@@ -140,6 +139,7 @@ function write(obj, instObj, event)
140139 if obj .Enable && ~obj .isFull
141140 % Get data for trigger signal
142141 [triggerTime ,triggerData ] = getCallbackDataForSignal(instObj , event , obj .TriggerSignal);
142+
143143 % Get data for buffer signal
144144 [signalTime ,signalData ] = obj .getCallbackDataForSignal(instObj , event );
145145 if ~ismatrix(signalData )
@@ -156,11 +156,13 @@ function write(obj, instObj, event)
156156 obj.isTriggered = true ;
157157
158158 % Add all buffers pretrigger to buffer
159- write@bossapi.inst.streamingAsyncBuffer(obj , signalTime(1 : triggerIdx - 1 ), signalData(1 : triggerIdx - 1 ,: ));
159+ if ~isempty(signalData )
160+ write@bossapi.inst.streamingAsyncBuffer(obj , signalTime(1 : triggerIdx - 1 ), signalData(1 : triggerIdx - 1 ,: ));
160161
161- % Remove rows already added to buffer
162- signalTime(1 : triggerIdx - 1 ) = [];
163- signalData(1 : triggerIdx - 1 ,: ) = [];
162+ % Remove rows already added to buffer
163+ signalTime(1 : triggerIdx - 1 ) = [];
164+ signalData(1 : triggerIdx - 1 ,: ) = [];
165+ end
164166 end
165167
166168 % Fill buffer with new samples depending on trigger
@@ -183,15 +185,20 @@ function write(obj, instObj, event)
183185 end
184186 end
185187
186- function p = plot(obj , parentFig )
188+ function parentAxes = plot(obj , parentAxes )
187189 arguments
188190 obj
189- parentFig = uifigure
191+ parentAxes matlab.graphics.axis.Axes = axes
190192 end
191193
192- % WIP
193194 data = obj .read;
194- p = plot(parentFig , data .Time, data .Variables);
195+ plot(parentAxes , data .Time, data .Variables, ' DisplayName' , obj .SignalName);
196+
197+ xline(parentAxes , obj .TriggerTime, ' --r' ,' Trigger' ,' DisplayName' ,' Trigger' );
198+
199+ title(parentAxes , obj .SignalName,' Interpreter' ,' none' );
200+ % legend('show','Interpreter','none');
201+ grid(parentAxes ," on" );
195202 end
196203 end
197204
0 commit comments