Index: trunk/extremum_seeking/esc_ros/src/esc_ros.cpp
===================================================================
--- trunk/extremum_seeking/esc_ros/src/esc_ros.cpp	(revision 5)
+++ trunk/extremum_seeking/esc_ros/src/esc_ros.cpp	(revision 11)
@@ -49,5 +49,5 @@
 
 	if(monitor_){
-		pub_monitor_ = n_->advertise<esc_ros::monitor>("monitor_out",1);
+		pub_monitor_ = n_->advertise<esc_ros::Monitors>("monitor_out",1);
 	}
 
@@ -57,8 +57,10 @@
 }
 
-void ESCROS::objValWithStateCallback(esc_ros::esc_w_state msg)
+void ESCROS::objValWithStateCallback(esc_ros::StateValue msg)
 {
-	obj_val_ = msg.obj_val;
-	state_vec_ = msg.states;
+	obj_val_ = msg.value;
+	state_vec_.resize(msg.state.size());
+	for (size_t ii=0; ii < state_vec_.size(); ++ii)
+  	  state_vec_[ii] = msg.state[ii];
 	if(!first_obj_val_received_)
 		first_obj_val_received_ = true;
@@ -97,7 +99,11 @@
 
 			if(monitor_){
-				esc_ros::monitor msg_monitor;
-				msg_monitor.monitor_values = esc_->monitor();
-				msg_monitor.monitor_names = esc_->monitorNames();
+				esc_ros::Monitors msg_monitor;
+				std::vector<double> values = esc_->monitor();
+				
+				msg_monitor.values.resize(values.size());
+				for (size_t ii=0; ii < values.size(); ++ii)
+				  msg_monitor.values[ii] = values[ii];
+				msg_monitor.names = esc_->monitorNames();
 				pub_monitor_.publish(msg_monitor);
 			}
