Skip to content
Snippets Groups Projects
Commit 52aa0769 authored by Sebastian Ebert's avatar Sebastian Ebert
Browse files

removed modules

parent 594fe77e
No related branches found
No related tags found
No related merge requests found
File deleted
package de.tudresden.inf.st.rosjava_rag_connector.signal_connector_module;
import de.tudresden.inf.st.pnml.jastadd.model.*;
import de.tudresden.inf.st.service.PetriNetInitService;
import org.apache.commons.logging.Log;
import org.ros.message.MessageListener;
import org.ros.namespace.GraphName;
import org.ros.node.AbstractNodeMain;
import org.ros.node.ConnectedNode;
import org.ros.node.Node;
import org.ros.node.topic.Publisher;
import org.ros.node.topic.Subscriber;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import std_msgs.String;
import java.util.List;
import java.util.function.Consumer;
public class SignalConnector extends AbstractNodeMain {
private static final Logger logger = LoggerFactory.getLogger(SignalConnector.class);
private List<Marking> markedGraphs = null;
private JavaHandler jh = JavaHandler.getInstance();
@Override
public GraphName getDefaultNodeName() {
return GraphName.of("pn/signalconnector");
}
@Override
public void onError(Node node, Throwable throwable) {
logger.error("[SIGNALCONNECTOR] An error occurred: " + throwable.getLocalizedMessage());
}
@Override
public void onStart(final ConnectedNode connectedNode) {
// TODO replace path with config-parameter
markedGraphs = PetriNetInitService.initMarkedGraphs("src/rosjava_catkin_package_a/my_pub_sub_tutorial/src/main/resources/minimal.pnml");
for(Marking markedGraph : markedGraphs){
for(Place place : markedGraph.getPetriNet().allPlaces()){
OutputSignalPlace osp = place.asOutputSignalPlace();
for(OutputSignalBinding osBinding : osp.getOutputSignalBindingList()){
final Publisher<String> publisher = connectedNode.newPublisher("/outputsignal/" + osBinding.getId(), std_msgs.String._TYPE);
jh.registerCallback("/outputsignal/" + osBinding.getId(), new Consumer<byte[]>() {
@Override
public void accept(byte[] bytes) {
std_msgs.String str = publisher.newMessage();
str.setData(new java.lang.String(bytes));
publisher.publish(str);
}
});
}
}
for(Transition transition : markedGraph.getPetriNet().allTransitions()){
InputSignalTransition ist = transition.asInputSignalTransition();
for(InputSignalBinding isBinding : ist.getInputSignalBindingList()){
final Subscriber<String> subscriber = connectedNode.newSubscriber("/inputsignal/" /*+ isBinding.getId()*/, std_msgs.String._TYPE);
subscriber.addMessageListener(new MessageListener<String>() {
@Override
public void onNewMessage(std_msgs.String message) {
// jh.push("/inputsignal/" + isBinding.getId(), message.getData().getBytes());
}
}, 1000);
}
}
}
}
}
/*
* Copyright (C) 2014 Sebastian Ebert.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package de.tudresden.inf.st.rosjava_rag_connector.signal_test;
import org.apache.commons.logging.Log;
import org.ros.message.MessageListener;
import org.ros.namespace.GraphName;
import org.ros.node.AbstractNodeMain;
import org.ros.node.ConnectedNode;
import org.ros.node.NodeMain;
import org.ros.node.topic.Subscriber;
// rosrun rosjava_rag_connector signal_connector_module de.tudresden.inf.st.rosjava_rag_connector.signal_connector_module.Listener
/**
* A simple {@link Subscriber} {@link NodeMain}.
*/
public class Listener extends AbstractNodeMain {
@Override
public GraphName getDefaultNodeName() {
return GraphName.of("rosjava/listener");
}
@Override
public void onStart(ConnectedNode connectedNode) {
final Log log = connectedNode.getLog();
Subscriber<std_msgs.String> subscriber = connectedNode.newSubscriber("chatter", std_msgs.String._TYPE);
subscriber.addMessageListener(new MessageListener<std_msgs.String>() {
@Override
public void onNewMessage(std_msgs.String message) {
log.info("I heard: \"" + message.getData() + "\"");
}
}, 1000);
}
}
/*
* Copyright (C) 2014 Sebastian Ebert.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy of
* the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
* License for the specific language governing permissions and limitations under
* the License.
*/
package de.tudresden.inf.st.rosjava_rag_connector.signal_test;
import de.tudresden.inf.st.pnml.jastadd.model.JavaHandler;
import de.tudresden.inf.st.pnml.jastadd.model.Marking;
import de.tudresden.inf.st.service.PetriNetInitService;
import de.tudresden.inf.st.service.PetriNetLoggingService;
import org.ros.concurrent.CancellableLoop;
import org.ros.namespace.GraphName;
import org.ros.node.AbstractNodeMain;
import org.ros.node.ConnectedNode;
import org.ros.node.NodeMain;
import org.ros.node.topic.Publisher;
import java.util.List;
import java.util.function.Consumer;
// rosrun rosjava_rag_connector signal_connector_module de.tudresden.inf.st.rosjava_rag_connector.signal_connector_module.Talker
/**
* A simple {@link Publisher} {@link NodeMain}.
*/
public class Talker extends AbstractNodeMain {
@Override
public GraphName getDefaultNodeName() {
return GraphName.of("rosjava/talker");
}
@Override
public void onStart(final ConnectedNode connectedNode) {
final Publisher<std_msgs.String> publisher =
connectedNode.newPublisher("chatter", std_msgs.String._TYPE);
JavaHandler jh = JavaHandler.getInstance();
jh.registerCallback("/outputsignal/os1", new Consumer<byte[]>() {
@Override
public void accept(byte[] bytes) {
System.out.println("TEST OS1 CALLBACK");
std_msgs.String str = publisher.newMessage();
str.setData("TEST OS1 CALLBACK ROS");
publisher.publish(str);
}
});
jh.registerCallback("/outputsignal/os2", new Consumer<byte[]>() {
@Override
public void accept(byte[] bytes) {
System.out.println("TEST OS2 CALLBACK");
std_msgs.String str = publisher.newMessage();
str.setData("TEST OS1 CALLBACK ROS");
publisher.publish(str);
}
});
List<Marking> markedGraphs = PetriNetInitService.initMarkedGraphs("src/rosjava_catkin_package_a/my_pub_sub_tutorial/src/main/resources/minimal.pnml");
//PetriNetLoggingService.printInputSignals(markedGraphs.get(0));
PetriNetLoggingService.printOutputSignals(markedGraphs.get(0));
//markedGraphs.get(0).print();
// This CancellableLoop will be canceled automatically when the node shuts
// down.
/*connectedNode.executeCancellableLoop(new CancellableLoop() {
private int sequenceNumber;
@Override
protected void setup() {
sequenceNumber = 0;
}
@Override
protected void loop() throws InterruptedException {
std_msgs.String str = publisher.newMessage();
str.setData("Hello world! " + sequenceNumber);
publisher.publish(str);
sequenceNumber++;
Thread.sleep(1000);
}
});*/
}
}
<pnml xmlns="http://www.pnml.org/version-2009/grammar/pnml">
<net id="n-E2D0-BCF46-0" type ="http://www.pnml.org/version-2009/grammar/ptnet">
<name>
<text>minimal</text>
</name>
<toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.0.1">
</toolspecific>
<page id="g-E2D0-BCF68-1">
<place id="p-E2D0-BCF6F-2">
<toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.0.1">
<location>node-1</location>
<type>discretePlaceType</type>
<outputsignalbindings>
<outputsignalbinding>
<placeID>p-E2D0-BCF6F-2</placeID>
<outputsignalID>os2</outputsignalID>
<initialvalue>1</initialvalue> <!-- -1 = undefined -->
<outputmappings>
<equal>
<value>1</value>
<result>3</result>
</equal>
<equal>
<value>0</value>
<result>2</result>
</equal>
<threshold>
<value>6</value>
<result>0</result>
</threshold>
<range>
<upperbound>5</upperbound>
<lowerbound>3</lowerbound>
<result>1</result>
</range>
</outputmappings>
</outputsignalbinding>
</outputsignalbindings>
</toolspecific>
<name>
<text>p0</text>
<graphics>
<offset x="0" y="-10" />
</graphics>
</name>
<initialMarking>
<text>1</text>
</initialMarking>
<graphics>
<position x="30" y="50"/>
</graphics>
</place>
<place id="p-E2D0-BCF9D-3">
<toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.0.1">
<location>node-1</location>
<type>discretePlaceType</type>
<outputsignalbindings>
<outputsignalbinding>
<placeID>p-E2D0-BCF9D-3</placeID>
<outputsignalID>os1</outputsignalID>
<initialvalue>4</initialvalue> <!-- -1 = undefined -->
<outputmappings>
<equal>
<value>1</value>
<result>1</result>
</equal>
<threshold>
<value>6</value>
<result>0</result>
</threshold>
<range>
<upperbound>5</upperbound>
<lowerbound>3</lowerbound>
<result>1</result>
</range>
</outputmappings>
</outputsignalbinding>
</outputsignalbindings>
</toolspecific>
<name>
<text>p1</text>
<graphics>
<offset x="0" y="-10" />
</graphics>
</name>
<graphics>
<position x="635" y="90"/>
</graphics>
</place>
<transition id="t1">
<toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.0.1">
<location>node-1</location>
<type>discreteTransitionType</type>
<inputsignalbindings>
<inputsignalbinding>
<transitionID>t1</transitionID>
<inputsignalID>is1</inputsignalID>
<initialvalue>1</initialvalue>
</inputsignalbinding>
<inputsignalbinding>
<transitionID>t1</transitionID>
<inputsignalID>is3</inputsignalID>
<initialvalue>1</initialvalue>
</inputsignalbinding>
</inputsignalbindings>
</toolspecific>
<name>
<text>t0</text>
<graphics>
<offset x="0" y="0" />
</graphics>
</name>
<graphics>
<position x="300" y="50"/>
</graphics>
</transition>
<transition id="t2">
<toolspecific tool="de.tudresden.inf.st.pnml.distributedPN" version="0.0.1">
<location>node-1</location>
<type>discreteTransitionType</type>
<inputsignalbindings>
<inputsignalbinding>
<transitionID>t2</transitionID>
<inputsignalID>is2</inputsignalID>
<initialvalue>0</initialvalue>
</inputsignalbinding>
</inputsignalbindings>
</toolspecific>
<name>
<text>t1</text>
<graphics>
<offset x="0" y="0" />
</graphics>
</name>
<graphics>
<position x="285" y="205"/>
</graphics>
</transition>
<arc id="e-E2D0-BCFCD-6" source="t2" target="p-E2D0-BCF6F-2">
</arc>
<arc id="e-E2D0-BCFDB-7" source="p-E2D0-BCF9D-3" target="t2">
</arc>
<arc id="e-E2D0-BCFF3-8" source="t1" target="p-E2D0-BCF9D-3">
</arc>
<arc id="e-E2D0-BCFFB-9" source="p-E2D0-BCF6F-2" target="t1">
</arc>
</page>
</net>
</pnml>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment