What is Migration Mode and how to use it in pylon?
The names of some standardized features have changed between GenICam SFNC v1.0 and GeniCam SFNC v2.0. (SFNC = "Standard Features Naming Convention")
In order to retain backwards compatibility, Basler cameras built using GeniCam SFNC v2.0 can be run in 'Migration Mode.'
This maps the new feature names of SFNC v2.0 to the old ones, so that a customer's older software will be able to operate the newer camera.
Currently, only cameras compliant with the USB3 Vision standard are based on the SFNC version 2.0. Basler GigE and Firewire cameras are based on previous SFNC versions.
These changes are described in-detail in the Pylon Programmer's Guide and Reference Documentation (Advanced Topics -> Migrating existing code for using USB camera devices), which is part of the pylon installation package.
Using the Migration Mode:
If the migration mode is activated, the changes shown in the tables in the pylon programmer's guide are automatically mapped, if a mapping exists. The migration mode supports writing code when working with multiple camera device types that are compatible with different SFNC versions. However, it is strongly recommended to adapt existing code to be SFNC 2.0 compatible if you are only working with SFNC 2.0 compatible cameras instead of using the migration mode.
For demonstration purposes only:
// Enable migration mode
GenApi::CBooleanPtr migrationModeEnable( camera.GetTLNodeMap().GetNode("MigrationModeEnable")); migrationModeEnable->SetValue( true);
// Access the camera's exposure time with both the old and new name:
GenApi::CFloatPtr exposureTime( camera.GetNodeMap().GetNode( "ExposureTimeAbs"));
GenApi::CFloatPtr exposureTime2( camera.GetNodeMap().GetNode( "ExposureTime"));