Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Source Code

Code Block
languagejs
function execute() {
  if (context.min === undefined) {
    context.min = parseInt(inPorts[3].value, 10);
  }

  if (context.max === undefined) {
    context.max = parseInt(inPorts[4].value, 10);
  }

  if (context.value === undefined) {
    context.value = parseInt(inPorts[2].value, 10) || context.min;
  }

  switch (trigger) {
    case 0:
      if (context.value < context.max && context.value >= context.min) {
        context.value += 1;
        return [context.value, null, null];
      }
      context.value = context.min;
      return [context.value, new Date(), null];
    case 1:
      if (context.value > context.min && context.value <= context.max) {
        context.value -= 1;
        return [context.value, null, null];
      }
      context.value = context.max;
      return [context.value, null, new Date()];
    case 2:
      if (inPorts[2].value < context.min) {
        context.value = context.min;
      } else if (inPorts[2].value > context.max) {
        context.value = context.max;
      } else {
        context.value = inPorts[2].value;
      }
      editInPort(2, {});
      return [context.value, null, null];

    case 3:
      context.min = inPorts[3].value;
      break;

    case 4:
      context.max = inPorts[4].value;
      break;

    default: break;
  }
  return [];
}

...

Examples

Value(Start)

Min

Max

Step

Overflow

Underflow

0

0

3

0

0

0

0

0

3

1

0

0

0

0

3

2

0

0

0

0

3

3

0

0

0

0

3

0

1

0

...