00001 /* 00002 * burst_creator.h 00003 * Copyright 2013 University of Massachusetts Lowell 00004 * Author: Jonathan Hasenzahl 00005 */ 00006 00007 #ifndef BURST_CREATOR_H_ 00008 #define BURST_CREATOR_H_ 00009 00010 #include "ros/ros.h" 00011 #include "burst_calc/buffer_spike_detector.h" 00012 #include "burst_calc/burst_checker.h" 00013 #include "burst_calc/burst_merger.h" 00014 #include "burst_calc/burst.h" 00015 #include "neuro_recv/dish_state.h" 00016 #include <queue> 00017 #include <string> 00018 00030 class BurstCreator 00031 { 00032 public: 00033 BurstCreator() { init(); } 00034 00035 private: 00036 void init(); 00037 void getParams(); 00038 void run(); 00039 void addDish(); 00040 void finish(); 00041 void callback(const neuro_recv::dish_state::ConstPtr& d); 00042 00043 ros::NodeHandle n_; 00044 ros::Subscriber dish_state_sub_; 00045 ros::Publisher burst_pub_cat_; 00046 ros::Publisher burst_pub_viz_; 00047 ros::Publisher ranges_pub_cat_; 00048 ros::Publisher ranges_pub_viz_; 00049 ros::ServiceClient time_client_; 00050 00051 std::queue<neuro_recv::dish_state> queue_; 00052 00053 BufferSpikeDetector buf_; 00054 BurstChecker bursts_[60]; 00055 BurstMerger merger_; 00056 00057 int buffer_size_; 00058 double stdev_mult_; 00059 int burst_window_; 00060 }; 00061 00062 #endif