Skip to content

Commit ecd5ef1

Browse files
Add FB instance name to DEVLOG_ERROR in IEC61131-3 FBs
Add getFullQualifiedApplicationInstanceName to error messages in: - charString: F_FIND, F_REPLACE, F_CONCAT, F_INSERT - arithmetic: F_ADD, F_SUB, F_DIV, F_MUL, F_MOD, GEN_ADD - bitwiseOperators: F_SHL, F SHR, F_ROL, F_ROR - selection: GEN_F_MUX This helps identify which function block caused the error.
1 parent 1a034ea commit ecd5ef1

15 files changed

Lines changed: 46 additions & 32 deletions

File tree

modules/IEC61131-3/src/iec61131/arithmetic/F_ADD_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,14 +62,15 @@ namespace forte::iec61131::arithmetic {
6262
switch (paEIID) {
6363
case scmEventREQID:
6464
var_OUT = std::visit(
65-
[](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_MAGNITUDE_VARIANT {
65+
[this](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_MAGNITUDE_VARIANT {
6666
using T = std::decay_t<decltype(paIN1)>;
6767
using U = std::decay_t<decltype(paIN2)>;
6868
using deductedType = typename mpl::get_add_operator_result_type<T, U>::type;
6969
if constexpr (!std::is_same<deductedType, mpl::NullType>::value) {
7070
return func_ADD(paIN1, paIN2);
7171
}
72-
DEVLOG_ERROR("Adding incompatible types %s and %s\n", paIN1.getTypeNameID().data(),
72+
DEVLOG_ERROR("Adding incompatible types in %s! IN1:%s, IN2:%s\n",
73+
getFullQualifiedApplicationInstanceName('.').c_str(), paIN1.getTypeNameID().data(),
7374
paIN2.getTypeNameID().data());
7475
return CIEC_ANY_MAGNITUDE_VARIANT();
7576
},

modules/IEC61131-3/src/iec61131/arithmetic/F_DIV_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,15 @@ namespace forte::iec61131::arithmetic {
6060
switch (paEIID) {
6161
case scmEventREQID:
6262
var_OUT = std::visit(
63-
[](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_NUM_VARIANT {
63+
[this](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_NUM_VARIANT {
6464
using T = std::decay_t<decltype(paIN1)>;
6565
using U = std::decay_t<decltype(paIN2)>;
6666
using deductedType = typename mpl::get_div_operator_result_type<T, U>::type;
6767
if constexpr (!std::is_same<deductedType, mpl::NullType>::value) {
6868
return func_DIV(paIN1, paIN2);
6969
}
70-
DEVLOG_ERROR("Dividing incompatible types %s and %s\n", paIN1.getTypeNameID().data(),
70+
DEVLOG_ERROR("Dividing incompatible types in %s! IN1:%s, IN2:%s\n",
71+
getFullQualifiedApplicationInstanceName('.').c_str(), paIN1.getTypeNameID().data(),
7172
paIN2.getTypeNameID().data());
7273
return CIEC_ANY_NUM_VARIANT();
7374
},

modules/IEC61131-3/src/iec61131/arithmetic/F_MOD_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,15 @@ namespace forte::iec61131::arithmetic {
6060
switch (paEIID) {
6161
case scmEventREQID:
6262
var_OUT = std::visit(
63-
[](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_NUM_VARIANT {
63+
[this](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_NUM_VARIANT {
6464
using T = std::decay_t<decltype(paIN1)>;
6565
using U = std::decay_t<decltype(paIN2)>;
6666
using deductedType = typename mpl::get_castable_type<T, U>::type;
6767
if constexpr (!std::is_same<deductedType, mpl::NullType>::value) {
6868
return func_MOD(paIN1, paIN2);
6969
}
70-
DEVLOG_ERROR("Remainder of incompatible types %s and %s\n", paIN1.getTypeNameID().data(),
70+
DEVLOG_ERROR("Remainder of incompatible types in %s! IN1:%s, IN2:%s\n",
71+
getFullQualifiedApplicationInstanceName('.').c_str(), paIN1.getTypeNameID().data(),
7172
paIN2.getTypeNameID().data());
7273
return CIEC_ANY_NUM_VARIANT();
7374
},

modules/IEC61131-3/src/iec61131/arithmetic/F_MUL_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,15 @@ namespace forte::iec61131::arithmetic {
6060
switch (paEIID) {
6161
case scmEventREQID:
6262
var_OUT = std::visit(
63-
[](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_NUM_VARIANT {
63+
[this](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_NUM_VARIANT {
6464
using T = std::decay_t<decltype(paIN1)>;
6565
using U = std::decay_t<decltype(paIN2)>;
6666
using deductedType = typename mpl::get_mul_operator_result_type<T, U>::type;
6767
if constexpr (!std::is_same<deductedType, mpl::NullType>::value) {
6868
return func_MUL(paIN1, paIN2);
6969
}
70-
DEVLOG_ERROR("Multiplying incompatible types %s and %s\n", paIN1.getTypeNameID().data(),
70+
DEVLOG_ERROR("Multiplying incompatible types in %s! IN1:%s, IN2:%s\n",
71+
getFullQualifiedApplicationInstanceName('.').c_str(), paIN1.getTypeNameID().data(),
7172
paIN2.getTypeNameID().data());
7273
return CIEC_ANY_NUM_VARIANT();
7374
},

modules/IEC61131-3/src/iec61131/arithmetic/F_SUB_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,14 +60,15 @@ namespace forte::iec61131::arithmetic {
6060
switch (paEIID) {
6161
case scmEventREQID:
6262
var_OUT = std::visit(
63-
[](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_MAGNITUDE_VARIANT {
63+
[this](auto &&paIN1, auto &&paIN2) -> CIEC_ANY_MAGNITUDE_VARIANT {
6464
using T = std::decay_t<decltype(paIN1)>;
6565
using U = std::decay_t<decltype(paIN2)>;
6666
using deductedType = typename mpl::get_sub_operator_result_type<T, U>::type;
6767
if constexpr (!std::is_same<deductedType, mpl::NullType>::value) {
6868
return func_SUB(paIN1, paIN2);
6969
}
70-
DEVLOG_ERROR("Subtracting incompatible types %s and %s\n", paIN1.getTypeNameID().data(),
70+
DEVLOG_ERROR("Subtracting incompatible types in %s! IN1:%s, IN2:%s\n",
71+
getFullQualifiedApplicationInstanceName('.').c_str(), paIN1.getTypeNameID().data(),
7172
paIN2.getTypeNameID().data());
7273
return CIEC_ANY_MAGNITUDE_VARIANT();
7374
},

modules/IEC61131-3/src/iec61131/arithmetic/GEN_ADD_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,15 @@ namespace forte::iec61131::arithmetic {
4444
var_OUT = mGenDIs[0];
4545
for (size_t i = 1; i < getFBInterfaceSpec().getNumDIs(); ++i) {
4646
var_OUT = std::visit(
47-
[](auto &&paOUT, auto &&paIN) -> CIEC_ANY_MAGNITUDE_VARIANT {
47+
[this](auto &&paOUT, auto &&paIN) -> CIEC_ANY_MAGNITUDE_VARIANT {
4848
using T = std::decay_t<decltype(paOUT)>;
4949
using U = std::decay_t<decltype(paIN)>;
5050
using deductedType = typename mpl::get_add_operator_result_type<T, U>::type;
5151
if constexpr (!std::is_same<deductedType, mpl::NullType>::value) {
5252
return func_ADD(paOUT, paIN);
5353
}
54-
DEVLOG_ERROR("Adding incompatible types %s and %s\n", paOUT.getTypeNameID().data(),
54+
DEVLOG_ERROR("Adding incompatible types in %s! OUT:%s, IN:%s\n",
55+
getFullQualifiedApplicationInstanceName('.').c_str(), paOUT.getTypeNameID().data(),
5556
paIN.getTypeNameID().data());
5657
return paOUT;
5758
},

modules/IEC61131-3/src/iec61131/bitwiseOperators/F_ROL_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,13 @@ namespace forte::iec61131::bitwiseOperators {
6060
switch (paEIID) {
6161
case scmEventREQID:
6262
var_OUT = std::visit(
63-
[](auto &&paIN, auto &&paN) -> CIEC_ANY_BIT_VARIANT {
63+
[this](auto &&paIN, auto &&paN) -> CIEC_ANY_BIT_VARIANT {
6464
using T = std::decay_t<decltype(paIN)>;
6565
if constexpr (!std::is_same<T, CIEC_BOOL>::value) {
6666
return func_ROL(paIN, paN);
6767
}
68-
DEVLOG_ERROR("Rotating left incompatible types %s and %s\n", paIN.getTypeNameID().data(),
68+
DEVLOG_ERROR("Rotating left incompatible types in %s! IN:%s, N:%s\n",
69+
getFullQualifiedApplicationInstanceName('.').c_str(), paIN.getTypeNameID().data(),
6970
paN.getTypeNameID().data());
7071
return CIEC_ANY_BIT_VARIANT();
7172
},

modules/IEC61131-3/src/iec61131/bitwiseOperators/F_ROR_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,13 @@ namespace forte::iec61131::bitwiseOperators {
6060
switch (paEIID) {
6161
case scmEventREQID:
6262
var_OUT = std::visit(
63-
[](auto &&paIN, auto &&paN) -> CIEC_ANY_BIT_VARIANT {
63+
[this](auto &&paIN, auto &&paN) -> CIEC_ANY_BIT_VARIANT {
6464
using T = std::decay_t<decltype(paIN)>;
6565
if constexpr (!std::is_same<T, CIEC_BOOL>::value) {
6666
return func_ROR(paIN, paN);
6767
}
68-
DEVLOG_ERROR("Rotating right incompatible types %s and %s\n", paIN.getTypeNameID().data(),
68+
DEVLOG_ERROR("Rotating right incompatible types in %s! IN:%s, N:%s\n",
69+
getFullQualifiedApplicationInstanceName('.').c_str(), paIN.getTypeNameID().data(),
6970
paN.getTypeNameID().data());
7071
return CIEC_ANY_BIT_VARIANT();
7172
},

modules/IEC61131-3/src/iec61131/bitwiseOperators/F_SHL_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,13 @@ namespace forte::iec61131::bitwiseOperators {
6060
switch (paEIID) {
6161
case scmEventREQID:
6262
var_OUT = std::visit(
63-
[](auto &&paIN, auto &&paN) -> CIEC_ANY_BIT_VARIANT {
63+
[this](auto &&paIN, auto &&paN) -> CIEC_ANY_BIT_VARIANT {
6464
using T = std::decay_t<decltype(paIN)>;
6565
if constexpr (!std::is_same<T, CIEC_BOOL>::value) {
6666
return func_SHL(paIN, paN);
6767
}
68-
DEVLOG_ERROR("Shifting left incompatible types %s and %s\n", paIN.getTypeNameID().data(),
68+
DEVLOG_ERROR("Shifting left incompatible types in %s! IN:%s, N:%s\n",
69+
getFullQualifiedApplicationInstanceName('.').c_str(), paIN.getTypeNameID().data(),
6970
paN.getTypeNameID().data());
7071
return CIEC_ANY_BIT_VARIANT();
7172
},

modules/IEC61131-3/src/iec61131/bitwiseOperators/F_SHR_fbt.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,12 +60,13 @@ namespace forte::iec61131::bitwiseOperators {
6060
switch (paEIID) {
6161
case scmEventREQID:
6262
var_OUT = std::visit(
63-
[](auto &&paIN, auto &&paN) -> CIEC_ANY_BIT_VARIANT {
63+
[this](auto &&paIN, auto &&paN) -> CIEC_ANY_BIT_VARIANT {
6464
using T = std::decay_t<decltype(paIN)>;
6565
if constexpr (!std::is_same<T, CIEC_BOOL>::value) {
6666
return func_SHR(paIN, paN);
6767
}
68-
DEVLOG_ERROR("Shifting right incompatible types %s and %s\n", paIN.getTypeNameID().data(),
68+
DEVLOG_ERROR("Shifting right incompatible types in %s! IN:%s, N:%s\n",
69+
getFullQualifiedApplicationInstanceName('.').c_str(), paIN.getTypeNameID().data(),
6970
paN.getTypeNameID().data());
7071
return CIEC_ANY_BIT_VARIANT();
7172
},

0 commit comments

Comments
 (0)