Thunderbots Project
Loading...
Searching...
No Matches
threaded_sensor_fusion.h
1#pragma once
2
3#include "proto/parameters.pb.h"
4#include "proto/sensor_msg.pb.h"
5#include "software/multithreading/first_in_first_out_threaded_observer.h"
6#include "software/multithreading/subject.hpp"
7#include "software/sensor_fusion/sensor_fusion.h"
8#include "software/world/world.h"
9
11 : public Subject<World>,
12 public FirstInFirstOutThreadedObserver<SensorProto>,
13 public FirstInFirstOutThreadedObserver<TbotsProto::ThunderbotsConfig>
14{
15 public:
16 explicit ThreadedSensorFusion(TbotsProto::SensorFusionConfig config);
17 virtual ~ThreadedSensorFusion() = default;
18
19 private:
20 void onValueReceived(SensorProto sensor_msg) override;
21 void onValueReceived(TbotsProto::ThunderbotsConfig config) override;
22
23 SensorFusion sensor_fusion;
24 TbotsProto::SensorFusionConfig sensor_fusion_config;
25 static constexpr size_t DIFFERENT_GRSIM_FRAMES_RECEIVED = 4;
26 std::mutex sensor_fusion_mutex;
27};
Definition first_in_first_out_threaded_observer.h:17
Definition sensor_fusion.h:23
Definition subject.hpp:18
Definition threaded_sensor_fusion.h:14