diff options
| author | morefigs <morefigs@gmail.com> | 2013-12-22 18:51:04 -0800 |
|---|---|---|
| committer | morefigs <morefigs@gmail.com> | 2013-12-22 18:51:04 -0800 |
| commit | ed4cfe842f1d36f98656e01f55d6822796a91a4b (patch) | |
| tree | ae14dd02d56ef72b839f6910a69c77c811bc9ce6 | |
| parent | 74673966eddf436898d558b60f7827cb4b7a95c2 (diff) | |
| download | pymba-ed4cfe842f1d36f98656e01f55d6822796a91a4b.tar.gz pymba-ed4cfe842f1d36f98656e01f55d6822796a91a4b.zip | |
Delete vimbafeature.py
| -rw-r--r-- | vimbafeature.py | 321 |
1 files changed, 0 insertions, 321 deletions
diff --git a/vimbafeature.py b/vimbafeature.py deleted file mode 100644 index b40b9cf..0000000 --- a/vimbafeature.py +++ /dev/null @@ -1,321 +0,0 @@ -# -*- coding: utf-8 -*- -import vimbastructure as structs -from vimbaexception import VimbaException -from vimbadll import VimbaDLL -from ctypes import * - -# class may extend a generic Vimba entity class one day... -class VimbaFeature(object): - """ - A feature of a Vimba object. - """ - - @property - def name(self): - return self._name - - @property - def handle(self): - return self._handle - - # lookup relevant function for feature type and pass to that function - @property - def value(self): - return self._getSetTypeFuncs[self._info.featureDataType][0]() - @value.setter - def value(self, val): - self._getSetTypeFuncs[self._info.featureDataType][1](val) - - @property - def range(self): - return self._rangeQueryTypeFuncs[self._info.featureDataType]() - - def __init__(self, name, handle): - - # set name and handle - self._name = name - self._handle = handle - - # set own info - self._info = self._getInfo() - - # type functions dict for looking up correct get/set function to use - self._getSetTypeFuncs = {0 : (self._notYetImplemented, self._notYetImplemented), # todo - 1 : (self._getIntFeature, self._setIntFeature), - 2 : (self._getFloatFeature, self._setFloatFeature), - 3 : (self._getEnumFeature, self._setEnumFeature), - 4 : (self._getStringFeature, self._setStringFeature), - 5 : (self._getBoolFeature, self._setBoolFeature), - 6 : (self._notYetImplemented, self._notYetImplemented), # todo - 7 : (self._notYetImplemented, self._notYetImplemented), # todo - 8 : (self._notYetImplemented, self._notYetImplemented)} # todo - - # type functions dict for looking up correct range function to use - self._rangeQueryTypeFuncs = {0 : self._unknownRange, - 1 : self._rangeQueryIntFeature, - 2 : self._rangeQueryFloatFeature, - 3 : self._unknownRange, - 4 : self._unknownRange, - 5 : self._unknownRange, - 6 : self._unknownRange, - 7 : self._unknownRange, - 8 : self._unknownRange} - - def getInfo(self): - """ - Get info of the feature. - - :returns: VimbaFeatureInfo object -- feature information.. - """ - return self._info - - def _getInfo(self): - """ - Get info of the feature. - - :returns: VimbaFeatureInfo object -- feature information.. - """ - # args for Vimba call - featureInfo = structs.VimbaFeatureInfo() - - # Vimba DLL will return an error code - errorCode = VimbaDLL.featureInfoQuery(self._handle, - self._name, - byref(featureInfo), - sizeof(featureInfo)) - if errorCode != 0: - raise VimbaException(errorCode) - - return featureInfo - - def _notYetImplemented(self, val = None): - """ - Raises exception if feature value type is not yet defined. - """ - raise VimbaException(-1001) - - def _getIntFeature(self): - """ - Get the value of an integer feature. - - :returns: int -- value of the specified feature. - """ - - # create args - valueToGet = c_int64() - - errorCode = VimbaDLL.featureIntGet(self._handle, - self._name, - byref(valueToGet)) - if errorCode != 0: - raise VimbaException(errorCode) - - return valueToGet.value - - def _setIntFeature(self, valueToSet): - """ - Set the value of an integer feature. - - :param valueToSet: the int value to set for the feature. - """ - - errorCode = VimbaDLL.featureIntSet(self._handle, - self._name, - valueToSet) - if errorCode != 0: - raise VimbaException(errorCode) - - def _getFloatFeature(self): - """ - Get the value of a float feature. - - :returns: float -- value of the specified feature. - """ - - # create args - valueToGet = c_double() - - errorCode = VimbaDLL.featureFloatGet(self._handle, - self._name, - byref(valueToGet)) - if errorCode != 0: - raise VimbaException(errorCode) - - return valueToGet.value - - def _setFloatFeature(self, valueToSet): - """ - Set the value of a float feature. - - :param valueToSet: the float value to set for the feature. - """ - - errorCode = VimbaDLL.featureFloatSet(self._handle, - self._name, - valueToSet) - if errorCode != 0: - raise VimbaException(errorCode) - - def _getEnumFeature(self): - """ - Get the value of an enum feature. - - :returns: enum -- value of the specified feature. - """ - - # create args - valueToGet = c_char_p() - - errorCode = VimbaDLL.featureEnumGet(self._handle, - self._name, - byref(valueToGet)) - if errorCode != 0: - raise VimbaException(errorCode) - - return valueToGet.value - - def _setEnumFeature(self, valueToSet): - """ - Set the value of an enum feature. - - :param valueToSet: the enum value to set for the feature. - """ - - errorCode = VimbaDLL.featureEnumSet(self._handle, - self._name, - valueToSet) - if errorCode != 0: - raise VimbaException(errorCode) - - def _getStringFeature(self): - """ - Get the value of a string feature. - - :returns: string -- value of the specified feature. - """ - - # create args - bufferSize = 256 - valueToGet = create_string_buffer('\000' * bufferSize) - sizeFilled = c_uint32() - - errorCode = VimbaDLL.featureStringGet(self._handle, - self._name, - valueToGet, - bufferSize, - byref(sizeFilled)) - if errorCode != 0: - raise VimbaException(errorCode) - - return valueToGet.value - - def _setStringFeature(self, valueToSet): - """ - Set the value of a string feature. - - :param valueToSet: the string value to set for the feature. - """ - - errorCode = VimbaDLL.featureStringSet(self._handle, - self._name, - valueToSet) - if errorCode != 0: - raise VimbaException(errorCode) - - def _getBoolFeature(self): - """ - Get the value of a bool feature. - - :returns: bool -- value of the specified feature. - """ - - # create args - valueToGet = c_bool() - - errorCode = VimbaDLL.featureBoolGet(self._handle, - self._name, - byref(valueToGet)) - if errorCode != 0: - raise VimbaException(errorCode) - - return valueToGet.value - - def _setBoolFeature(self, valueToSet): - """ - Set the value of a bool feature. - - :param valueToSet: the bool value to set for the feature. - """ - - errorCode = VimbaDLL.featureBoolSet(self._handle, - self._name, - valueToSet) - if errorCode != 0: - raise VimbaException(errorCode) - - def _unknownRange(self): - """ - Returns empty for ranges that have not been implemented. - """ - return '' - - def _rangeQueryIntFeature(self): - """ - Get the range of an int feature. - - :returns: tuple -- min and max range. - """ - - # create args - minToGet = c_int64() - maxToGet = c_int64() - - errorCode = VimbaDLL.featureIntRangeQuery(self._handle, - self._name, - byref(minToGet), - byref(maxToGet)) - if errorCode != 0: - raise VimbaException(errorCode) - - return (int(str(minToGet.value)), int(str(maxToGet.value))) - - def _rangeQueryFloatFeature(self): - """ - Get the range of a float feature. - - :returns: tuple -- min and max range. - """ - - # create args - minToGet = c_double() - maxToGet = c_double() - - errorCode = VimbaDLL.featureFloatRangeQuery(self._handle, - self._name, - byref(minToGet), - byref(maxToGet)) - if errorCode != 0: - raise VimbaException(errorCode) - - return (minToGet.value, maxToGet.value) - - #def _rangeQueryEnumFeature(self): - # """ - # Get the range of an enum feature. - # - # :returns: tuple -- min and max range. - # """ - # - # # create args - # minToGet = c_uint32() - # maxToGet = c_uint32() - # - # errorCode = VimbaDLL.featureEnumRangeQuery(self._handle, - # self._name, - # byref(minToGet), - # byref(maxToGet)) - # if errorCode != 0: - # raise VimbaException(errorCode) - # - # return (minToGet.value, maxToGet.value) - |
