87 lines
2.6 KiB
Python
87 lines
2.6 KiB
Python
#!/usr/bin/python
|
|
# -*- coding:utf-8 -*-
|
|
|
|
from Automation.BDaq import ErrorCode
|
|
from dummies.Automation.BDaq.BDaqApi import TDaqCtrlBase, TArray, BioFailed
|
|
from dummies.Automation.BDaq import DeviceInformation, ControlState
|
|
from dummies.Automation.BDaq.DeviceCtrl import DeviceCtrl
|
|
from dummies.Automation.BDaq import Utils
|
|
from dummies.Automation.BDaq import ErrorCode
|
|
|
|
|
|
class DaqCtrlBase(object):
|
|
def __init__(self, scenario, devInfo):
|
|
self._deviceCtrl = None
|
|
self._obj = self.create(scenario)
|
|
|
|
if devInfo is not None:
|
|
self.selectedDevice = devInfo
|
|
|
|
@property
|
|
def initialized(self):
|
|
return self.state != ControlState.Uninited
|
|
|
|
def cleanup(self):
|
|
TDaqCtrlBase.cleanup(self._obj)
|
|
|
|
def dispose(self):
|
|
TDaqCtrlBase.dispose(self._obj)
|
|
|
|
@property
|
|
def selectedDevice(self):
|
|
devInfo = DeviceInformation()
|
|
TDaqCtrlBase.getSelectedDevice(self._obj, devInfo)
|
|
return devInfo
|
|
|
|
@selectedDevice.setter
|
|
def selectedDevice(self, devInfo):
|
|
if not isinstance(devInfo, (DeviceInformation, int, str)):
|
|
raise TypeError('The parameter value is not supported.')
|
|
|
|
if isinstance(devInfo, str):
|
|
ret = ErrorCode.Success
|
|
elif isinstance(devInfo, int):
|
|
ret = ErrorCode.Success
|
|
else:
|
|
ret = ErrorCode.Success
|
|
|
|
#if BioFailed(ret):
|
|
# raise ValueError('ERRORE MODULO I/O: CODICE 0x%X' % (ret.value))
|
|
|
|
@property
|
|
def state(self):
|
|
ret = TDaqCtrlBase.getState(self._obj)
|
|
return Utils.toControlState(ret)
|
|
|
|
@property
|
|
def device(self):
|
|
if self._deviceCtrl is None:
|
|
self._deviceCtrl = DeviceCtrl(TDaqCtrlBase.getDevice(self._obj))
|
|
return self._deviceCtrl
|
|
|
|
@property
|
|
def supportedDevices(self):
|
|
nativeArray = TDaqCtrlBase.getSupportedDevices(self._obj)
|
|
deviceTreeNodeArr = TArray.toDeviceTreeNode(nativeArray)
|
|
return deviceTreeNodeArr
|
|
|
|
@property
|
|
def supportedModes(self):
|
|
nativeArray = TDaqCtrlBase.getSupportedModes(self._obj)
|
|
accessModeList = TArray.toAccessMode(nativeArray)
|
|
return accessModeList
|
|
|
|
@property
|
|
def module(self):
|
|
return TDaqCtrlBase.getModule(self._obj)
|
|
|
|
def create(self, scenario):
|
|
return TDaqCtrlBase.Create(scenario.value)
|
|
|
|
def __set_loadProfile(self, profile):
|
|
ret = ErrorCode.lookup(TDaqCtrlBase.LoadProfile(self._obj, profile))
|
|
if BioFailed(ret):
|
|
raise ValueError('set loadProfile is failed, the error code is 0x%X' % (ret.value))
|
|
|
|
loadProfile = property(None, __set_loadProfile)
|