36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
#!/usr/bin/python
|
|
# -*- coding:utf-8 -*-
|
|
|
|
from components.Automation.BDaq.BDaqApi import TDioCtrlBase, TArray
|
|
from components.Automation.BDaq.DaqCtrlBase import DaqCtrlBase
|
|
from components.Automation.BDaq.DioFeatures import DioFeatures
|
|
from components.Automation.BDaq.DioPort import DioPort
|
|
|
|
|
|
class DioCtrlBase(DaqCtrlBase):
|
|
def __init__(self, scenario, devInfo):
|
|
super(DioCtrlBase, self).__init__(scenario, devInfo)
|
|
self._dio_features = None
|
|
self._dio_ports = list()
|
|
|
|
@property
|
|
def features(self):
|
|
if self._dio_features is None:
|
|
self._dio_features = DioFeatures(TDioCtrlBase.getFeatures(self._obj))
|
|
return self._dio_features
|
|
|
|
@property
|
|
def portCount(self):
|
|
return self.features.portCount
|
|
|
|
@property
|
|
def ports(self):
|
|
if not self._dio_ports:
|
|
nativeArray = TDioCtrlBase.getPorts(self._obj)
|
|
count = self.portCount
|
|
for i in range(count):
|
|
dioPortObj = DioPort(TArray.getItem(nativeArray, i))
|
|
self._dio_ports.append(dioPortObj)
|
|
|
|
return self._dio_ports
|