def start_task(self, timeout=5):
     started = False
     start_time = time.time()
     while (not started) and (time.time()-start_time < timeout):
         try:
             pydaq.DAQmxStartTask(self.task_handle)
         except pydaq.DAQError as daq_err:
             if daq_err.error == -50103: # "The specified resource is reserved."
                 pass
             else:
                 raise daq_err
         else:
             started = True
     if not started:
         raise pydaq.DAQError(-50103)