Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
PNML Engine
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Package registry
Container registry
Model registry
Operate
Environments
Terraform modules
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
DiNeROS
DiNeROS 1
PNML Engine
Commits
2ff3e5b5
Commit
2ff3e5b5
authored
3 years ago
by
Sebastian Ebert
Browse files
Options
Downloads
Patches
Plain Diff
added srv message lib
parent
41a34e83
No related branches found
No related tags found
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
build.gradle
+1
-0
1 addition, 0 deletions
build.gradle
libs/rosjava_srv-0.1.0.jar
+0
-0
0 additions, 0 deletions
libs/rosjava_srv-0.1.0.jar
src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java
+47
-1
47 additions, 1 deletion
...java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java
with
48 additions
and
1 deletion
build.gradle
+
1
−
0
View file @
2ff3e5b5
...
...
@@ -100,6 +100,7 @@ dependencies {
// ros java messages
compile
fileTree
(
include:
[
'std_msgs-0.5.11.jar'
],
dir:
'./libs'
)
compile
fileTree
(
include:
[
'rosjava_srv-0.1.0.jar'
],
dir:
'./libs'
)
compile
fileTree
(
include:
[
'rosgraph_msgs-1.10.12.jar'
],
dir:
'./libs'
)
// testing
...
...
This diff is collapsed.
Click to expand it.
libs/rosjava_srv-0.1.0.jar
0 → 100644
+
0
−
0
View file @
2ff3e5b5
File added
This diff is collapsed.
Click to expand it.
src/main/java/de/tudresden/inf/st/pnml/engine/ros/DiNeRosNode.java
+
47
−
1
View file @
2ff3e5b5
...
...
@@ -2,12 +2,18 @@ package de.tudresden.inf.st.pnml.engine.ros;
import
de.tudresden.inf.st.pnml.base.constants.PnmlConstants
;
import
de.tudresden.inf.st.pnml.jastadd.model.*
;
import
org.ros.concurrent.CancellableLoop
;
import
org.ros.namespace.GraphName
;
import
org.ros.node.AbstractNodeMain
;
import
org.ros.node.ConnectedNode
;
import
org.ros.node.service.ServiceResponseBuilder
;
import
org.ros.node.service.ServiceServer
;
import
org.ros.node.topic.Publisher
;
import
org.ros.node.topic.Subscriber
;
import
org.xml.sax.SAXException
;
import
rosjava_srv.StringService
;
import
rosjava_srv.StringServiceRequest
;
import
rosjava_srv.StringServiceResponse
;
import
std_msgs.String
;
import
javax.xml.parsers.ParserConfigurationException
;
...
...
@@ -25,6 +31,8 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
private
BalloonCallbackStorage
callbackStorage
;
private
final
Map
<
java
.
lang
.
String
,
DiNeRosSubscriber
>
dinerosSubscribers
=
new
HashMap
<>();
private
final
Map
<
InputSignalTransition
,
Publisher
<
std_msgs
.
String
>>
dinerosPublishers
=
new
HashMap
<>();
private
final
Map
<
InputSignalTransition
,
ServiceServer
<
StringServiceRequest
,
StringServiceResponse
>>
dinerosServiceServers
=
new
HashMap
<>();
private
ConnectedNode
connectedNode
;
public
DiNeRosNode
(
java
.
lang
.
String
nodeName
,
PetriNet
petriNet
){
this
.
nodeName
=
nodeName
;
...
...
@@ -44,6 +52,19 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
this
.
callbackStorage
=
callbackStorage
;
}
protected
void
nodeLoop
(){
this
.
connectedNode
.
executeCancellableLoop
(
new
CancellableLoop
()
{
@Override
protected
void
loop
()
throws
InterruptedException
{
System
.
out
.
println
(
"No main loop specified for node "
+
nodeName
+
" Executing default..."
);
Thread
.
sleep
(
1000
);
}
});
}
@Override
public
GraphName
getDefaultNodeName
()
{
return
GraphName
.
of
(
nodeName
);
...
...
@@ -64,6 +85,8 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
@Override
public
void
onStart
(
final
ConnectedNode
connectedNode
)
{
this
.
connectedNode
=
connectedNode
;
System
.
out
.
println
(
"Initializing node: "
+
nodeName
);
// setup publishers
...
...
@@ -89,7 +112,7 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
subscriber
.
addMessageListener
(
message
->
{
System
.
out
.
println
(
"
I heard
: \""
+
message
.
getData
()
+
"\""
);
System
.
out
.
println
(
"
Subscriber Input
: \""
+
message
.
getData
()
+
"\""
);
for
(
Map
.
Entry
<
java
.
lang
.
String
,
DiNeRosSubscriber
>
entry
:
getDinerosSubscribers
().
entrySet
())
{
if
(
entry
.
getKey
().
equals
(
t
.
asInputSignalTransition
().
getStaticTransitionInformation
().
getSubNet
())){
...
...
@@ -115,6 +138,25 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
},
t
.
asInputSignalTransition
().
getStaticTransitionInformation
().
getInputLimit
());
}
}
// setup services
for
(
Transition
t
:
petriNet
.
allTransitions
()){
if
(
t
.
asInputSignalTransition
().
getStaticTransitionInformation
().
getType
().
equals
(
PnmlConstants
.
TRANSITION_TYPE_SERVICE_REQUEST_IN
)){
connectedNode
.
newServiceServer
(
t
.
asInputSignalTransition
().
getStaticTransitionInformation
().
asServiceTransitionInformation
().
getServiceName
(),
StringService
.
_TYPE
,
(
ServiceResponseBuilder
<
StringServiceRequest
,
StringServiceResponse
>)
(
request
,
response
)
->
{
System
.
out
.
println
(
"Service Input: \""
+
request
.
getInput
()
+
"\""
);
response
.
setOutput
(
"..."
);
});
}
}
this
.
nodeLoop
();
}
public
List
<
Transition
>
getSubnetTransitionsByIds
(
List
<
java
.
lang
.
String
>
ids
,
PetriNet
petriNet
){
...
...
@@ -140,6 +182,10 @@ public abstract class DiNeRosNode extends AbstractNodeMain {
return
dinerosPublishers
;
}
public
Map
<
InputSignalTransition
,
ServiceServer
<
StringServiceRequest
,
StringServiceResponse
>>
getDinerosServiceServers
()
{
return
dinerosServiceServers
;
}
public
BalloonMarking
firePublisherTransition
(
InputSignalTransition
transition
){
java
.
lang
.
String
msgString
=
this
.
marking
.
fireTopicPublisherTransition
(
transition
,
this
.
callbackStorage
,
true
);
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment