Skip to content
This repository was archived by the owner on Jan 14, 2023. It is now read-only.

Commit 9032aad

Browse files
committed
packet readed with genjava scripts filled with stubs.
1 parent a7138e7 commit 9032aad

10 files changed

+219
-0
lines changed

CMakeLists.txt

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
##############################################################################
2+
# CMake
3+
##############################################################################
4+
5+
cmake_minimum_required(VERSION 2.8.3)
6+
project(genjava)
7+
8+
##############################################################################
9+
# Dependencies
10+
##############################################################################
11+
12+
find_package(catkin REQUIRED COMPONENTS genmsg)
13+
14+
##############################################################################
15+
# Package
16+
##############################################################################
17+
18+
catkin_package(
19+
CATKIN_DEPENDS genmsg
20+
CFG_EXTRAS genjava-extras.cmake
21+
)
22+
23+
add_subdirectory(scripts)
24+
25+
message(STATUS "GENMSG_LANGS_DESTINATION...........${GENMSG_LANGS_DESTINATION}")
26+
file(WRITE ${CATKIN_DEVEL_PREFIX}/${GENMSG_LANGS_DESTINATION}/genjava "Java")
27+
install(FILES ${CATKIN_DEVEL_PREFIX}/${GENMSG_LANGS_DESTINATION}/genjava
28+
DESTINATION ${GENMSG_LANGS_DESTINATION})
29+
30+
catkin_python_setup()
31+
32+
if(CATKIN_ENABLE_TESTING)
33+
catkin_add_nosetests(test)
34+
endif()
35+

cmake/genjava-extras.cmake.em

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
@[if DEVELSPACE]@
2+
# location of scripts in develspace
3+
set(GENJAVA_BIN_DIR "@(CMAKE_CURRENT_SOURCE_DIR)/scripts")
4+
@[else]@
5+
# location of scripts in installspace
6+
set(GENJAVA_BIN_DIR "${GENJAVA_DIR}/../../../@(CATKIN_PACKAGE_BIN_DESTINATION)")
7+
@[end if]@
8+
9+
set(GENMSG_JAVA_BIN ${GENJAVA_BIN_DIR}/genmsg_java.py)
10+
set(GENSRV_JAVA_BIN ${GENJAVA_BIN_DIR}/gensrv_java.py)
11+
12+
# Generate .msg->.h for py
13+
# The generated .h files should be added ALL_GEN_OUTPUT_FILES_py
14+
macro(_generate_msg_java ARG_PKG ARG_MSG ARG_IFLAGS ARG_MSG_DEPS ARG_GEN_OUTPUT_DIR)
15+
16+
message(STATUS "GEN_MSG_JAVA..........._generate_msg_java")
17+
message(STATUS " ARG_PKG..............${ARG_PKG}")
18+
message(STATUS " ARG_MSG..............${ARG_MSG}")
19+
message(STATUS " ARG_IFLAGS...........${ARG_IFLAGS}")
20+
message(STATUS " ARG_MSG_DEPS.........${ARG_MSG_DEPS}")
21+
message(STATUS " ARG_GEN_OUTPUT_DIR...${ARG_GEN_OUTPUT_DIR}")
22+
23+
#Append msg to output dir
24+
# set(GEN_OUTPUT_DIR "${ARG_GEN_OUTPUT_DIR}/msg")
25+
# file(MAKE_DIRECTORY ${GEN_OUTPUT_DIR})
26+
#Create input and output filenames
27+
# get_filename_component(MSG_SHORT_NAME ${ARG_MSG} NAME_WE)
28+
#
29+
# set(MSG_GENERATED_NAME _${MSG_SHORT_NAME}.py)
30+
# set(GEN_OUTPUT_FILE ${GEN_OUTPUT_DIR}/${MSG_GENERATED_NAME})
31+
#
32+
# add_custom_command(OUTPUT ${GEN_OUTPUT_FILE}
33+
# DEPENDS ${GENMSG_PY_BIN} ${ARG_MSG} ${ARG_MSG_DEPS}
34+
# COMMAND ${CATKIN_ENV} ${PYTHON_EXECUTABLE} ${GENMSG_PY_BIN} ${ARG_MSG}
35+
# ${ARG_IFLAGS}
36+
# -p ${ARG_PKG}
37+
# -o ${GEN_OUTPUT_DIR}
38+
# COMMENT "Generating Python from MSG ${ARG_PKG}/${MSG_SHORT_NAME}"
39+
# )
40+
#
41+
# list(APPEND ALL_GEN_OUTPUT_FILES_py ${GEN_OUTPUT_FILE})
42+
43+
endmacro()
44+
45+
#todo, these macros are practically equal. Check for input file extension instead
46+
macro(_generate_srv_java ARG_PKG ARG_SRV ARG_IFLAGS ARG_MSG_DEPS ARG_GEN_OUTPUT_DIR)
47+
48+
message(STATUS "GEN_SRV_JAVA..........._generate_srv_java")
49+
#Append msg to output dir
50+
# set(GEN_OUTPUT_DIR "${ARG_GEN_OUTPUT_DIR}/srv")
51+
# file(MAKE_DIRECTORY ${GEN_OUTPUT_DIR})
52+
#
53+
#Create input and output filenames
54+
# get_filename_component(SRV_SHORT_NAME ${ARG_SRV} NAME_WE)
55+
#
56+
# set(SRV_GENERATED_NAME _${SRV_SHORT_NAME}.py)
57+
# set(GEN_OUTPUT_FILE ${GEN_OUTPUT_DIR}/${SRV_GENERATED_NAME})
58+
#
59+
# add_custom_command(OUTPUT ${GEN_OUTPUT_FILE}
60+
# DEPENDS ${GENSRV_PY_BIN} ${ARG_SRV} ${ARG_MSG_DEPS}
61+
# COMMAND ${CATKIN_ENV} ${PYTHON_EXECUTABLE} ${GENSRV_PY_BIN} ${ARG_SRV}
62+
# ${ARG_IFLAGS}
63+
# -p ${ARG_PKG}
64+
# -o ${GEN_OUTPUT_DIR}
65+
# COMMENT "Generating Python code from SRV ${ARG_PKG}/${SRV_SHORT_NAME}"
66+
# )
67+
#
68+
# list(APPEND ALL_GEN_OUTPUT_FILES_py ${GEN_OUTPUT_FILE})
69+
70+
endmacro()
71+
72+
macro(_generate_module_java ARG_PKG ARG_GEN_OUTPUT_DIR ARG_GENERATED_FILES)
73+
74+
message(STATUS "GEN_MODULE_PY..........._generate_module_py")
75+
# generate empty __init__ to make parent folder of msg/srv a python module
76+
if(NOT EXISTS ${ARG_GEN_OUTPUT_DIR}/__init__.py)
77+
file(WRITE ${ARG_GEN_OUTPUT_DIR}/__init__.py "")
78+
endif()
79+
80+
#Append msg to output dir
81+
foreach(type "msg" "srv")
82+
set(GEN_OUTPUT_DIR "${ARG_GEN_OUTPUT_DIR}/${type}")
83+
set(GEN_OUTPUT_FILE ${GEN_OUTPUT_DIR}/__init__.py)
84+
85+
if(IS_DIRECTORY ${GEN_OUTPUT_DIR})
86+
add_custom_command(OUTPUT ${GEN_OUTPUT_FILE}
87+
DEPENDS ${GENMSG_PY_BIN} ${ARG_GENERATED_FILES}
88+
COMMAND ${CATKIN_ENV} ${PYTHON_EXECUTABLE} ${GENMSG_PY_BIN}
89+
-o ${GEN_OUTPUT_DIR}
90+
--initpy
91+
COMMENT "Generating Python ${type} __init__.py for ${ARG_PKG}")
92+
list(APPEND ALL_GEN_OUTPUT_FILES_py ${GEN_OUTPUT_FILE})
93+
endif()
94+
95+
endforeach()
96+
97+
endmacro()
98+
99+
if(NOT EXISTS @(PROJECT_NAME)_SOURCE_DIR)
100+
set(GENJAVA_INSTALL_DIR ${PYTHON_INSTALL_DIR})
101+
endif()

package.xml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
<package>
2+
<name>genjava</name>
3+
<version>0.1.0</version>
4+
<description>
5+
Java ROS message and service generators.
6+
</description>
7+
8+
<license>BSD</license>
9+
10+
<url type="website">http://www.ros.org/wiki/genjava</url>
11+
<url type="repository">https://github.com/rosjava/genjava</url>
12+
<url type="bugtracker">https://github.com/rosjava/genjava/issues</url>
13+
14+
<maintainer email="[email protected]">Daniel Stonier</maintainer>
15+
16+
<author>Daniel Stonier</author>
17+
18+
<buildtool_depend version_gte="0.5.78">catkin</buildtool_depend>
19+
20+
<build_depend>genmsg</build_depend>
21+
22+
<run_depend>genmsg</run_depend>
23+
24+
<export>
25+
<message_generator>java</message_generator>
26+
<rosdoc config="rosdoc.yaml"/>
27+
<architecture_independent/>
28+
</export>
29+
</package>

rosdoc.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
- builder: sphinx
2+
sphinx_root_dir: doc

scripts/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
catkin_install_python(
2+
PROGRAMS genmsg_java.py gensrv_java.py
3+
DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION})

scripts/genmsg_java.py

Whitespace-only changes.

scripts/gensrv_java.py

Whitespace-only changes.

setup.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#!/usr/bin/env python
2+
3+
from distutils.core import setup
4+
from catkin_pkg.python_setup import generate_distutils_setup
5+
6+
d = generate_distutils_setup(
7+
packages=['genjava'],
8+
package_dir={'': 'src'},
9+
requires=['genmsg']
10+
)
11+
12+
setup(**d)

src/genjava/__init__.py

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Software License Agreement (BSD License)
2+
#
3+
# Copyright (c) 2014, Daniel Stonier
4+
# All rights reserved.
5+
#
6+
# Redistribution and use in source and binary forms, with or without
7+
# modification, are permitted provided that the following conditions
8+
# are met:
9+
#
10+
# * Redistributions of source code must retain the above copyright
11+
# notice, this list of conditions and the following disclaimer.
12+
# * Redistributions in binary form must reproduce the above
13+
# copyright notice, this list of conditions and the following
14+
# disclaimer in the documentation and/or other materials provided
15+
# with the distribution.
16+
# * Neither the name of Willow Garage, Inc. nor the names of its
17+
# contributors may be used to endorse or promote products derived
18+
# from this software without specific prior written permission.
19+
#
20+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21+
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22+
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
23+
# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
24+
# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
25+
# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
26+
# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
27+
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
28+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29+
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
30+
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
31+
# POSSIBILITY OF SUCH DAMAGE.
32+
33+
#from . rostime import Time, Duration, TVal
34+
#from . message import Message, SerializationError, DeserializationError, MessageException, struct_I
35+
36+
#__all__ = ['Time', 'Duration', 'TVal',
37+
# 'Message', 'SerializationError', 'DeserializationError', 'MessageException', 'struct_I']

test/__init__.py

Whitespace-only changes.

0 commit comments

Comments
 (0)