00001 // Copyright (C) 2004 Nitin Jyoti, Arun Pratap, Suresh Golconda ;-) 00002 00003 #ifndef CAJUN_CONTROL_LINE_SENSOR_OBSERVERS_H 00004 #define CAJUN_CONTROL_LINE_SENSOR_OBSERVERS_H 00005 00006 #include "timer.H" 00007 #include "queue_generator.H" 00008 #include "components.H" 00009 #include "simulated_object.H" 00010 00011 namespace cajun 00012 { 00013 class control_line_observer_t; 00014 00016 class control_line_sensor_t : public components_t 00017 { 00018 #define DELAY_CONTROL 0.1 00019 public: 00020 simulated_object_t *m_robot; 00021 control_line_data_t m_control_line_data; 00022 control_line_observer_t * m_control_line_observer; 00023 00024 public: 00025 control_line_sensor_t (simulated_object_t *parent, timer_t *timer); 00026 virtual ~control_line_sensor_t ( ); 00027 control_line_data_t * update_control_line_data ( ) ; 00028 00029 // inherited functions 00030 void update_position ( dBodyID carb ) { }; 00031 void command ( int cmd, double value ) { }; 00032 void simulate_component (dBodyID carb) { }; 00033 }; 00034 00036 00037 class control_line_observer_t : public timer_t::observer_t 00038 { 00039 public: 00040 control_line_observer_t ( control_line_sensor_t * m, double interval_v); 00041 virtual ~control_line_observer_t ( ); 00042 bool timeout(double currTime); 00043 private: 00044 control_line_sensor_t *m_control_line_sensor; 00045 }; 00046 }; 00047 00048 #endif