CARLsim  3.1.3
CARLsim: a GPU-accelerated SNN simulator
group_monitor.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2014 Regents of the University of California. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1. Redistributions of source code must retain the above copyright
9  * notice, this list of conditions and the following disclaimer.
10  *
11  * 2. Redistributions in binary form must reproduce the above copyright
12  * notice, this list of conditions and the following disclaimer in the
13  * documentation and/or other materials provided with the distribution.
14  *
15  * 3. The names of its contributors may not be used to endorse or promote
16  * products derived from this software without specific prior written
17  * permission.
18  *
19  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
24  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
25  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
26  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
27  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
28  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
29  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30  *
31  * *************************************************************************
32  * CARLsim
33  * created by: (MDR) Micah Richert, (JN) Jayram M. Nageswaran
34  * maintained by: (MA) Mike Avery <averym@uci.edu>, (MB) Michael Beyeler <mbeyeler@uci.edu>,
35  * (KDC) Kristofor Carlson <kdcarlso@uci.edu>
36  * (TSC) Ting-Shuo Chou <tingshuc@uci.edu>
37  *
38  * CARLsim available from http://socsci.uci.edu/~jkrichma/CARLsim/
39  * Ver 11/26/2014
40  */
41 
42 // paradigm shift: run this on spikes.
43 
44 #ifndef _GROUP_MON_H_
45 #define _GROUP_MON_H_
46 
47 #include <carlsim_datastructures.h>
48 #include <vector> // std::vector
49 
50 class CpuSNN; // forward declaration of CpuSNN class
51 class GroupMonitorCore; // forward declaration of implementation
52 
96 class GroupMonitor {
97  public:
104  GroupMonitor(GroupMonitorCore* groupMonitorCorePtr);
105 
112  virtual ~GroupMonitor();
113 
114 
115  // +++++ PUBLIC METHODS: +++++++++++++++++++++++++++++++++++++++++++++++//
116 
123  bool isRecording();
124 
138  void startRecording();
139 
147  void stopRecording();
148 
159  int getRecordingTotalTime();
160 
169 
177  int getRecordingStartTime();
178 
185  int getRecordingStopTime();
186 
195  bool getPersistentData();
196 
206  void setPersistentData(bool persistentData);
207 
217  std::vector<float> getDataVector();
218 
228  std::vector<int> getTimeVector();
229 
239  std::vector<float> getPeakValueVector();
240 
250  std::vector<int> getPeakTimeVector();
251 
262  std::vector<float> getSortedPeakValueVector();
263 
274  std::vector<int> getSortedPeakTimeVector();
275 
276  private:
278  GroupMonitorCore* groupMonitorCorePtr_;
279 };
280 
281 #endif
int getRecordingTotalTime()
Returns the total recording time (ms)
std::vector< int > getTimeVector()
return a vector of the timestamps for group data
std::vector< int > getPeakTimeVector()
return a vector of the timestamps for peak values in group data
virtual ~GroupMonitor()
GroupMonitor destructor.
int getRecordingLastStartTime()
Returns the simulation time (ms) of the last call to startRecording()
void stopRecording()
Ends a recording period.
bool getPersistentData()
Returns a flag that indicates whether PersistentMode is on (true) or off (false)
Class GroupMonitor.
Definition: group_monitor.h:96
int getRecordingStopTime()
Returns the simulation time (ms) of the last call to stopRecording()
std::vector< float > getPeakValueVector()
return a vector of peak values in group data
GroupMonitor(GroupMonitorCore *groupMonitorCorePtr)
GroupMonitor constructor.
void setPersistentData(bool persistentData)
Sets PersistentMode either on (true) or off (false)
std::vector< float > getSortedPeakValueVector()
return a vector of peak values in group data (sorted in decending order)
std::vector< float > getDataVector()
return the group data vector
std::vector< int > getSortedPeakTimeVector()
return a vector of the timestamps for peak values in group data (sorted in decending order) ...
int getRecordingStartTime()
Returns the simulation time (ms) of the first call to startRecording()
bool isRecording()
Recording status (true=recording, false=not recording)
void startRecording()
Starts a new recording period.