Skip to content

Line Overload Status#

The Line Overload Status camera feature allows you to determine whether a GPIO line is overloaded, i.e., not powered correctly.

Using the Feature#

Causes for Line Overload#

If a GPIO line is configured as an output line, you must apply appropriate output signal voltages as specified in your camera topic. You can find your camera topic in the "Models" section.

If you don't apply the appropriate voltages, a line overload may occur. As long as the absolute maximum voltage of the camera is not exceeded, the camera can detect the overload and report it via the BslLineOverloadStatus parameter.

Determining the Overload Status of an I/O Line#

To determine whether a GPIO line is overloaded:

  1. Set the LineSelector parameter to the desired I/O line, e.g., Line1.
  2. Get the value of the BslLineOverloadStatus parameter. The parameter is read-only.

A value of false (0) means that the GPIO line is not overloaded.

A value of true (1) means that the GPIO line is overloaded. Check the configuration of your I/O lines.

Determining the Overload Status of All I/O Lines#

To determine the overload status of all I/O lines in a single operation, read the BslLineOverloadStatusAll parameter. The parameter is reported as a 64-bit value.

Info

The BslLineOverloadStatusAll parameter is only available via the pylon API, not via the pylon Viewer feature tree.

Certain bits in the value are associated with the I/O lines. Each bit indicates the status of its associated line:

  • If a bit is 0, the associated line is not overloaded.
  • If a bit is 1, the associated line is overloaded. Check the configuration of your I/O lines.

The bit-to-line association is as follows:

  • Bit 0 indicates Line1 status.
  • Bit 1 indicates Line2 status.
  • Bit 2 indicates Line3 status.

Example: All lines high = 0b111

Info

If the Line Inverter feature is enabled, the camera inverts the BslLineOverloadStatusAll parameter value. All 0 bits change to 1, and vice versa.

Sample Code#

ace 2 and boost Cameras#

// Select a line
camera.LineSelector.SetValue(LineSelector_Line1);
// Determine the status of the selected line
bool status = camera.BslLineOverloadStatus.GetValue();
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
int64_t lineOverloadStatusAll = camera.BslLineOverloadStatusAll.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select a line
CEnumerationPtr(nodemap.GetNode("LineSelector"))->FromString("Line1");
// Determine the status of the selected line
bool status = CBooleanPtr(nodemap.GetNode("BslLineOverloadStatus"))->GetValue();
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
int64_t lineOverloadStatusAll = CIntegerPtr(nodemap.GetNode("BslLineOverloadStatusAll"))->GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select a line
CEnumParameter(nodemap, "LineSelector").SetValue("Line1");
// Determine the status of the selected line
bool status = CBooleanParameter(nodemap, "BslLineOverloadStatus").GetValue();
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
int64_t lineOverloadStatusAll = CIntegerParameter(nodemap, "BslLineOverloadStatusAll").GetValue();
// Select a line
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line1);
// Determine the status of the selected line
bool status = camera.Parameters[PLCamera.BslLineOverloadStatus].GetValue();
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
Int64 lineOverloadStatusAll = camera.Parameters[PLCamera.BslLineOverloadStatusAll].GetValue();
// Select a line
Pylon.DeviceFeatureFromString(hdev, "LineSelector", "Line1");
// Determine the status of the selected line
bool status = Pylon.DeviceGetBooleanFeature(hdev, "BslLineOverloadStatus");
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
Int64 lineOverloadStatusAll = Pylon.DeviceGetIntegerFeature(hdev, "BslLineOverloadStatusAll");
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
_Bool status = false;
int64_t lineOverloadStatusAll = 0;
/* Select a line */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line1");
CHECK(errRes);
/* Determine the status of the selected line */
errRes = PylonDeviceGetBooleanFeature(hdev, "BslLineOverloadStatus", &status);
CHECK(errRes);
/* Get the line overload status of all I/O lines */
/* Because the GenICam interface does not support */
/* 32-bit words, the line status is reported as a 64-bit value */
errRes = PylonDeviceGetIntegerFeature(hdev, "BslLineOverloadStatusAll", &lineOverloadStatusAll);
CHECK(errRes);

Other Cameras#

// Select a line
camera.LineSelector.SetValue(LineSelector_Line1);
// Determine the status of the selected line
bool status = camera.LineOverloadStatus.GetValue();
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
int64_t lineOverloadStatusAll = camera.LineOverloadStatusAll.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select a line
CEnumerationPtr(nodemap.GetNode("LineSelector"))->FromString("Line1");
// Determine the status of the selected line
bool status = CBooleanPtr(nodemap.GetNode("LineOverloadStatus"))->GetValue();
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
int64_t lineOverloadStatusAll = CIntegerPtr(nodemap.GetNode("LineOverloadStatusAll"))->GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select a line
CEnumParameter(nodemap, "LineSelector").SetValue("Line1");
// Determine the status of the selected line
bool status = CBooleanParameter(nodemap, "LineOverloadStatus").GetValue();
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
int64_t lineOverloadStatusAll = CIntegerParameter(nodemap, "LineOverloadStatusAll").GetValue();
// Select a line
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line1);
// Determine the status of the selected line
bool status = camera.Parameters[PLCamera.LineOverloadStatus].GetValue();
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
Int64 lineOverloadStatusAll = camera.Parameters[PLCamera.LineOverloadStatusAll].GetValue();
// Select a line
Pylon.DeviceFeatureFromString(hdev, "LineSelector", "Line1");
// Determine the status of the selected line
bool status = Pylon.DeviceGetBooleanFeature(hdev, "LineOverloadStatus");
// Get the line overload status of all I/O lines
// Because the GenICam interface does not support
// 32-bit words, the line status is reported as a 64-bit value
Int64 lineOverloadStatusAll = Pylon.DeviceGetIntegerFeature(hdev, "LineOverloadStatusAll");
/* Macro to check for errors */
#define CHECK(errc) if (GENAPI_E_OK != errc) printErrorAndExit(errc)
GENAPIC_RESULT errRes = GENAPI_E_OK;  /* Return value of pylon methods */
_Bool status = false;
int64_t lineOverloadStatusAll = 0;
/* Select a line */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line1");
CHECK(errRes);
/* Determine the status of the selected line */
errRes = PylonDeviceGetBooleanFeature(hdev, "LineOverloadStatus", &status);
CHECK(errRes);
/* Get the line overload status of all I/O lines */
/* Because the GenICam interface does not support */
/* 32-bit words, the line status is reported as a 64-bit value */
errRes = PylonDeviceGetIntegerFeature(hdev, "LineOverloadStatusAll", &lineOverloadStatusAll);
CHECK(errRes);

You can also use the pylon Viewer to easily set the parameters.