Пример #1
0
 /** Stops the CricketDataBuffer. Allows the thread that reads Cricket data to terminate. */
 public synchronized void stop() {
   if (running) {
     Logger.log("stopping...");
     cricketIface.deregisterCricketDataListener(this);
     running = false;
   } else Logger.log("already stopped...");
 }
Пример #2
0
 /** Starts the CricketDataBuffer. Creates a thread for reading cricket data. */
 public synchronized void start() {
   if (!running) {
     Logger.log("starting...");
     running = true;
     cricketIface.registerCricketDataListener(this);
     //			new Thread(this).start();
   } else Logger.log("already started...");
 }
Пример #3
0
  /** Currently does nothing */
  public void run() {
    Logger.log("thread starting...");
    while (running) {

      try {
        synchronized (this) {
          wait(CRICKET_BUFFER_REFRESH_PERIOD);
        }
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
    }
    Logger.log("thread terminating...");
  }
Пример #4
0
  @Override
  public void newCricketData(CricketData cd) {
    if (!cd.getConnection()) return;

    boolean recognized = true;
    String id = cd.getCricketID();
    PlayerPoint3d coord = cricketPositions.get(id);
    if (coord == null) {
      recognized = false;
      Logger.log("New Cricket Data from " + id + ", unrecognized CricketID.");
      return;
    }

    double x = coord.getPx();
    double y = coord.getPy();
    double z = coord.getPz();

    if (!beaconReadings.containsKey(id)) { // is the first time reading from this beacon
      Logger.logDbg(
          "Found Cricket Mote "
              + (recognized ? ("at (" + x + "," + y + "),") : "with unrecognized")
              + " ID="
              + id);
    }

    double dist = (double) (cd.getDistance() / 100); // convert distance from cm to meters
    beaconReadings.put(
        id,
        new CricketBeaconReading(
            System.currentTimeMillis(),
            x,
            y,
            z,
            dist)); // pythagorean theorem to find distance along ground
  }
Пример #5
0
  @Override
  public void run() {
    // Wait until it's time to start.

    Logger.logDbg("Pausing for " + waitTime + " milliseconds");
    if (waitTime != 0) {
      synchronized (this) {
        try {
          this.wait(waitTime);
        } catch (InterruptedException e) {
          e.printStackTrace();
          Logger.logWarn("Interrupted while waiting. + " + e.getLocalizedMessage());
        }
      }
    }

    isDone = true;
    Logger.log("Behavior " + getName() + " done.");
  }