ESPHome 2026.6.0-dev
Loading...
Searching...
No Matches
pioneer_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 PioneerData {
8 uint16_t rc_code_1;
9 uint16_t rc_code_2;
10
11 bool operator==(const PioneerData &rhs) const { return rc_code_1 == rhs.rc_code_1 && rc_code_2 == rhs.rc_code_2; }
12};
13
14class PioneerProtocol : public RemoteProtocol<PioneerData> {
15 public:
16 void encode(RemoteTransmitData *dst, const PioneerData &data) override;
17 optional<PioneerData> decode(RemoteReceiveData src) override;
18 void dump(const PioneerData &data) override;
19};
20
21DECLARE_REMOTE_PROTOCOL(Pioneer)
22
23template<typename... Ts> class PioneerAction : public RemoteTransmitterActionBase<Ts...> {
24 public:
25 TEMPLATABLE_VALUE(uint16_t, rc_code_1)
26 TEMPLATABLE_VALUE(uint16_t, rc_code_2)
27
28 void encode(RemoteTransmitData *dst, Ts... x) override {
29 PioneerData data{};
30 data.rc_code_1 = this->rc_code_1_.value(x...);
31 data.rc_code_2 = this->rc_code_2_.value(x...);
32 PioneerProtocol().encode(dst, data);
33 }
34};
35
36} // namespace esphome::remote_base
void dump(const PioneerData &data) override
void encode(RemoteTransmitData *dst, const PioneerData &data) override
optional< PioneerData > decode(RemoteReceiveData src) override
const void * src
Definition hal.h:64
bool operator==(const PioneerData &rhs) const
uint16_t x
Definition tt21100.cpp:5