onFrame = function () {
        let currentValue = obj.level.attr("pki")[0];
        if (obj.config.reverse) {
          currentValue =
            obj.config.max * 1 +
            obj.config.min * 1 -
            obj.level.attr("pki")[0] * 1;
        }
        if (
          obj.config.textRenderer &&
          obj.config.textRenderer(Math.floor(currentValue)) !== false
        ) {
          obj.txtValue.attr(
            "text",
            obj.config.textRenderer(Math.floor(currentValue))
          );
        } else if (obj.config.humanFriendly) {
          obj.txtValue.attr(
            "text",
            humanFriendlyNumber(
              Math.floor(currentValue),
              obj.config.humanFriendlyDecimal
            ) + obj.config.symbol
          );
        } else if (obj.config.formatNumber) {
          obj.txtValue.attr(
            "text",
            formatNumber(Math.floor(currentValue)) + obj.config.symbol
          );
        } else if (obj.config.displayRemaining) {
          obj.txtValue.attr(
            "text",
            ((obj.config.max - currentValue) * 1).toFixed(obj.config.decimals) +
              obj.config.symbol
          );
        } else {
          obj.txtValue.attr(
            "text",
            (currentValue * 1).toFixed(obj.config.decimals) + obj.config.symbol
          );
        }
        setDy(obj.txtValue, obj.params.valueFontSize, obj.params.valueY);
        currentValue = null;
      }
ndl - custom attribute for generating pointer path

@param {Number} value display value
@returns SVG path string for gauge pointer