public void run()

in streampipes-extensions/streampipes-connect-adapters-iiot/src/main/java/org/apache/streampipes/connect/iiot/adapters/simulator/machine/MachineDataSimulator.java [51:118]


  public void run() {
    this.running = true;
    long startTimeMs = System.currentTimeMillis();

    while (running) {
      Map<String, Object> event = new HashMap<>();
      long currentTimeMs = System.currentTimeMillis();
      long timeDeltaMs = currentTimeMs - startTimeMs;

      switch (this.selectedSimulatorOption) {
        case "flowrate":
          // 0 - 30s
          if (timeDeltaMs > 0 && timeDeltaMs <= 30000) {
            event = buildFlowrateEvent(0);
          } else if (timeDeltaMs > 30000 && timeDeltaMs <= 60000) {
            // 30s - 60s
            event = buildFlowrateEvent(1);
          } else {
            // > 60s
            // reset start time to start over again
            startTimeMs = currentTimeMs;
          }
          break;
        case "pressure":
          // 0 - 30s
          if (timeDeltaMs > 0 && timeDeltaMs <= 30000) {
            event = buildPressureEvent(0);
          } else if (timeDeltaMs > 30000 && timeDeltaMs <= 60000) {
            // 30s - 60s
            event = buildPressureEvent(1);
          } else {
            // > 60s
            // reset start time to start over again
            startTimeMs = currentTimeMs;
          }
          break;
        case "waterlevel":
          if (timeDeltaMs > 0 && timeDeltaMs <= 30000) {
            // 0 - 30s
            event = buildWaterlevelEvent(0);
          } else if (timeDeltaMs > 30000 && timeDeltaMs <= 60000) {
            // 30s - 60s
            event = buildWaterlevelEvent(1);
          } else {
            // > 60s
            // reset start time to start over again
            startTimeMs = currentTimeMs;
          }
          break;
        default:
          try {
            throw new AdapterException("resource not found");
          } catch (AdapterException e) {
            throw new RuntimeException(e);
          }
      }

      if (!event.keySet().isEmpty()) {
        collector.collect(event);
      }

      try {
        TimeUnit.MILLISECONDS.sleep(waitTimeMs);
      } catch (InterruptedException e) {
        LOG.error("Machine simulator thread interrupted", e);
      }
    }
  }