Chi-Tech
sweepscheduler.h
Go to the documentation of this file.
1#ifndef CHI_SWEEPSCHEDULER_H
2#define CHI_SWEEPSCHEDULER_H
3
6
7
9{
11 {
12 FIRST_IN_FIRST_OUT = 1, ///< FIFO
13 DEPTH_OF_GRAPH = 2 ///< DOG
14 };
15}
16
20typedef std::vector<TGSPO> TLEVELED_GRAPH;
21
22//###################################################################
24{
25private:
28
30 {
31 std::shared_ptr<TAngleSet> angle_set;
36 size_t set_index;
37
38 explicit RULE_VALUES(std::shared_ptr<TAngleSet>& ref_as) :
39 angle_set(ref_as)
40 {
42 set_index = 0;
46 }
47 };
48 std::vector<RULE_VALUES> rule_values_;
49
51 const size_t sweep_event_tag_;
52 const std::vector<size_t> sweep_timing_events_tag_;
53
54
55public:
56 SweepScheduler(SchedulingAlgorithm in_scheduler_type,
57 AngleAggregation& in_angle_agg,
58 SweepChunk& in_sweep_chunk);
59
61
62 size_t SweepEventTag() const {return sweep_event_tag_;}
63
64 void Sweep();
65 double GetAverageSweepTime() const;
66 std::vector<double> GetAngleSetTimings();
68
69private:
70 void ScheduleAlgoFIFO(SweepChunk& sweep_chunk);
71
72 //02
73 void InitializeAlgoDOG();
74 void ScheduleAlgoDOG(SweepChunk& sweep_chunk);
75
76 //03 utils
77public:
78 //phi
79 void SetDestinationPhi(std::vector<double>& in_destination_phi);
80 void ZeroDestinationPhi();
81 std::vector<double>& GetDestinationPhi();
82
83 //psi
84 void SetDestinationPsi(std::vector<double>& in_destination_psi);
85 void ZeroDestinationPsi();
86 std::vector<double>& GetDestinationPsi();
87
90
92
93 void SetBoundarySourceActiveFlag(bool flag_value);
94
95};
96
97#endif //CHI_SWEEPSCHEDULER_H
void SetDestinationPhi(std::vector< double > &in_destination_phi)
void ScheduleAlgoFIFO(SweepChunk &sweep_chunk)
SweepScheduler(SchedulingAlgorithm in_scheduler_type, AngleAggregation &in_angle_agg, SweepChunk &in_sweep_chunk)
void SetDestinationPsi(std::vector< double > &in_destination_psi)
const std::vector< size_t > sweep_timing_events_tag_
std::vector< RULE_VALUES > rule_values_
void ScheduleAlgoDOG(SweepChunk &sweep_chunk)
RULE_VALUES(std::shared_ptr< TAngleSet > &ref_as)
chi_mesh::sweep_management::STDG TGSPO
chi_mesh::sweep_management::AngleSet TAngleSet
std::vector< TGSPO > TLEVELED_GRAPH
chi_mesh::sweep_management::AngleSetGroup TAngleSetGroup