Classes | |
enum | Action |
class | ConnectNodeThread |
interface | FailureHandler |
Public Member Functions | |
AppsManager (FailureHandler failureCallback) | |
void | getAppInfo (final MasterId masterId, final int hash) |
void | getAppsForRole (final MasterId masterId, final String role) |
GraphName | getDefaultNodeName () |
void | init (String interactionsNamespace) |
void | onError (Node node, Throwable throwable) |
void | onShutdown (Node node) |
void | onShutdownComplete (Node node) |
void | onStart (final ConnectedNode connectedNode) |
void | requestAppUse (final MasterId masterId, final String role, final rocon_interaction_msgs.Interaction app) |
void | setupAppInfoService (ServiceResponseListener< GetInteractionResponse > serviceResponseListener) |
void | setupGetInteractionsService (ServiceResponseListener< GetInteractionsResponse > serviceResponseListener) |
void | setupRequestService (ServiceResponseListener< RequestInteractionResponse > serviceResponseListener) |
void | shutdown () |
Protected Member Functions | |
void | finalize () throws Throwable |
Private Member Functions | |
void | getAppInfo () |
void | getAppsForRole () |
void | requestAppUse () |
Private Attributes | |
Action | action = Action.NONE |
rocon_interaction_msgs.Interaction | app |
int | app_hash |
ServiceResponseListener < GetInteractionResponse > | appInfoServiceResponseListener |
ConnectedNode | connectedNode |
ConnectNodeThread | connectThread |
FailureHandler | failureCallback |
ServiceResponseListener < GetInteractionsResponse > | getAppsServiceResponseListener |
String | interactionsNamespace |
NodeMainExecutorService | nodeMainExecutorService |
ServiceResponseListener < RequestInteractionResponse > | requestServiceResponseListener |
String | role |
This class has been derived from the original turtlebot robot app manager but now tuned for interactions.
The original is quite messy, and this is not much better, so maybe needs extra refactoring. Also RobotAppsManager claims that it can be executed once, but I modified this to execute arbitrary times. It looks to work, but mechanism is a bit brittle. Apps manager implements the services and topics required to interact with the concert roles manager. Typically to use this class its a three step process:
1) instantiate and provide a general failure handler 2) provide a callback via one of the setupXXXservice methods 3) call the service you want; there's a public method per service 4) wait for service response.
Essentially you are creating a node when creating an instance, and rosjava isolates each service/topic to each 'node'.
Definition at line 74 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.AppsManager | ( | FailureHandler | failureCallback | ) | [inline] |
Definition at line 100 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.finalize | ( | ) | throws Throwable [inline, protected] |
Definition at line 129 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.getAppInfo | ( | final MasterId | masterId, |
final int | hash | ||
) | [inline] |
This is called from the headless launcher where the only thing it knows is the master id (for connection purposes and the hash stored in an nfc tag (or other). We need to save this hash for later service calls.
masterId | |
hash |
Definition at line 197 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.getAppInfo | ( | ) | [inline, private] |
Definition at line 260 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.getAppsForRole | ( | final MasterId | masterId, |
final String | role | ||
) | [inline] |
Definition at line 141 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.getAppsForRole | ( | ) | [inline, private] |
Definition at line 220 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
GraphName com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.getDefaultNodeName | ( | ) | [inline] |
Definition at line 331 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.init | ( | String | interactionsNamespace | ) | [inline] |
This is done outside of the constructor to save it from having to be continually reinstantiated in the rocon remocons. That does mean it requires some black magic, i.e. construction -> init & setupXYZ -> execute
interactionsNamespace |
Definition at line 112 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.onError | ( | Node | node, |
Throwable | throwable | ||
) | [inline] |
Definition at line 387 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.onShutdown | ( | Node | node | ) | [inline] |
Definition at line 372 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.onShutdownComplete | ( | Node | node | ) | [inline] |
Definition at line 382 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.onStart | ( | final ConnectedNode | connectedNode | ) | [inline] |
Node started by NodeMainExecutor.execute(). Execute the requested action.
connectedNode |
Definition at line 341 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.requestAppUse | ( | final MasterId | masterId, |
final String | role, | ||
final rocon_interaction_msgs.Interaction | app | ||
) | [inline] |
Definition at line 164 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.requestAppUse | ( | ) | [inline, private] |
Definition at line 241 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.setupAppInfoService | ( | ServiceResponseListener< GetInteractionResponse > | serviceResponseListener | ) | [inline] |
Definition at line 124 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.setupGetInteractionsService | ( | ServiceResponseListener< GetInteractionsResponse > | serviceResponseListener | ) | [inline] |
Definition at line 120 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
void com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.setupRequestService | ( | ServiceResponseListener< RequestInteractionResponse > | serviceResponseListener | ) | [inline] |
Definition at line 116 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
Definition at line 134 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
Action com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.action = Action.NONE [private] |
Definition at line 88 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
rocon_interaction_msgs.Interaction com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.app [private] |
Definition at line 89 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
Definition at line 90 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
ServiceResponseListener<GetInteractionResponse> com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.appInfoServiceResponseListener [private] |
Definition at line 97 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
ConnectedNode com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.connectedNode [private] |
Definition at line 92 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
ConnectNodeThread com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.connectThread [private] |
Definition at line 91 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
FailureHandler com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.failureCallback [private] |
Definition at line 94 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
ServiceResponseListener<GetInteractionsResponse> com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.getAppsServiceResponseListener [private] |
Definition at line 96 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
String com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.interactionsNamespace [private] |
Definition at line 87 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
NodeMainExecutorService com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.nodeMainExecutorService [private] |
Definition at line 93 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
ServiceResponseListener<RequestInteractionResponse> com.github.rosjava.android_remocons.common_tools.rocon.AppsManager.requestServiceResponseListener [private] |
Definition at line 95 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.
Definition at line 84 of file src/main/java/com/github/rosjava/android_remocons/common_tools/rocon/AppsManager.java.