Index: trunk/extremum_seeking/esc_nn/include/esc_nn/nn_esc_1d.h
===================================================================
--- trunk/extremum_seeking/esc_nn/include/esc_nn/nn_esc_1d.h	(revision 13)
+++ trunk/extremum_seeking/esc_nn/include/esc_nn/nn_esc_1d.h	(revision 18)
@@ -27,6 +27,8 @@
 
 protected:
-	double A_,M_,ddelta_,A,delta_,B_, mpd_init_, w_switch_old_, a_switch_old_,yr_,period_;
-	double min_peak_,vel_ref_,w_switch_;
+	double A_,M_,ddelta_,delta_,B_, mpd_init_, w_switch_old_, a_switch_old_,yr_,period_;
+	double min_peak_,vel_ref_,w_switch_,obj_val_cycle_init_;
+	double stoping_min_val_,vel_ref_old_;
+	int stopping_cycle_number_,nn_cycle_count_;
 	bool initialized_,min_peak_detect_init_;
 
@@ -34,7 +36,7 @@
 	NNESC1D();
 
-	NNESC1D(double A,double M, double B, double ddelta, double delta, double period);
+	NNESC1D(double A,double M, double B, double ddelta, double delta, double period, int stopping_cycle_number, double stoping_min_val);
 
-	void init(double A, double M, double B, double ddelta, double delta, double period);
+	void init(double A, double M, double B, double ddelta, double delta, double period, int stopping_cycle_number, double stoping_min_val);
 
 	std::vector<double> step(double obj_val);
@@ -48,4 +50,5 @@
 	double aSwitch(double e);
 	void reset();
+	bool isStoppingConditionsMet();
 
 };
Index: trunk/extremum_seeking/esc_nn/include/esc_nn/nn_esc_2d.h
===================================================================
--- trunk/extremum_seeking/esc_nn/include/esc_nn/nn_esc_2d.h	(revision 13)
+++ trunk/extremum_seeking/esc_nn/include/esc_nn/nn_esc_2d.h	(revision 18)
@@ -26,14 +26,14 @@
 protected:
 	double A_,M_,ddelta1_,ddelta2_,ddelta3_,delta_,B_, mpd_init_, w_switch_old_, a_switch1_old_, a_switch2_old_, a_switch3_old_,yr_,period_;
-	double min_peak_,w_switch_;
-	std::vector<double> vel_ref_;
+	double min_peak_,w_switch_, stoping_min_val_, obj_val_cycle_init_;
+	int stopping_cycle_number_, nn_cycle_count_;
+	std::vector<double> vel_ref_,vel_ref_old_;
 	bool initialized_,min_peak_detect_init_;
+
 
 public:
 	NNESC2D();
-
-	NNESC2D(double A,double M, double B, double ddelta1, double ddelta2, double ddelta3, double delta, double period);
-
-	void init(double A, double M, double B, double ddelta1, double ddelta2, double ddelta3, double delta, double period);
+	NNESC2D(double A,double M, double B, double ddelta1, double ddelta2, double ddelta3, double delta, double period, int stopping_cycle_number, double stoping_min_val);
+	void init(double A, double M, double B, double ddelta1, double ddelta2, double ddelta3, double delta, double period, int stopping_cycle_number, double stoping_min_val);
 
 	std::vector<double> step(double obj_val);
@@ -43,4 +43,5 @@
 	std::vector<std::string> monitorNames();
 	void reset();
+	bool isStoppingConditionsMet();
 protected:
 	double wSwitch(double e);
