Line Logic#

The Line Logic camera feature allows you to determine the logic of an I/O line.

The logic of an I/O line can either be positive or negative.

Using the Feature#

Determining the Line Logic#

To determine the logic of an I/O line:

  1. Set the LineSelectorparameter to the desired I/O line.
  2. Get the value of the LineLogic parameter.
    This parameter is read-only.

Line Logic Overview#

Positive Line Logic#

If the line logic is positive, the relation between the electrical status of an I/O line and the LineStatus parameter is as follows:

Electrical Status LineStatus Parameter Value
Voltage level high True
Voltage level low False

Negative Line Logic#

If the line logic is negative, the relation between the electrical status of an I/O line and the LineStatus parameter is as follows:

Electrical Status LineStatus Parameter Value
Voltage level high False
Voltage level low True

Sample Code#

// Select a line
camera.LineSelector.SetValue(LineSelector_Line1);
// Get the logic of the line
LineLogicEnums e = camera.LineLogic.GetValue();
INodeMap& nodemap = camera.GetNodeMap();
// Select a line
CEnumerationPtr(nodemap.GetNode("LineSelector"))->FromString("Line1");
// Get the logic of the line
String_t e = CEnumerationPtr(nodemap.GetNode("LineLogic"))->ToString();
INodeMap& nodemap = camera.GetNodeMap();
// Select a line
CEnumParameter(nodemap, "LineSelector").SetValue("Line1");
// Get the logic of the line
String_t e = CEnumParameter(nodemap, "LineLogic").GetValue();
// Select a line
camera.Parameters[PLCamera.LineSelector].SetValue(PLCamera.LineSelector.Line1);
// Get the logic of the line
string e = camera.Parameters[PLCamera.LineLogic].GetValue();
// Select a line
Pylon.DeviceFeatureFromString(hdev, "LineSelector", "Line1");
// Get the logic of the line
string e = Pylon.DeviceFeatureToString(hdev, "LineLogic");
/* 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 a line */
errRes = PylonDeviceFeatureFromString(hdev, "LineSelector", "Line1");
CHECK(errRes);
/* Get the logic of the line */
len = sizeof(e_str);
errRes = PylonDeviceFeatureToString(hdev, "LineLogic", e_str, &len);
CHECK(errRes);

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