private void start() throws IOException {
   tsNumPointsPV.putWait(numPointsToCollect);
   tsNumPointsPV.setValueMonitoring(true);
   Integer configuredNumPoints = tsNumPointsPV.get();
   if (numPointsToCollect != configuredNumPoints) {
     throw new IllegalArgumentException(
         MessageFormat.format(
             "The number of points requested ({0}) exceeds the maximum configured for this EPICS installation ({1}).",
             numPointsToCollect, configuredNumPoints));
   }
   tsControlPV.putWait(TSControlCommands.ERASE_AND_START);
 }
 public void stop() throws IOException {
   tsControlPV.putWait(TSControlCommands.STOP);
   tidyup();
 }
 private void tidyup() throws IOException {
   tsNumPointsPV.setValueMonitoring(false);
 }