st-ten-1/src/components/Automation/BDaq/DioCtrlBase.py
2024-09-19 12:53:03 +02:00

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