3#include "../utils/scheduler.h"
4#include "../video/H264Encoder.h"
5#include "../world_interface/data.h"
6#include "../world_interface/world_interface.h"
7#include "websocket/WebSocketServer.h"
15namespace net::mc::tasks {
35 void setCmdVel(
double steerVel,
double xVel);
43 void start()
override;
51 std::optional<std::pair<double, double>> _last_cmd_vel;
84 struct stream_data_t {
91 : encoder(encoder), cam_handle(cam_handle), frame_num(0) {}
110 void sendTelemetry();
_Tp power(_Tp __x, _Integer __n, _MonoidOperation __monoid_op)
void lock(_L1 &__l1, _L2 &__l2, _L3 &... __l3)
void openStream(const robot::types::CameraID &cam, int fps)
Start streaming a new camera to Mission Control.
Definition MissionControlTasks.cpp:83
void closeStream(const robot::types::CameraID &cam)
Stop streaming a camera to Mission Control.
Definition MissionControlTasks.cpp:105
void task(std::unique_lock< std::mutex > &lock) override
The long-running task, overridden by client code.
Definition MissionControlTasks.cpp:112
void setJointPower(robot::types::jointid_t id, double power)
Set the power to resend to the given joint.
Definition MissionControlTasks.cpp:28
void setTankCmdVel(double steerVel, double xVel)
Set the tank drive command to resend.
Definition MissionControlTasks.cpp:39
void setCmdVel(double steerVel, double xVel)
Set the drive command to resend.
Definition MissionControlTasks.cpp:33
void stop() override
Stop the task and wait for it to finish.
Definition MissionControlTasks.cpp:51
void start() override
Start the task.
Definition MissionControlTasks.cpp:45
A WebSocket server class that only accepts a single client at a time to each endpoint served by this ...
Definition WebSocketServer.h:35
An abstract class that can be overridden to run long-running tasks and encapsulate task-related data.
Definition scheduler.h:316
Implements a task that executes a function periodically.
Definition scheduler.h:484
Namespace for camera access system.
Definition Camera.cpp:13
uint32_t CameraID
The type of a camera id.
Definition data.h:46