I'm trying to write a simple piece of python code using github examples but i'm facing some issues while i try to stop an acquisition with ul.daq_in_scan() function.
My goal is fairly simple (i guess): i want to scan the 8 analog channel at maximal rate (one point each 5µs) and stop the acquisition either by using a TTL signal, a HIGH to LOW hardware transition (using arduino for instance) or even after the completion of 500 measurements for each channel.
Here the code i use (i volontary skip the displaying value part).
from __future__ import absolute_import, division, print_function
from builtins import*# @UnusedWildImportfrom ctypes import cast, POINTER, c_ushort
import time
from mcculw import ul
from mcculw.enums import(ScanOptions,Status,FunctionType,ChannelType,ULRange,DigitalPortType,TriggerSensitivity,TriggerEvent,TriggerSource,InterfaceType)from mcculw.ul importULErrorfrom mcculw.device_info importDaqDeviceInfotry:from ui_examples_util importUIExample, show_ul_error
exceptImportError:from.ui_examples_util importUIExample, show_ul_error
defADCScanFunction():
use_device_detection =True
board_num =0
chan_list =[]
chan_type_list =[]
gain_list =[]
num_chans =8try:if use_device_detection:
ul.ignore_instacal()
devices = ul.get_daq_device_inventory(InterfaceType.ANY)
ul.create_daq_device(board_num, devices[0])
device_info =DaqDeviceInfo(board_num)if device_info.supports_daq_input:for i in range(0,8):
chan_list.append(i)
chan_type_list.append(ChannelType.ANALOG_SE)
gain_list.append(ULRange.UNI5VOLTS)
chan_list.append(0)
chan_type_list.append(ChannelType.CTR16)
gain_list.append(ULRange.NOTUSED)except:print('ok')
rate =200000
points_per_channel =500
total_count = points_per_channel *(num_chans)
scan_options =(ScanOptions.FOREGROUND |ScanOptions.EXTTRIGGER)# scan_options = (ScanOptions.BACKGROUND |# ScanOptions.CONTINUOUS | ScanOptions.EXTTRIGGER)# Allocate a buffer for the scan
memhandle = ul.win_buf_alloc_32(total_count)#Set the start trigger settings
ul.daq_set_trigger(board_num,TriggerSource.EXTTTL,TriggerSensitivity.RISING_EDGE,
chan_list[-1], chan_type_list[-1],
gain_list[-1],5,0,TriggerEvent.START)
ul.daq_set_trigger(board_num,TriggerSource.EXTTTL,TriggerSensitivity.ABOVE_LEVEL,
chan_list[-1], chan_type_list[-1],
gain_list[-1],5,0,TriggerEvent.STOP)
c = chan_list[0:8]# Run the scan
ul.daq_in_scan(board_num, chan_list[0:8], chan_type_list[0:8],
gain_list[0:8], num_chans, rate,0, total_count,
memhandle, scan_options)
I'm kind of lost and i'm affraid i don't understand how the TriggerEvent.STOP would work (and github examples are not very detailled in term of stopping an acquisition).
if someone could guide me on how to stop an acquisition with my previous condition (TTL, 5V to 0V, or after 500 points) that would be great !
Thank you to all those who will take the time to help me !
Question
Julien S
Hi everyone,
I'm trying to write a simple piece of python code using github examples but i'm facing some issues while i try to stop an acquisition with ul.daq_in_scan() function.
My goal is fairly simple (i guess): i want to scan the 8 analog channel at maximal rate (one point each 5µs) and stop the acquisition either by using a TTL signal, a HIGH to LOW hardware transition (using arduino for instance) or even after the completion of 500 measurements for each channel.
Here the code i use (i volontary skip the displaying value part).
When i use this, i have the following error:
I'm kind of lost and i'm affraid i don't understand how the TriggerEvent.STOP would work (and github examples are not very detailled in term of stopping an acquisition).
if someone could guide me on how to stop an acquisition with my previous condition (TTL, 5V to 0V, or after 500 points) that would be great !
Thank you to all those who will take the time to help me !
Link to comment
Share on other sites
1 answer to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now