diff --git a/js/fc.js b/js/fc.js index 0d5d4861b..aad9a460a 100644 --- a/js/fc.js +++ b/js/fc.js @@ -961,464 +961,6 @@ var FC = { isModeEnabled: function (name) { return this.isModeBitSet(this.getModeId(name)); }, - getLogicOperators: function () { - return { - 0: { - name: "True", - operandType: "Active", - hasOperand: [false, false], - output: "boolean" - }, - 1: { - name: "Equal (A = B)", - operandType: "Comparison", - hasOperand: [true, true], - output: "boolean" - }, - 2: { - name: "Greater Than (A > B)", - operandType: "Comparison", - hasOperand: [true, true], - output: "boolean" - }, - 3: { - name: "Lower Than (A < B)", - operandType: "Comparison", - hasOperand: [true, true], - output: "boolean" - }, - 4: { - name: "Low", - operandType: "RC Switch Check", - hasOperand: [true, false], - output: "boolean" - }, - 5: { - name: "Mid", - operandType: "RC Switch Check", - hasOperand: [true, false], - output: "boolean" - }, - 6: { - name: "High", - operandType: "RC Switch Check", - hasOperand: [true, false], - output: "boolean" - }, - 7: { - name: "AND", - operandType: "Logic Switches", - hasOperand: [true, true], - output: "boolean" - }, - 8: { - name: "OR", - operandType: "Logic Switches", - hasOperand: [true, true], - output: "boolean" - }, - 9: { - name: "XOR", - operandType: "Logic Switches", - hasOperand: [true, true], - output: "boolean" - }, - 10: { - name: "NAND", - operandType: "Logic Switches", - hasOperand: [true, true], - output: "boolean" - }, - 11: { - name: "NOR", - operandType: "Logic Switches", - hasOperand: [true, true], - output: "boolean" - }, - 12: { - name: "NOT", - operandType: "Logic Switches", - hasOperand: [true, false], - output: "boolean" - }, - 13: { - name: "Sticky", - operandType: "Logic Switches", - hasOperand: [true, true], - output: "boolean" - }, - 14: { - name: "Basic: Add", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 15: { - name: "Basic: Subtract", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 16: { - name: "Basic: Multiply", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 17: { - name: "Basic: Divide", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 40: { - name: "Modulo", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 18: { - name: "Set GVAR", - operandType: "Variables", - hasOperand: [true, true], - output: "none" - }, - 19: { - name: "Increase GVAR", - operandType: "Variables", - hasOperand: [true, true], - output: "none" - }, - 20: { - name: "Decrease GVAR", - operandType: "Variables", - hasOperand: [true, true], - output: "none" - }, - 21: { - name: "Set IO Port", - operandType: "Set Flight Parameter", - hasOperand: [true, true], - output: "none" - }, - 22: { - name: "Override Arming Safety", - operandType: "Set Flight Parameter", - hasOperand: [false, false], - output: "boolean" - }, - 23: { - name: "Override Throttle Scale", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "boolean" - }, - 29: { - name: "Override Throttle", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "boolean" - }, - 24: { - name: "Swap Roll & Yaw", - operandType: "Set Flight Parameter", - hasOperand: [false, false], - output: "boolean" - }, - 25: { - name: "Set VTx Power Level", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "boolean" - }, - 30: { - name: "Set VTx Band", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "boolean" - }, - 31: { - name: "Set VTx Channel", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "boolean" - }, - 26: { - name: "Invert Roll", - operandType: "Set Flight Parameter", - hasOperand: [false, false], - output: "boolean" - }, - 27: { - name: "Invert Pitch", - operandType: "Set Flight Parameter", - hasOperand: [false, false], - output: "boolean" - }, - 28: { - name: "Invert Yaw", - operandType: "Set Flight Parameter", - hasOperand: [false, false], - output: "boolean" - }, - 32: { - name: "Set OSD Layout", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "boolean" - }, - 33: { - name: "Trigonometry: Sine", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 34: { - name: "Trigonometry: Cosine", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 35: { - name: "Trigonometry: Tangent", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 36: { - name: "Map Input", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 37: { - name: "Map Output", - operandType: "Maths", - hasOperand: [true, true], - output: "raw" - }, - 38: { - name: "Override RC Channel", - operandType: "Set Flight Parameter", - hasOperand: [true, true], - output: "boolean" - }, - - 41: { - name: "Override Loiter Radius", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "boolean" - }, - 42: { - name: "Set Profile", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "boolean" - }, - 43: { - name: "Use Lowest Value", - operandType: "Comparison", - hasOperand: [true, true], - output: "raw" - }, - 44: { - name: "Use Highest Value", - operandType: "Comparison", - hasOperand: [true, true], - output: "raw" - }, - 45: { - name: "Flight Axis Angle Override", - operandType: "Set Flight Parameter", - hasOperand: [true, true], - output: "boolean" - }, - 46: { - name: "Flight Axis Rate Override", - operandType: "Set Flight Parameter", - hasOperand: [true, true], - output: "boolean" - }, - 47: { - name: "Edge", - operandType: "Logic Switches", - hasOperand: [true, true], - output: "boolean" - }, - 48: { - name: "Delay", - operandType: "Logic Switches", - hasOperand: [true, true], - output: "boolean" - }, - 49: { - name: "Timer", - operandType: "Logic Switches", - hasOperand: [true, true], - output: "boolean" - }, - 50: { - name: "Delta (|A| >= B)", - operandType: "Comparison", - hasOperand: [true, true], - output: "boolean" - }, - 51: { - name: "Approx Equals (A ~ B)", - operandType: "Comparison", - hasOperand: [true, true], - output: "boolean" - }, - 52: { - name: "LED Pin PWM", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "raw" - }, - 53: { - name: "Disable GPS Sensor Fix", - operandType: "Set Flight Parameter", - hasOperand: [true, false], - output: "boolean" - }, - 54: { - name: "Mag calibration", - operandType: "Set Flight Parameter", - hasOperand: [false, false], - output: "boolean" - }, - } - }, - getOperandTypes: function () { - return { - 0: { - name: "Value", - type: "value", - min: -1000000, - max: 1000000, - step: 1, - default: 0 - }, - 1: { - name: "Get RC Channel", - type: "range", - range: [1, 16], - default: 1 - }, - 2: { - name: "Flight", - type: "dictionary", - default: 0, - values: { - 0: "ARM timer [s]", - 1: "Home distance [m]", - 2: "Trip distance [m]", - 3: "RSSI", - 4: "Vbat [centi-Volt] [1V = 100]", - 5: "Cell voltage [centi-Volt] [1V = 100]", - 6: "Current [centi-Amp] [1A = 100]", - 7: "Current drawn [mAh]", - 8: "GPS Sats", - 9: "Ground speed [cm/s]", - 10: "3D speed [cm/s]", - 11: "Air speed [cm/s]", - 12: "Altitude [cm]", - 13: "Vertical speed [cm/s]", - 14: "Throttle position [%]", - 15: "Roll [deg]", - 16: "Pitch [deg]", - 17: "Is Armed", - 18: "Is Autolaunch", - 19: "Is Controlling Altitude", - 20: "Is Controlling Position", - 21: "Is Emergency Landing", - 22: "Is RTH", - 23: "Is Landing", - 24: "Is Failsafe", - 25: "Stabilized Roll", - 26: "Stabilized Pitch", - 27: "Stabilized Yaw", - 28: "3D home distance [m]", - 29: "CRSF LQ", - 30: "CRSF SNR", - 31: "GPS Valid Fix", - 32: "Loiter Radius [cm]", - 33: "Active PIDProfile", - 34: "Battery cells", - 35: "AGL status [0/1]", - 36: "AGL [cm]", - 37: "Rangefinder [cm]", - 38: "Active MixerProfile", - 39: "MixerTransition Active", - 40: "Yaw [deg]", - 41: "FW Land State" - } - }, - 3: { - name: "Flight Mode", - type: "dictionary", - default: 0, - values: { - 0: "Failsafe", - 1: "Manual", - 2: "RTH", - 3: "Position Hold", - 4: "Cruise", - 5: "Altitude Hold", - 6: "Angle", - 7: "Horizon", - 8: "Air", - 9: "USER 1", - 10: "USER 2", - 11: "Course Hold", - 12: "USER 3", - 13: "USER 4", - 14: "Acro", - 15: "Waypoint Mission", - } - }, - 4: { - name: "Logic Condition", - type: "range", - range: [0, (this.LOGIC_CONDITIONS.getMaxLogicConditionCount()-1)], - default: 0 - }, - 5: { - name: "Get Global Variable", - type: "range", - range: [0, 7], - default: 0 - }, - 6: { - name: "Programming PID", - type: "range", - range: [0, 3], - default: 0 - }, - 7: { - name: "Waypoints", - type: "dictionary", - default: 0, - values: { - 0: "Is WP", - 1: "Current Waypoint Index", - 2: "Current Waypoint Action", - 3: "Next Waypoint Action", - 4: "Distance to next Waypoint [m]", - 5: "Distance from last Waypoint [m]", - 6: "Current WP has User Action 1", - 7: "Current WP has User Action 2", - 8: "Current WP has User Action 3", - 9: "Current WP has User Action 4", - 10: "Next WP has User Action 1", - 11: "Next WP has User Action 2", - 12: "Next WP has User Action 3", - 13: "Next WP has User Action 4", - } - }, - } - }, getBatteryProfileParameters: function () { return [ 'bat_cells', diff --git a/js/logicCondition.js b/js/logicCondition.js index 086629c10..2e7c9cd40 100644 --- a/js/logicCondition.js +++ b/js/logicCondition.js @@ -2,6 +2,8 @@ const FC = require('./fc'); const { GUI } = require('./../js/gui'); +const { LOGIC_OPERATORS } = require('./logicConditionOperators'); +const { OPERAND_TYPES } = require('./logicConditionOperantTypes'); let LogicCondition = function (enabled, activatorId, operation, operandAType, operandAValue, operandBType, operandBValue, flags) { let self = {}; @@ -79,7 +81,7 @@ let LogicCondition = function (enabled, activatorId, operation, operandAType, op }; self.getOperatorMetadata = function () { - return FC.getLogicOperators()[self.getOperation()]; + return LOGIC_OPERATORS[self.getOperation()]; }; self.hasOperand = function (val) { @@ -103,7 +105,7 @@ let LogicCondition = function (enabled, activatorId, operation, operandAType, op let $cT = $(event.currentTarget), operand = $cT.data("operand"), $container = $cT.parent(), - operandMetadata = FC.getOperandTypes()[$cT.val()]; + operandMetadata = OPERAND_TYPES[$cT.val()]; if (operand == 0) { self.setOperandAType($cT.val()); @@ -145,9 +147,9 @@ let LogicCondition = function (enabled, activatorId, operation, operandAType, op $container.append(''); let $t = $container.find('.logic_element__operand--type'); - for (let k in FC.getOperandTypes()) { - if (FC.getOperandTypes().hasOwnProperty(k)) { - let op = FC.getOperandTypes()[k]; + for (let k in OPERAND_TYPES) { + if (OPERAND_TYPES.hasOwnProperty(k)) { + let op = OPERAND_TYPES[k]; if (type == k) { $t.append(''); @@ -173,7 +175,7 @@ let LogicCondition = function (enabled, activatorId, operation, operandAType, op self.renderStatus = function () { let $e = $row.find('.logic_cell__status'), - displayType = FC.getLogicOperators()[self.getOperation()].output; + displayType = LOGIC_OPERATORS[self.getOperation()].output; if (self.getEnabled() && displayType == "boolean") { $e.html('
'); @@ -189,7 +191,7 @@ let LogicCondition = function (enabled, activatorId, operation, operandAType, op return; } - let displayType = FC.getLogicOperators()[self.getOperation()].output, + let displayType = LOGIC_OPERATORS[self.getOperation()].output, $marker; if (self.getEnabled() && displayType == "boolean") { @@ -261,9 +263,9 @@ let LogicCondition = function (enabled, activatorId, operation, operandAType, op let lcOperators = []; - for (let lcID in FC.getLogicOperators()) { - if (FC.getLogicOperators().hasOwnProperty(lcID)) { - let op = FC.getLogicOperators()[lcID]; + for (let lcID in LOGIC_OPERATORS) { + if (LOGIC_OPERATORS.hasOwnProperty(lcID)) { + let op = LOGIC_OPERATORS[lcID]; lcOperators[parseInt(lcID, 10)] = { id: parseInt(lcID, 10), name: op.name, diff --git a/js/logicConditionOperantTypes.js b/js/logicConditionOperantTypes.js new file mode 100644 index 000000000..98ba42ff3 --- /dev/null +++ b/js/logicConditionOperantTypes.js @@ -0,0 +1,131 @@ +'use strict'; + +const OPERAND_TYPES = { + 0: { + name: "Value", + type: "value", + min: -1000000, + max: 1000000, + step: 1, + default: 0 + }, + 1: { + name: "Get RC Channel", + type: "range", + range: [1, 16], + default: 1 + }, + 2: { + name: "Flight", + type: "dictionary", + default: 0, + values: { + 0: "ARM timer [s]", + 1: "Home distance [m]", + 2: "Trip distance [m]", + 3: "RSSI", + 4: "Vbat [centi-Volt] [1V = 100]", + 5: "Cell voltage [centi-Volt] [1V = 100]", + 6: "Current [centi-Amp] [1A = 100]", + 7: "Current drawn [mAh]", + 8: "GPS Sats", + 9: "Ground speed [cm/s]", + 10: "3D speed [cm/s]", + 11: "Air speed [cm/s]", + 12: "Altitude [cm]", + 13: "Vertical speed [cm/s]", + 14: "Throttle position [%]", + 15: "Roll [deg]", + 16: "Pitch [deg]", + 17: "Is Armed", + 18: "Is Autolaunch", + 19: "Is Controlling Altitude", + 20: "Is Controlling Position", + 21: "Is Emergency Landing", + 22: "Is RTH", + 23: "Is Landing", + 24: "Is Failsafe", + 25: "Stabilized Roll", + 26: "Stabilized Pitch", + 27: "Stabilized Yaw", + 28: "3D home distance [m]", + 29: "CRSF LQ", + 30: "CRSF SNR", + 31: "GPS Valid Fix", + 32: "Loiter Radius [cm]", + 33: "Active PIDProfile", + 34: "Battery cells", + 35: "AGL status [0/1]", + 36: "AGL [cm]", + 37: "Rangefinder [cm]", + 38: "Active MixerProfile", + 39: "MixerTransition Active", + 40: "Yaw [deg]", + 41: "FW Land State" + } + }, + 3: { + name: "Flight Mode", + type: "dictionary", + default: 0, + values: { + 0: "Failsafe", + 1: "Manual", + 2: "RTH", + 3: "Position Hold", + 4: "Cruise", + 5: "Altitude Hold", + 6: "Angle", + 7: "Horizon", + 8: "Air", + 9: "USER 1", + 10: "USER 2", + 11: "Course Hold", + 12: "USER 3", + 13: "USER 4", + 14: "Acro", + 15: "Waypoint Mission", + } + }, + 4: { + name: "Logic Condition", + type: "range", + range: [0, 63], + default: 0 + }, + 5: { + name: "Get Global Variable", + type: "range", + range: [0, 7], + default: 0 + }, + 6: { + name: "Programming PID", + type: "range", + range: [0, 3], + default: 0 + }, + 7: { + name: "Waypoints", + type: "dictionary", + default: 0, + values: { + 0: "Is WP", + 1: "Current Waypoint Index", + 2: "Current Waypoint Action", + 3: "Next Waypoint Action", + 4: "Distance to next Waypoint [m]", + 5: "Distance from last Waypoint [m]", + 6: "Current WP has User Action 1", + 7: "Current WP has User Action 2", + 8: "Current WP has User Action 3", + 9: "Current WP has User Action 4", + 10: "Next WP has User Action 1", + 11: "Next WP has User Action 2", + 12: "Next WP has User Action 3", + 13: "Next WP has User Action 4", + } + }, +}; + +module.exports = { OPERAND_TYPES }; \ No newline at end of file diff --git a/js/logicConditionOperators.js b/js/logicConditionOperators.js new file mode 100644 index 000000000..76e515ddd --- /dev/null +++ b/js/logicConditionOperators.js @@ -0,0 +1,331 @@ +'use strict'; + +const LOGIC_OPERATORS = { + 0: { + name: "True", + operandType: "Active", + hasOperand: [false, false], + output: "boolean" + }, + 1: { + name: "Equal (A = B)", + operandType: "Comparison", + hasOperand: [true, true], + output: "boolean" + }, + 2: { + name: "Greater Than (A > B)", + operandType: "Comparison", + hasOperand: [true, true], + output: "boolean" + }, + 3: { + name: "Lower Than (A < B)", + operandType: "Comparison", + hasOperand: [true, true], + output: "boolean" + }, + 4: { + name: "Low", + operandType: "RC Switch Check", + hasOperand: [true, false], + output: "boolean" + }, + 5: { + name: "Mid", + operandType: "RC Switch Check", + hasOperand: [true, false], + output: "boolean" + }, + 6: { + name: "High", + operandType: "RC Switch Check", + hasOperand: [true, false], + output: "boolean" + }, + 7: { + name: "AND", + operandType: "Logic Switches", + hasOperand: [true, true], + output: "boolean" + }, + 8: { + name: "OR", + operandType: "Logic Switches", + hasOperand: [true, true], + output: "boolean" + }, + 9: { + name: "XOR", + operandType: "Logic Switches", + hasOperand: [true, true], + output: "boolean" + }, + 10: { + name: "NAND", + operandType: "Logic Switches", + hasOperand: [true, true], + output: "boolean" + }, + 11: { + name: "NOR", + operandType: "Logic Switches", + hasOperand: [true, true], + output: "boolean" + }, + 12: { + name: "NOT", + operandType: "Logic Switches", + hasOperand: [true, false], + output: "boolean" + }, + 13: { + name: "Sticky", + operandType: "Logic Switches", + hasOperand: [true, true], + output: "boolean" + }, + 14: { + name: "Basic: Add", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 15: { + name: "Basic: Subtract", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 16: { + name: "Basic: Multiply", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 17: { + name: "Basic: Divide", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 40: { + name: "Modulo", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 18: { + name: "Set GVAR", + operandType: "Variables", + hasOperand: [true, true], + output: "none" + }, + 19: { + name: "Increase GVAR", + operandType: "Variables", + hasOperand: [true, true], + output: "none" + }, + 20: { + name: "Decrease GVAR", + operandType: "Variables", + hasOperand: [true, true], + output: "none" + }, + 21: { + name: "Set IO Port", + operandType: "Set Flight Parameter", + hasOperand: [true, true], + output: "none" + }, + 22: { + name: "Override Arming Safety", + operandType: "Set Flight Parameter", + hasOperand: [false, false], + output: "boolean" + }, + 23: { + name: "Override Throttle Scale", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "boolean" + }, + 29: { + name: "Override Throttle", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "boolean" + }, + 24: { + name: "Swap Roll & Yaw", + operandType: "Set Flight Parameter", + hasOperand: [false, false], + output: "boolean" + }, + 25: { + name: "Set VTx Power Level", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "boolean" + }, + 30: { + name: "Set VTx Band", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "boolean" + }, + 31: { + name: "Set VTx Channel", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "boolean" + }, + 26: { + name: "Invert Roll", + operandType: "Set Flight Parameter", + hasOperand: [false, false], + output: "boolean" + }, + 27: { + name: "Invert Pitch", + operandType: "Set Flight Parameter", + hasOperand: [false, false], + output: "boolean" + }, + 28: { + name: "Invert Yaw", + operandType: "Set Flight Parameter", + hasOperand: [false, false], + output: "boolean" + }, + 32: { + name: "Set OSD Layout", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "boolean" + }, + 33: { + name: "Trigonometry: Sine", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 34: { + name: "Trigonometry: Cosine", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 35: { + name: "Trigonometry: Tangent", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 36: { + name: "Map Input", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 37: { + name: "Map Output", + operandType: "Maths", + hasOperand: [true, true], + output: "raw" + }, + 38: { + name: "Override RC Channel", + operandType: "Set Flight Parameter", + hasOperand: [true, true], + output: "boolean" + }, + + 41: { + name: "Override Loiter Radius", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "boolean" + }, + 42: { + name: "Set Profile", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "boolean" + }, + 43: { + name: "Use Lowest Value", + operandType: "Comparison", + hasOperand: [true, true], + output: "raw" + }, + 44: { + name: "Use Highest Value", + operandType: "Comparison", + hasOperand: [true, true], + output: "raw" + }, + 45: { + name: "Flight Axis Angle Override", + operandType: "Set Flight Parameter", + hasOperand: [true, true], + output: "boolean" + }, + 46: { + name: "Flight Axis Rate Override", + operandType: "Set Flight Parameter", + hasOperand: [true, true], + output: "boolean" + }, + 47: { + name: "Edge", + operandType: "Logic Switches", + hasOperand: [true, true], + output: "boolean" + }, + 48: { + name: "Delay", + operandType: "Logic Switches", + hasOperand: [true, true], + output: "boolean" + }, + 49: { + name: "Timer", + operandType: "Logic Switches", + hasOperand: [true, true], + output: "boolean" + }, + 50: { + name: "Delta (|A| >= B)", + operandType: "Comparison", + hasOperand: [true, true], + output: "boolean" + }, + 51: { + name: "Approx Equals (A ~ B)", + operandType: "Comparison", + hasOperand: [true, true], + output: "boolean" + }, + 52: { + name: "LED Pin PWM", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "raw" + }, + 53: { + name: "Disable GPS Sensor Fix", + operandType: "Set Flight Parameter", + hasOperand: [true, false], + output: "boolean" + }, + 54: { + name: "Mag calibration", + operandType: "Set Flight Parameter", + hasOperand: [false, false], + output: "boolean" + } +}; + +module.exports = { LOGIC_OPERATORS }; \ No newline at end of file diff --git a/js/programmingPid.js b/js/programmingPid.js index ca1710856..93b1af7ff 100644 --- a/js/programmingPid.js +++ b/js/programmingPid.js @@ -2,6 +2,7 @@ const FC = require('./fc'); const { GUI } = require('./gui'); +const { OPERAND_TYPES } = require('./logicConditionOperantTypes'); let ProgrammingPid = function (enabled, setpointType, setpointValue, measurementType, measurementValue, gainP, gainI, gainD, gainFF) { let self = {}; @@ -159,7 +160,7 @@ let ProgrammingPid = function (enabled, setpointType, setpointValue, measurement let $cT = $(event.currentTarget), operand = $cT.data("operand"), $container = $cT.parent(), - operandMetadata = FC.getOperandTypes()[$cT.val()]; + operandMetadata = OPERAND_TYPES[$cT.val()]; if (operand == 0) { self.setSetpointType($cT.val()); @@ -189,9 +190,9 @@ let ProgrammingPid = function (enabled, setpointType, setpointValue, measurement $container.append(''); let $t = $container.find('.logic_element__operand--type'); - for (let k in FC.getOperandTypes()) { - if (FC.getOperandTypes().hasOwnProperty(k)) { - let op = FC.getOperandTypes()[k]; + for (let k in OPERAND_TYPES) { + if (OPERAND_TYPES.hasOwnProperty(k)) { + let op = OPERAND_TYPES[k]; if (type == k) { $t.append('');