Skip to content
This repository was archived by the owner on Nov 9, 2022. It is now read-only.

Unable to get multiple Topic follow along android_core/android_tutorial_pubsub #320

@longduong11311

Description

@longduong11311

I try get 3 Topic based on android_tutorial_pubsub instead of 1 topic is "/chatter".
Purpose is get multiple Topic to display monitor telephone. But I have issue this unable to get data at the same time. i only get 1 topic. Help me!
My code:

package org.ros.android.android_tutorial_pubsub;
import android.os.Bundle;
import org.ros.android.MessageCallable;
import org.ros.android.RosActivity;
import org.ros.android.view.RosTextView;
import org.ros.node.ConnectedNode;
import org.ros.node.NodeConfiguration;
import org.ros.node.NodeMainExecutor;
import org.ros.node.topic.Subscriber;
import std_msgs.String;

/**

public class MainActivity extends RosActivity {
// create
private RosTextView<std_msgs.String> rosPreArm;
private RosTextView<std_msgs.String> rosBattery;
private RosTextView<std_msgs.String> rosMode;
protected NodeMainExecutor nodeMainExecutor;

public MainActivity() {
// The RosActivity constructor configures the notification title and ticker
// messages.
super("Pubsub Tutorial", "Pubsub Tutorial");
}

@SuppressWarnings("unchecked")
@OverRide
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

rosPreArm = (RosTextView<std_msgs.String>) findViewById(R.id.prearm);
rosPreArm.setTopicName("/hp/StatusPreArm");
rosPreArm.setMessageType(std_msgs.String._TYPE);
rosPreArm.setMessageToStringCallable(new MessageCallable<java.lang.String, String>() {
  @Override
  public java.lang.String call(String message) {
    return message.getData();
  }
});

rosBattery = (RosTextView<std_msgs.String>) findViewById(R.id.battery);
rosBattery.setTopicName("/hp/StatusBattery");
rosBattery.setMessageType(std_msgs.String._TYPE);
rosBattery.setMessageToStringCallable(new MessageCallable<java.lang.String, String>() {
  @Override
  public java.lang.String call(String message) {
    return message.getData();
  }
});

rosMode = (RosTextView<std_msgs.String>) findViewById(R.id.mode);
rosMode.setTopicName("/hp/StatusMode");
rosMode.setMessageType(std_msgs.String._TYPE);
rosMode.setMessageToStringCallable(new MessageCallable<java.lang.String, String>() {
  @Override
  public java.lang.String call(String message) {
    return message.getData();
  }
});

}

@OverRide
protected void init(NodeMainExecutor nodeEx) {
nodeMainExecutor = nodeEx;

NodeConfiguration nodeConfiguration = NodeConfiguration.newPublic(getRosHostname());
nodeConfiguration.setMasterUri(getMasterUri());
nodeMainExecutor.execute(rosPreArm, nodeConfiguration);

}

protected void Battery(){
NodeConfiguration nodeConfiguration1 = NodeConfiguration.newPublic(getRosHostname());
nodeConfiguration1.setMasterUri(getMasterUri());
nodeMainExecutor.execute(rosBattery, nodeConfiguration1);
}

protected void Mode(){
NodeConfiguration nodeConfiguration2 = NodeConfiguration.newPublic(getRosHostname());
nodeConfiguration2.setMasterUri(getMasterUri());
nodeMainExecutor.execute(rosMode, nodeConfiguration2);
}
}

And, I have issue is get message like:
In file msg have:
StatusType.msg (string PreArm, string Battery, string Mode, string Armed) and multiple file like GPSType.msg, AttitudeType.msg, ..., created by me.
I want to get message in android instead of get Topic. Help me!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions