Impact Acquire SDK Python
Porting Existing Code

This chapter contains a detailed description about changes in the interface that have been made, that either might break existing code or lead to the deprecation of certain functions and structures and data types.

For each release version of the interface where changes that are important for development have been introduced this chapter will contain a section that will explain as detailed as necessary what these changes are and how to modify the code to run with the latest version of the interface.

Apart from that possible impacts on existing applications will be described as well.

Normally there won't be changes that require the developer to change his code. However when changes have been made it will only take a few minutes to port code to the latest version of the interface when sticking to this document.

Porting Existing Code Written With Versions Smaller Than 2.35.0

Changed Run-time Behavior

Various simple getter functions that have been forgotten have been converted into Python properties to get a more consistent interface. Previous versions of this interface e.g. had a property Device.isOpen but a function Device.isInUse().

List of functions that became properties:

Porting Existing Code Written With Versions Smaller Than 2.36.0

Changed Run-time Behavior

Previous version of the interface did use custom data types for reading from a properties translation dictionary. This did require some a priori knowledge about the property usually not needed in a Python application. Apart from that it made writing code suitable for arbitrary property access more difficult. Starting from version 2.36.0 of Impact Acquire simple Python lists can be passed to all these functions now.

BEFORE:

devMgr = acquire.DeviceManager()
pDev = devMgr[0]
d = acquire.StringTDeviceInterfaceLayoutVector()
pDev.interfaceLayout.getTranslationDict(d)
for i in range(d.size()):
print d[i].first
print d[i].second

NOW:

devMgr = acquire.DeviceManager()
pDev = devMgr[0]
d = []
pDev.interfaceLayout.getTranslationDict(d)
for i in range(len(d)):
print(d[i])
print(d[i][0]) # same as calling 'print(d[i].first)'
print(d[i][1]) # same as calling 'print(d[i].second)'

The same applies for a lot of other translation dictionary related functions

Porting Existing Code Written With Versions Smaller Than 3.0.0

The release of 3.0.0 of the Impact Acquire interface does no longer contain interface members, that have been declared as deprecated in previous versions. The following list can be used to port code to this release. These changes will NOT affect existing binaries, thus application compiled with code from this list, will continue to work, but can't be built with a new interface release.

Changed Compile-time Behavior

List of classes, functions and data types that have been removed and their replacement:

Deprecated Stuff

Note
Beginning with the release of 3.0.0 of Impact Acquire everything specifically related to frame grabber boards will be considered as deprecated and might be removed without further notice. No direct replacement will be provided for any of the classes, functions and data types!

List of frame grabber specific classes that have been declared deprecated:

List of frame grabber specific constants that have been declared deprecated: