Smart Camera ESP32
An AI-driven, real-time Sentry Turret platform leveraging asynchronous I/O and computer vision to deliver high-precision autonomous motion tracking on resource-constrained embedded hardware.
Loading...
Searching...
No Matches
controller.h
1
11#pragma once
12
13#include "base_detection_module.h"
15#include "joystick.h"
16#include "move_types.h"
17#include "system_control_types.h"
18#include <cstdint>
19#include <stdlib.h>
20#include <tuple>
21
22class Camera; // Forward declaration to minimize header inter-dependency
23
36{
37private:
39 SystemControl _system_control_state;
40
42 BaseMovementManager& _movement_manager;
43
45 BaseDetectionModule& _detection_module;
46
48 Joystick& _joystick;
49
51 Camera& _camera;
52
53public:
67 Controller(BaseMovementManager& movement_manager, BaseDetectionModule& detection_module, Joystick& joystick,
68 Camera& camera)
69 : _system_control_state(SystemControl::AI_MODE), _movement_manager(movement_manager),
70 _detection_module(detection_module), _joystick(joystick), _camera(camera)
71 {
72 }
73
100 void run();
101
102 const std::tuple<MoveX, MoveY> user_mode() const;
103
105 // const std::tuple<MoveX, MoveY> ai_mode() const;
107};
Header file for the BaseMovementManager interface.
An abstract base class (Interface) that defines the contract for detection algorithms....
Definition base_detection_module.h:22
Abstract base class for turret movement hardware abstraction.
Definition base_movement_manager.h:18
Singleton-style manager for camera lifecycle and frame acquisition.
Definition camera.h:63
Handles logic for object detection and movement calculations.
Definition controller.h:36
~Controller()
Destroy the Controller object.
Definition controller.h:78
void run()
Main processing cycle for the turret system.
Definition controller.cpp:8
Controller(BaseMovementManager &movement_manager, BaseDetectionModule &detection_module, Joystick &joystick, Camera &camera)
Construct a new Controller object.
Definition controller.h:67
High-level interface for 12-bit analog joystick input.
Definition joystick.h:28
Encapsulates the primary control authority of the turret.
Definition system_control_types.h:17