def test_synchronize_timedelta(self): min_time = datetime.timedelta(seconds=0.042) self.patched_library.niTClk_Synchronize.side_effect = self.side_effects_helper.niTClk_Synchronize nitclk.synchronize(multiple_session_references, min_time) self.patched_library.niTClk_Synchronize.assert_called_once_with( _matchers.ViUInt32Matcher(len(multiple_sessions)), _matchers.ViSessionBufferMatcher(multiple_sessions), _matchers.ViReal64Matcher(min_time.total_seconds())) return
def test_synchronize(self): min_time = 0.042 self.patched_library.niTClk_Synchronize.side_effect = self.side_effects_helper.niTClk_Synchronize nitclk.synchronize(multiple_sessions, min_time) self.patched_library.niTClk_Synchronize.assert_called_once_with( _matchers.ViUInt32Matcher(len(multiple_sessions)), _matchers.ViSessionBufferMatcher(multiple_sessions), _matchers.ViReal64Matcher(min_time)) return
def test_api_get_error_description_fails(self): self.patched_library.niTClk_Synchronize.side_effect = self.side_effects_helper.niTClk_Synchronize self.side_effects_helper['Synchronize']['return'] = -1 self.patched_library.niTClk_GetExtendedErrorInfo.side_effect = self.side_effects_helper.niTClk_GetExtendedErrorInfo self.side_effects_helper['GetExtendedErrorInfo']['return'] = -2 try: nitclk.synchronize(multiple_session_references, 0.42) except nitclk.Error as e: assert e.code == -1 # we want the original error code from getting the attribute. assert e.description == "Failed to retrieve error description."
def test_api_error(self): error_string = 'Error' self.patched_library.niTClk_Synchronize.side_effect = self.side_effects_helper.niTClk_Synchronize self.side_effects_helper['Synchronize']['return'] = -1 self.patched_library.niTClk_GetExtendedErrorInfo.side_effect = self.side_effects_helper.niTClk_GetExtendedErrorInfo self.side_effects_helper['GetExtendedErrorInfo']['errorString'] = error_string try: nitclk.synchronize(multiple_session_references, 0.42) except nitclk.Error as e: assert e.code == -1 assert e.description == error_string
def example(resource_name1, resource_name2, options): with niscope.Session(resource_name=resource_name1, options=options) as session1, niscope.Session( resource_name=resource_name2, options=options) as session2: session_list = [session1, session2] for session in session_list: session.configure_vertical(range=1.0, coupling=niscope.VerticalCoupling.DC) session.configure_horizontal_timing(min_sample_rate=50000000, min_num_pts=1000, ref_position=50.0, num_records=1, enforce_realtime=True) session1.trigger_type = niscope.TriggerType.SOFTWARE nitclk.configure_for_homogeneous_triggers(session_list) nitclk.synchronize(session_list, 200e-9) nitclk.initiate(session_list) time.sleep(100) session1.send_software_trigger_edge(niscope.WhichTrigger.START) waveforms = session2.channels[0].fetch(num_samples=1000) for i in range(len(waveforms)): print('Waveform {0} information:'.format(i)) print(str(waveforms[i]) + '\n\n')
def test_nitclk_is_done(multiple_niscope_sessions): nitclk.configure_for_homogeneous_triggers(multiple_niscope_sessions) nitclk.synchronize(multiple_niscope_sessions, .001) nitclk.initiate(multiple_niscope_sessions) nitclk.is_done(multiple_niscope_sessions)