• Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
  • Support Home
  • Getting Started
    • Connecting Your Camera
    • 3rd Party Software Getting Started Guides
  • Tech Ref Manuals
    • Arena SDK Documentation
    • HTP003S – Helios2+ ToF 3D
    • HLT003S – Helios2 ToF 3D
    • HLS003S – Helios ToF 3D
    • HLF003S – Helios Flex ToF 3D
    • ATX245S – Atlas10 24.5 MP
    • ATX204S – Atlas10 20.4 MP
    • ATX162S – Atlas10 16.2 MP
    • ATX124S – Atlas10 12.3 MP
    • ATX081S – Atlas10 8.1 MP
    • ATX051S – Atlas10 5.0 MP
    • ATL314S – Atlas 31.4 MP
    • ATL196S – Atlas 19.6 MP
    • ATL168S – Atlas 16.8 MP
    • ATL120S – Atlas 12.3 MP
    • ATL089S – Atlas 8.9 MP
    • ATL071S – Atlas 7.1 MP
    • ATL050S – Atlas 5.0 MP
    • ATL028S – Atlas 2.8 MP
    • ATP200S – Atlas IP67 20 MP
    • ATP120S – Atlas IP67 12.3 MP
    • ATP089S -Atlas IP67 8.9 MP
    • ATP071S – Atlas IP67 7.1 MP
    • ATP028S – Atlas IP67 2.8 MP
    • TRI200S – Triton 20.0 MP
    • TRI120S – Triton 12.3 MP
    • TRI122S – Triton 12.2 MP
    • TRI089S – Triton 8.9 MP
    • TRI071S – Triton 7.1 MP
    • TRI064S – Triton 6.3 MP
    • TRI054S – Triton 5.4 MP
    • TRI050S-P/Q – Triton 5.0 MP Polarized
    • TRI050S – Triton 5.0 MP
    • TRI032S – Triton 3.2 MP
    • TRI028S – Triton 2.8 MP
    • TRI023S – Triton 2.3 MP
    • TRI016S – Triton 1.6 MP
    • TRI005S – Triton 0.5 MP
    • TRI004S – Triton 0.4 MP
    • TRI02KA – Triton 2K Line Scan
    • PHX200S – Phoenix 20.0 MP
    • PHX120S – Phoenix 12.3 MP
    • PHX122S – Phoenix 12.2 MP
    • PHX089S – Phoenix 8.9 MP
    • PHX064S – Phoenix 6.3 MP
    • PHX050S-P/Q – Phoenix 5.0 MP Polarized
    • PHX050S – Phoenix 5.0 MP
    • PHX032S – Phoenix 3.2 MP
    • PHX023S – Phoenix 2.3 MP
    • PHX016S – Phoenix 1.6 MP
    • PHX004S – Phoenix 0.4 MP
  • Application Notes
    • Bandwidth Sharing in Multi-Camera Systems
    • Combine Helios 3D Point Cloud with RGB Color
    • I2C Support on LUCID Cameras
    • Using GPIO on LUCID Cameras
    • Using PTP & Scheduled Action Commands
    • Helios2 And Triton Synchronization
    • Product Change Notifications (PCN)
  • Knowledge Base
  • Contact Support
  • Log In
home/Knowledge Base/Arena Software/Using Application Switchover with LUCID Cameras

Using Application Switchover with LUCID Cameras

1279 views 2 March 17, 2022 Updated on October 19, 2022

Introduction

Traditionally, GigE Vision applications that control a device must explicitly release control before another application can request control.

Primary Application Switchover allows another application to take control of a device without waiting for the original controlling application to release control. This can be useful if the primary application or host PC becomes unavailable and quick recovery is mandatory. This document shows how to use Primary Application Switchover with LUCID cameras.

Requirements

Arena SDK:

  • Windows: Arena SDK v1.0.36.5 or higher
  • Linux x64: Arena SDK v0.1.68 or higher
  • Linux ARM64: Arena SDK v0.1.48 or higher

Equipment Used:

  • PHX050S with firmware v1.62.0.0
  • PCIE-POE2 (ADLINK 2-CH PCIe GigE Vision PoE+ Card)
  • Netgear GS305PP

Example Setup

Consider the following example setup:

Normally, when multiple host PCs or multiple host applications attempt to connect to a single camera, the first application will be granted ReadWrite access and any subsequent connections will be granted ReadOnly access:

The above diagram contains the following sequence:

  1. PC1 connects to the PHX050S and is granted ReadWrite access to the camera
  2. PC2 connects to the PHX050S but since PC1 already has ReadWrite access, PC2 is granted ReadOnly access to the camera
  3. If PC2 attempts to set DeviceAccessStatus = ReadWrite to gain control of the camera, it will fail

Using Primary Application Switchover, it is possible for another PC or another host application to take control:

The above diagram contains the following sequence:

  1. PC1 connects to the PHX050S and is granted ReadWrite access to the camera
  2. PC1 sets the GenTL parameter CcpSwitchoverKey = 0x1000
    GenTL parameters are connection specific. If another application connects and sets this key, it will be able to take control of the camera.
  3. PC2 connects to the PHX050S but since PC1 already has ReadWrite access, PC2 is granted ReadOnly access to the camera
  4. PC2 sets the GenTL parameter CcpSwitchoverKey = 0x1000
  5. PC2 has set the correct switchover key, so it is granted ReadWrite access to the camera

In the above sequence, PC1 will lose control of the camera after PC2 is granted control.

In C++ code:

// Create a device
Arena::IDevice* pDevice = pSystem->CreateDevice(deviceInfos[0]);

// Retrieve DeviceAccessStatus
GenICam::gcstring deviceAccessStatus = Arena::GetNodeValue<GenICam::gcstring>(pDevice->GetTLDeviceNodeMap(), "DeviceAccessStatus");

// The switchover key to be used
static int64_t switchoverKey = 0x1000;

// Check DeviceAccessStatus to determine if we have ReadWrite status
// If we have ReadOnly status, another application has control of the camera:
if (deviceAccessStatus == "ReadWrite")
{
    // Set a switchover key in case another application needs to take control
    Arena::SetNodeValue<int64_t>(pDevice->GetTLDeviceNodeMap(), "CcpSwitchoverKey", switchoverKey);
}
else
{
    // Apply the correct switchover key and change the DeviceAccessStatus to ReadWrite to gain control
    // If there is no switchover key, or an incorrect switchover key, ReadWrite access will not be granted
    Arena::SetNodeValue<int64_t>(pDevice->GetTLDeviceNodeMap(), "CcpSwitchoverKey", switchoverKey);
    Arena::SetNodeValue<GenICam::gcstring>(pDevice->GetTLDeviceNodeMap(), "DeviceAccessStatus", "ReadWrite");
}

In the above example, the last application to connect to the camera will be granted ReadWrite access as long as the correct switchover key is supplied.

Review the SDK example Cpp_Enumeration_CcpSwitchover for a full demonstration.

Conclusion

For systems where redundancy and fault recovery are required, Primary Application Switchover allows a second application to recover control of a camera. It is also useful when there is a business requirement to allow another application or another host PC to immediately take control of a camera.

Was this helpful?

2 Yes  No
Related Articles
  • Using QOI with LUCID Cameras
  • Solving driver-related RDMA streaming issues with Ubuntu 22.04
  • Using Multiple Helios Cameras Simultaneously
  • Troubleshooting Network Timeouts (Linux)
  • Shading Correction Control (Atlas10)
  • Save Image on LUCID Camera’s File System

Didn't find your answer? Contact Us

  Using Multiple ROIs with LUCID Cameras

Heat management for LUCID products  

© 2024 LUCID Vision Labs Inc.
Looking to purchase our cameras?
Visit the LUCID Webstore at thinklucid.com
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}
LUCID Support & Help
Welcome to LUCID

We use cookies to facilitate online purchases and analyze our traffic. By clicking "Accept", you consent to our use of cookies.

Functional Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.
Manage options Manage services Manage {vendor_count} vendors Read more about these purposes
View preferences
{title} {title} {title}