blah2
A real-time passive radar
Track.h
Go to the documentation of this file.
1 
15 #ifndef TRACK_H
16 #define TRACK_H
17 
18 #include "data/Detection.h"
19 
20 #include <stdint.h>
21 #include <vector>
22 #include <string>
23 #include <memory>
24 
25 class Track
26 {
27 private:
29  std::vector<std::string> id;
30 
32  std::vector<std::vector<std::string>> state;
33 
35  std::vector<Detection> current;
36 
38  std::vector<double> acceleration;
39 
41  std::vector<std::vector<Detection>> associated;
42 
45  std::vector<uint64_t> nInactive;
46 
48  uint64_t iNext;
49 
51  static const uint64_t MAX_INDEX;
52 
54  static const std::string STATE_ACTIVE;
55 
57  static const std::string STATE_TENTATIVE;
58 
60  static const std::string STATE_COASTING;
61 
63  static const std::string STATE_ASSOCIATED;
64 
65 public:
68  Track();
69 
72  ~Track();
73 
78  std::string uint2hex(uint64_t number);
79 
84  void set_state(uint64_t index, std::string state);
85 
91  void set_current(uint64_t index, Detection smoothed);
92 
97  void set_acceleration(uint64_t index, double acceleration);
98 
103  void set_nInactive(uint64_t index, uint64_t n);
104 
108  uint64_t get_nState(std::string state);
109 
112  uint64_t get_n();
113 
116  Detection get_current(uint64_t index);
117 
120  double get_acceleration(uint64_t index);
121 
124  std::string get_state(uint64_t index);
125 
128  uint64_t get_nInactive(uint64_t index);
129 
134  void update(uint64_t index, Detection update);
135 
141  uint64_t add(Detection initial);
142 
147  void promote(uint64_t index, uint32_t m, uint32_t n);
148 
152  void remove(uint64_t index);
153 
157  std::string to_json(uint64_t timestamp);
158 
163  bool save(std::string json, std::string path);
164 };
165 
166 #endif
A class to store detection data.
Definition: Detection.h:14
A class to store track data.
Definition: Track.h:26
Track()
Constructor.
Definition: Track.cpp:20
std::vector< std::string > id
Track ID (4 digit alpha-numeric).
Definition: Track.h:29
~Track()
Destructor.
Definition: Track.cpp:25
static const std::string STATE_ASSOCIATED
String for state ASSOCIATED.
Definition: Track.h:63
std::vector< uint64_t > nInactive
Number of updates the track has been tentative/coasting.
Definition: Track.h:45
void promote(uint64_t index, uint32_t m, uint32_t n)
Promote track to state ACTIVE if applicable.
Definition: Track.cpp:115
uint64_t get_n()
Get number of total tracks.
Definition: Track.cpp:70
static const std::string STATE_ACTIVE
String for state ACTIVE.
Definition: Track.h:54
std::vector< double > acceleration
Current acceleration (Hz/s).
Definition: Track.h:38
double get_acceleration(uint64_t index)
Get current acceleration for track index.
Definition: Track.cpp:80
uint64_t get_nState(std::string state)
Get number of tracks with specified state.
Definition: Track.cpp:57
void set_state(uint64_t index, std::string state)
Set the state of the latest tracklet.
Definition: Track.cpp:36
void set_current(uint64_t index, Detection smoothed)
Set the current track position.
Definition: Track.cpp:41
static const std::string STATE_TENTATIVE
String for state TENTATIVE.
Definition: Track.h:57
bool save(std::string json, std::string path)
Append the map to a save file.
void set_acceleration(uint64_t index, double acceleration)
Set the current acceleration.
Definition: Track.cpp:47
uint64_t iNext
Next valid track index.
Definition: Track.h:48
uint64_t get_nInactive(uint64_t index)
Get number of updates track has been tentative/coasting.
Definition: Track.cpp:90
std::string uint2hex(uint64_t number)
Convert an unsigned int to hexadecimal.
Definition: Track.cpp:29
static const uint64_t MAX_INDEX
Maximum integer index to wrap around.
Definition: Track.h:51
void set_nInactive(uint64_t index, uint64_t n)
Set the current inactivity.
Definition: Track.cpp:52
std::vector< Detection > current
Curent track position.
Definition: Track.h:35
std::vector< std::vector< Detection > > associated
Associated detections in track.
Definition: Track.h:41
std::string to_json(uint64_t timestamp)
Generate JSON of the map and metadata.
Definition: Track.cpp:172
std::vector< std::vector< std::string > > state
State history for each track.
Definition: Track.h:32
static const std::string STATE_COASTING
String for state COASTING.
Definition: Track.h:60
Detection get_current(uint64_t index)
Get current track position for track index.
Definition: Track.cpp:75
void update(uint64_t index, Detection update)
Update an associated detection.
std::string get_state(uint64_t index)
Get current state for track index.
Definition: Track.cpp:85
uint64_t add(Detection initial)
Add track to the track set.
Definition: Track.cpp:95
void remove(uint64_t index)
Remove track based on index.
Definition: Track.cpp:137