Line Mode#

The Line Mode camera feature allows you to configure whether an I/O line is used as input or output.

You can configure the line mode of any general purpose I/O line (GPIO line). For opto-coupled I/O lines, you can only determine the current line mode.

Using the Feature#

Configuring the Line Mode#

Configure the line mode only when the I/O lines are not in use. Otherwise, the camera may show unpredictable behavior.

Set the LineSelector parameter to the desired GPIO line.

Set the LineMode parameter to one of the following values:

  • Input: Configures the GPIO line as an input line.
  • Output: Configures the GPIO line as an output line.

Determining the Line Mode#

  1. Set the LineSelector parameter to the desired I/O line.
  2. Get the value of the LineMode parameter to determine the current line mode of the I/O line.

Sample Code#

// Select GPIO line 3
camera.LineSelector.SetValue(LineSelector_Line3);
// Set the line mode to Input
camera.LineMode.SetValue(LineMode_Input);
// Get the current line mode
LineModeEnums e = camera.LineMode.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select GPIO line 3
CEnumerationPtr(nodemap.GetNode("LineSelector"))->FromString("Line3");
// Set the line mode to Input
CEnumerationPtr(nodemap.GetNode("LineMode"))->FromString("Input");
// Get the current line mode
String_t e = CEnumerationPtr(nodemap.GetNode("LineMode"))->ToString();
INodeMap& nodemap = camera.GetNodeMap();
// Select GPIO line 3
CEnumParameter(nodemap, "LineSelector").SetValue("Line3");
// Set the line mode to Input
CEnumParameter(nodemap, "LineMode").SetValue("Input");
// Get the current line mode
String_t e = CEnumParameter(nodemap, "LineMode").GetValue();
// Select GPIO line 3
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line3);
// Set the line mode to Input
camera.Parameters[PLCamera.LineMode].SetValue(PLCamera.LineMode.Input);
// Get the current line mode
string e = camera.Parameters[PLCamera.LineMode].GetValue();
// Select GPIO line 3
Pylon.DeviceFeatureFromString(hdev, "LineSelector", "Line3");
// Set the line mode to Input
Pylon.DeviceFeatureFromString(hdev, "LineMode", "Input");
// Get the current line mode
string e = Pylon.DeviceFeatureToString(hdev, "LineMode");
/* 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 */
size_t len = 0;
char e_str[64] = {0};
/* Select GPIO line 3 */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line3");
CHECK(errRes);
/* Set the line mode to Input */
errRes = PylonDeviceFeatureFromString(hdev, "LineMode", "Input");
CHECK(errRes);
/* Get the current line mode */
len = sizeof(e_str);
errRes = PylonDeviceFeatureToString(hdev, "LineMode", e_str, &len);
CHECK(errRes);

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