public void destElementCalled() {
   if (changed) {
     // System.out.println("CANCELLED---------------------<");
     outImpulse.setValue(false);
     element.notifyPin(1);
     changed = false;
   }
 }
  public void process() {
    if (start.getValue() == true) {
      if (counter >= to.getValue()) {
        counter = from.getValue();
      }
      started = true;
    }

    if (stop.getValue()) {
      started = false;
    }

    if (delay.getValue() != oldImpuse) {
      oldImpuse = delay.getValue();
      if (timer != null) timer.setDelay(delay.getValue());
    }

    if (reset.getValue() == true) {
      counter = from.getValue();
      outValue.setValue(counter);
      outValue.setChanged(true);
      element.notifyPin(0);
    }
  }
  public void processX() {
    if (started) {
      outValue.setValue(counter);
      outValue.setChanged(true);
      element.notifyPin(0);

      // if (step.getValue()<=0.0000000000001) step.setValue(0.0000000000001);
      // if (to.getValue()>=99999999999999.0) to.setValue(99999999999999.0);

      counter = counter + step.getValue();
      if (counter >= to.getValue()) {
        started = false;
      }

      outImpulse.setValue(true);
      element.notifyPin(1);
      element.jNotifyWhenDestCalled(1, element);
      changed = true;
    }
  }