ESPHome 2026.5.0
Loading...
Searching...
No Matches
roomba_protocol.h
Go to the documentation of this file.
1#pragma once
2
3#include "remote_base.h"
4
5namespace esphome::remote_base {
6
7struct RoombaData {
8 uint8_t data;
9
10 bool operator==(const RoombaData &rhs) const { return data == rhs.data; }
11};
12
13class RoombaProtocol : public RemoteProtocol<RoombaData> {
14 public:
15 void encode(RemoteTransmitData *dst, const RoombaData &data) override;
16 optional<RoombaData> decode(RemoteReceiveData src) override;
17 void dump(const RoombaData &data) override;
18};
19
20DECLARE_REMOTE_PROTOCOL(Roomba)
21
22template<typename... Ts> class RoombaAction : public RemoteTransmitterActionBase<Ts...> {
23 public:
24 TEMPLATABLE_VALUE(uint8_t, data)
25
26 void encode(RemoteTransmitData *dst, Ts... x) override {
27 RoombaData data{};
28 data.data = this->data_.value(x...);
29 RoombaProtocol().encode(dst, data);
30 }
31};
32
33} // namespace esphome::remote_base
void encode(RemoteTransmitData *dst, const RoombaData &data) override
void dump(const RoombaData &data) override
optional< RoombaData > decode(RemoteReceiveData src) override
bool operator==(const RoombaData &rhs) const
uint16_t x
Definition tt21100.cpp:5