ESPHome 2025.6.3
Loading...
Searching...
No Matches
pronto_protocol.h
Go to the documentation of this file.
1#pragma once
2
4#include "remote_base.h"
5
6#include <vector>
7
8namespace esphome {
9namespace remote_base {
10
11std::vector<uint16_t> encode_pronto(const std::string &str);
12
13struct ProntoData {
14 std::string data;
15 int delta;
16
17 bool operator==(const ProntoData &rhs) const;
18};
19
20class ProntoProtocol : public RemoteProtocol<ProntoData> {
21 private:
22 void send_pronto_(RemoteTransmitData *dst, const std::vector<uint16_t> &data);
23 void send_pronto_(RemoteTransmitData *dst, const std::string &str);
24
25 uint16_t effective_frequency_(uint16_t frequency);
26 uint16_t to_timebase_(uint16_t frequency);
27 uint16_t to_frequency_code_(uint16_t frequency);
28 std::string dump_digit_(uint8_t x);
29 std::string dump_number_(uint16_t number, bool end = false);
30 std::string dump_duration_(uint32_t duration, uint16_t timebase, bool end = false);
31 std::string compensate_and_dump_sequence_(const RawTimings &data, uint16_t timebase);
32
33 public:
34 void encode(RemoteTransmitData *dst, const ProntoData &data) override;
36 void dump(const ProntoData &data) override;
37};
38
39DECLARE_REMOTE_PROTOCOL(Pronto)
40
41template<typename... Ts> class ProntoAction : public RemoteTransmitterActionBase<Ts...> {
42 public:
43 TEMPLATABLE_VALUE(std::string, data)
44 TEMPLATABLE_VALUE(int, delta)
45
46 void encode(RemoteTransmitData *dst, Ts... x) override {
47 ProntoData data{};
48 data.data = this->data_.value(x...);
49 data.delta = this->delta_.value(x...);
50 ProntoProtocol().encode(dst, data);
51 }
52};
53
54} // namespace remote_base
55} // namespace esphome
uint16_le_t frequency
Definition bl0942.h:6
void encode(RemoteTransmitData *dst, const ProntoData &data) override
optional< ProntoData > decode(RemoteReceiveData src) override
void dump(const ProntoData &data) override
uint8_t duration
Definition msa3xx.h:0
std::vector< uint16_t > encode_pronto(const std::string &str)
std::vector< int32_t > RawTimings
Definition remote_base.h:23
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7
bool operator==(const ProntoData &rhs) const
uint8_t end[39]
Definition sun_gtil2.cpp:17
uint16_t x
Definition tt21100.cpp:5