diff --git a/CMakeLists.txt b/CMakeLists.txt
index d4bd8ae38df9559e765c7abc8aeb55250645bc1a..da4bc858893efb5c0d1096e017c5c44307092099 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -9,7 +9,7 @@ set(CMAKE_BUILD_TYPE "DEBUG")
 ## Find catkin macros and libraries
 ## if COMPONENTS list like find_package(catkin REQUIRED COMPONENTS xyz)
 ## is used, also find other catkin packages
-find_package(catkin REQUIRED COMPONENTS roscpp dynamic_reconfigure)
+find_package(catkin REQUIRED COMPONENTS roscpp dynamic_reconfigure message_generation)
 
 ## System dependencies are found with CMake's conventions
 find_package(Boost REQUIRED COMPONENTS system thread)
@@ -44,11 +44,10 @@ find_package(Boost REQUIRED COMPONENTS system thread)
 ##   * add every package in MSG_DEP_SET to generate_messages(DEPENDENCIES ...)
 
 ## Generate messages in the 'msg' folder
-# add_message_files(
-#   FILES
-#   Message1.msg
-#   Message2.msg
-# )
+add_message_files(
+  FILES
+  SensorLevels.msg
+)
 
 ## Generate services in the 'srv' folder
 # add_service_files(
@@ -65,10 +64,10 @@ find_package(Boost REQUIRED COMPONENTS system thread)
 # )
 
 ## Generate added messages and services with any dependencies listed here
-# generate_messages(
-#   DEPENDENCIES
-#   std_msgs  # Or other packages containing msgs
-# )
+generate_messages(
+  DEPENDENCIES
+  std_msgs  # Or other packages containing msgs
+)
 
 ###################################
 ## catkin specific configuration ##
@@ -82,7 +81,7 @@ find_package(Boost REQUIRED COMPONENTS system thread)
 catkin_package(
   INCLUDE_DIRS include
   LIBRARIES ${PROJECT_NAME}
-  CATKIN_DEPENDS roscpp dynamic_reconfigure
+  CATKIN_DEPENDS roscpp dynamic_reconfigure message_runtime
   DEPENDS Boost
 )
 
@@ -111,7 +110,7 @@ target_link_libraries(${PROJECT_NAME} ${Boost_LIBRARIES})
 ## Add cmake target dependencies of the executable/library
 ## as an example, message headers may need to be generated before nodes
 # add_dependencies(foo_node foo_generate_messages_cpp)
-# add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS})
+add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXPORTED_TARGETS})
 
 ## Specify libraries to link a library or executable target against
 # target_link_libraries(foo_node
diff --git a/msg/SensorLevels.msg b/msg/SensorLevels.msg
new file mode 100644
index 0000000000000000000000000000000000000000..5502f4c46535b006c19364d7de99f0293f55b6c9
--- /dev/null
+++ b/msg/SensorLevels.msg
@@ -0,0 +1,4 @@
+byte RECONFIGURE_CLOSE = 3  # Parameters that need a sensor to be stopped completely when changed
+byte RECONFIGURE_STOP = 1  # Parameters that need a sensor to stop streaming when changed
+byte RECONFIGURE_RUNNING = 0 # Parameters that can be changed while a sensor is streaming
+
diff --git a/package.xml b/package.xml
index 4b3a40c8f45a9dc674e69d0ffc1d7bc864bdf89c..44cb7490c36ef296085ed28883401cddab1e4b47 100644
--- a/package.xml
+++ b/package.xml
@@ -35,13 +35,13 @@
   <!-- Use build_depend for packages you need at compile time: -->
   <build_depend>roscpp</build_depend>
   <build_depend>dynamic_reconfigure</build_depend>
-  <!-- <build_depend>message_generation</build_depend> -->
+  <build_depend>message_generation</build_depend>
   <!-- Use buildtool_depend for build tool packages: -->
   <!--   <buildtool_depend>catkin</buildtool_depend> -->
   <!-- Use run_depend for packages you need at runtime: -->
   <run_depend>roscpp</run_depend>
   <run_depend>dynamic_reconfigure</run_depend>
-  <!-- <run_depend>message_runtime</run_depend> -->
+  <run_depend>message_runtime</run_depend>
   <!-- Use test_depend for packages you need only for testing: -->
   <!--   <test_depend>gtest</test_depend> -->
   <buildtool_depend>catkin</buildtool_depend>