ESPHome 2026.11.0-dev
Loading...
Searching...
No Matches
panasonic_protocol.h
Go to the documentation of this file.
1#pragma once
2
4#include "remote_base.h"
5
6#include <cinttypes>
7
8namespace esphome::remote_base {
9
11 // address and command stay first so positional initializers written for the 48-bit struct keep working.
12 uint16_t address;
14 uint8_t nbits{48}; // 48 or 56
15 uint8_t address_2{0};
16 // Transmit only: a receiver cannot measure the carrier, so it is not compared.
18
19 bool operator==(const PanasonicData &rhs) const {
20 return address == rhs.address && address_2 == rhs.address_2 && command == rhs.command && nbits == rhs.nbits;
21 }
22};
23
24class PanasonicProtocol : public RemoteProtocol<PanasonicData> {
25 public:
26 void encode(RemoteTransmitData *dst, const PanasonicData &data);
27 optional<PanasonicData> decode(RemoteReceiveData src);
28 void dump(const PanasonicData &data);
29};
30
31DECLARE_REMOTE_PROTOCOL(Panasonic)
32
33} // namespace esphome::remote_base
optional< PanasonicData > decode(RemoteReceiveData src)
void encode(RemoteTransmitData *dst, const PanasonicData &data)
void dump(const PanasonicData &data)
const void * src
Definition hal.h:68
static void uint32_t
bool operator==(const PanasonicData &rhs) const