Android Open Source - RoboDroid Abstract Tinkerforge Application






From Project

Back to project page RoboDroid.

License

The source code is released under:

Apache License

If you think the Android project RoboDroid listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package ch.quantasy.tinkerforge.tinker.application.implementation;
//from  w w w .j a  v a2s  . co m
import java.util.Collection;
import java.util.HashSet;
import java.util.Set;
import java.util.concurrent.CopyOnWriteArrayList;

import ch.quantasy.tinkerforge.tinker.agent.definition.Agent;
import ch.quantasy.tinkerforge.tinker.agent.implementation.TinkerforgeStackAgent;
import ch.quantasy.tinkerforge.tinker.application.definition.TinkerforgeApplication;

import com.tinkerforge.Device;

public abstract class AbstractTinkerforgeApplication implements TinkerforgeApplication {
  private final Set<Agent<TinkerforgeApplication>> tinkerforgeStackAgents;
  private final Set<TinkerforgeApplication> tinkerforgeApplications;

  public AbstractTinkerforgeApplication() {
    this.tinkerforgeStackAgents = new HashSet<Agent<TinkerforgeApplication>>();
    this.tinkerforgeApplications = new HashSet<TinkerforgeApplication>();
  }

  public void addTinkerforgeApplication(final TinkerforgeApplication... applications) {
    if (applications == null) {
      return;
    }
    for (final TinkerforgeApplication application : applications) {
      if (application == null || application==this) {
        continue;
      }
      this.tinkerforgeApplications.add(application);
      for (final Agent<TinkerforgeApplication> agent : this.tinkerforgeStackAgents) {
        agent.addApplication(application);
      }
    }
  }

  public void removeTinkerforgeApplication(final TinkerforgeApplication... applications) {
    if (applications == null) {
      return;
    }
    for (final TinkerforgeApplication application : applications) {
      if (application == null) {
        continue;
      }
      this.tinkerforgeApplications.remove(application);
      for (final Agent<TinkerforgeApplication> agent : this.tinkerforgeStackAgents) {
        agent.removeApplication(application);
      }
    }
  }

  public Collection<TinkerforgeApplication> getTinkerforgeApplications() {
    return new CopyOnWriteArrayList<TinkerforgeApplication>(this.tinkerforgeApplications);
  }

  @Override
  public void deviceIsDisconnecting(final TinkerforgeStackAgent stackAgent, final Device device) {
    System.out
        .println(this.toString() + " is disconnecting from device " + device + " attached to agent " + stackAgent);

  }
  @Override
  public void connectedToAgent(Agent<TinkerforgeApplication> agent) {
    if (agent == null) {
      return;
    }
    this.tinkerforgeStackAgents.add(agent);
    for (TinkerforgeApplication application : this.tinkerforgeApplications) {
      agent.addApplication(application);
    }

  }
  @Override
  public void disconnectedFromAgent(Agent<TinkerforgeApplication> agent) {
    if (tinkerforgeStackAgents.remove(agent)) {
      System.out.println(this.toString() + " has disconnected from agent " + agent);
    }
  }

  @Override
  public void disconnectingFromAgent(Agent<TinkerforgeApplication> agent) {
    if (agent == null) {
      return;
    }
    System.out.println(this.toString() + " is disconnecting from agent " + agent);
    for (TinkerforgeApplication application : this.tinkerforgeApplications) {
      agent.removeApplication(application);
    }

  }

  @Override
  public void stackConnected(final TinkerforgeStackAgent stackAgent) {
    System.out.println(this.toString() + " connected to agent " + stackAgent);
  }
  
  @Override
  public void stackDisconnected(TinkerforgeStackAgent stackAgent) {
    System.out.println(this.toString() + " connected to agent " + stackAgent);    
  }


  @Override
  public String toString() {
    return this.getClass().getName();
  }

  @Override
  public abstract boolean equals(Object obj);

  @Override
  public abstract int hashCode();

}




Java Source Code List

ch.bfh.mobilecomputing.fs2014.robodroid.JoystickView.java
ch.bfh.mobilecomputing.fs2014.robodroid.MainActivity.java
ch.bfh.mobilecomputing.fs2014.robodroid.SimpleJoystickFragment.java
ch.quantasy.remoteControl.MotorApplication.java
ch.quantasy.tinkerforge.tinker.agency.implementation.TinkerforgeStackAgency.java
ch.quantasy.tinkerforge.tinker.agent.definition.Agent.java
ch.quantasy.tinkerforge.tinker.agent.implementation.TinkerforgeStackAgentIdentifier.java
ch.quantasy.tinkerforge.tinker.agent.implementation.TinkerforgeStackAgent.java
ch.quantasy.tinkerforge.tinker.application.definition.Application.java
ch.quantasy.tinkerforge.tinker.application.definition.TinkerforgeApplication.java
ch.quantasy.tinkerforge.tinker.application.implementation.AbstractTinkerforgeApplication.java
ch.quantasy.tinkerforge.tinker.core.implementation.AbstractTinkerforgeStackManager.java
ch.quantasy.tinkerforge.tinker.core.implementation.TinkerforgeDevice.java