diff options
| author | John Sun <jsun@sightmachine.com> | 2014-04-02 16:22:14 -0700 |
|---|---|---|
| committer | John Sun <jsun@sightmachine.com> | 2014-04-02 16:22:14 -0700 |
| commit | 01e24424971ffa9faa5dabf2e6724cea997a2afb (patch) | |
| tree | 8882d0e2c93e2a1f74178c21b6bffa02a2edee16 /vimba.py | |
| parent | 54bec3f39dc7915593a29c22ed1aac0e29ab53b6 (diff) | |
| download | pymba-01e24424971ffa9faa5dabf2e6724cea997a2afb.tar.gz pymba-01e24424971ffa9faa5dabf2e6724cea997a2afb.zip | |
First pass at making pymba a pip installable module.
1) Moved all the source-code under a new folder "pyvimba". Yes I changed the name. Feel free to change it back
2) Added initial CHANGES.txt, MANIFEST.in, LICENSE, README.txt
3) Move opencv_example.py to "tests" directory
Diffstat (limited to 'vimba.py')
| -rw-r--r-- | vimba.py | 231 |
1 files changed, 0 insertions, 231 deletions
diff --git a/vimba.py b/vimba.py deleted file mode 100644 index 0add297..0000000 --- a/vimba.py +++ /dev/null @@ -1,231 +0,0 @@ -# -*- coding: utf-8 -*- -import vimbastructure as structs -from vimbadll import VimbaDLL -from vimbaexception import VimbaException -from vimbasystem import VimbaSystem -from vimbacamera import VimbaCamera -from vimbainterface import VimbaInterface -from ctypes import * - -class Vimba(object): - """ - An Allied Vision Technology Vimba API. - This API provides access to AVT cameras. - """ - - # todo - assign camera info and feature info as own object proeprties - - def __init__(self): - - # create own system singleton object - self._system = VimbaSystem() - - # lists of VimbaCameraInfo and VimbaInterfaceInfo objects - # can't be called before startup() so populate later - self._cameraInfos = None - self._interfaceInfos = None - - # dict of {camera ID : VimbaCamera object} as we don't want to forget them - self._cameras = {} - - # dict of {interface ID : VimbaInterface object} as we don't want to forget them - self._interfaces = {} - - def _getInterfaceInfos(self): - """ - Gets interface info of all available interfaces. - - :returns: list -- interface info for available interfaces. - """ - if self._interfaceInfos is None: - # args - dummyInterfaceInfo = structs.VimbaInterfaceInfo() - numFound = c_uint32(-1) - - # call once just to get the number of interfaces - # Vimba DLL will return an error code - errorCode = VimbaDLL.interfacesList(byref(dummyInterfaceInfo), - 0, - byref(numFound), - sizeof(dummyInterfaceInfo)) - if errorCode != 0: - print errorCode - raise VimbaException(errorCode) - - numInterfaces = numFound.value - - # args - interfaceInfoArray = (structs.VimbaInterfaceInfo * numInterfaces)() - - # call again to get the features - # Vimba DLL will return an error code - errorCode = VimbaDLL.interfacesList(interfaceInfoArray, - numInterfaces, - byref(numFound), - sizeof(dummyInterfaceInfo)) - if errorCode != 0: - raise VimbaException(errorCode) - self._interfaceInfos = list(interfaceInfo for interfaceInfo in interfaceInfoArray) - return self._interfaceInfos - - def _getCameraInfos(self): - """ - Gets camera info of all attached cameras. - - :returns: list -- camera info for available cameras. - """ - if self._cameraInfos is None: - # args - dummyCameraInfo = structs.VimbaCameraInfo() - numFound = c_uint32(-1) - - # call once just to get the number of cameras - # Vimba DLL will return an error code - errorCode = VimbaDLL.camerasList(byref(dummyCameraInfo), - 0, - byref(numFound), - sizeof(dummyCameraInfo)) - if errorCode != 0: - print errorCode - raise VimbaException(errorCode) - - numCameras = numFound.value - - # args - cameraInfoArray = (structs.VimbaCameraInfo * numCameras)() - - # call again to get the features - # Vimba DLL will return an error code - errorCode = VimbaDLL.camerasList(cameraInfoArray, - numCameras, - byref(numFound), - sizeof(dummyCameraInfo)) - if errorCode != 0: - raise VimbaException(errorCode) - self._cameraInfos = list(camInfo for camInfo in cameraInfoArray) - return self._cameraInfos - - def getSystem(self): - """ - Gets system singleton object. - - :returns: VimbaSystem object -- the system singleton object. - """ - return self._system - - def getInterfaceIds(self): - """ - Gets IDs of all available interfaces. - - :returns: list -- interface IDs for available interfaces. - """ - return list(interfaceInfo.interfaceIdString for interfaceInfo in self._getInterfaceInfos()) - - def getCameraIds(self): - """ - Gets IDs of all available cameras. - - :returns: list -- camera IDs for available cameras. - """ - return list(camInfo.cameraIdString for camInfo in self._getCameraInfos()) - - def getInterfaceInfo(self, interfaceId): - """ - Gets interface info object of specified interface. - - :param interfaceId: the ID of the interface object to get. - - :returns: VimbaInterfaceInfo object -- the interface info object specified. - """ - # don't do this live as we already have this info - # return info object if it exists - for interfaceInfo in self._getInterfaceInfos(): - if interfaceInfo.interfaceIdString == interfaceId: - return interfaceInfo - # otherwise raise error - raise VimbaException(-54) - - def getCameraInfo(self, cameraId): - """ - Gets camera info object of specified camera. - - :param cameraId: the ID of the camera object to get. - - :returns: VimbaCameraInfo object -- the camera info object specified. - """ - # don't do this live as we already have this info - # return info object if it exists - for camInfo in self._getCameraInfos(): - if camInfo.cameraIdString == cameraId: - return camInfo - # otherwise raise error - raise VimbaException(-50) - - def getInterface(self, interfaceId): - """ - Gets interface object based on interface ID string. Will not recreate - interface object if it already exists. - - :param interfaceId: the ID of the interface. - - :returns: VimbaInterface object -- the interface object specified. - """ - # check ID is valid - if interfaceId in self.getInterfaceIds(): - # create it if it doesn't exist - if interfaceId not in self._interfaces: - self._interfaces[interfaceId] = VimbaInterface(interfaceId) - return self._interfaces[interfaceId] - raise VimbaException(-54) - - def getCamera(self, cameraId): - """ - Gets camera object based on camera ID string. Will not recreate - camera object if it already exists. - - :param cameraId: the ID of the camera. - - :returns: VimbaCamera object -- the camera object specified. - """ - # check ID is valid - if cameraId in self.getCameraIds(): - # create it if it doesn't exist - if cameraId not in self._cameras: - self._cameras[cameraId] = VimbaCamera(cameraId) - return self._cameras[cameraId] - raise VimbaException(-50) - - def getVersion(self): - """ - Retrieve the version number of VimbaC. - - :returns: string - Vimba API version info. - """ - # args - versionInfo = structs.VimbaVersion() - - # Vimba DLL will return an error code - errorCode = VimbaDLL.versionQuery(versionInfo, - sizeof(versionInfo)) - if errorCode != 0: - raise VimbaException(errorCode) - - versionStr = '.'.join([str(versionInfo.major), - str(versionInfo.minor), - str(versionInfo.patch)]) - return versionStr - - def startup(self): - """ - Initialize the VimbaC API. - """ - # Vimba DLL will return an error code - errorCode = VimbaDLL.startup() - if errorCode != 0: - raise VimbaException(errorCode) - - def shutdown(self): - """ - Perform a shutdown on the API. - """ - VimbaDLL.shutdown() |
