52 lines
1.2 KiB
C
Raw Normal View History

#pragma once
#include <cstdint>
#include <functional>
2024-01-17 16:23:27 -08:00
#include "macros.h"
#include "observable.h"
#define ESP_LOG1 ESP_LOGD
#define ESP_LOG2 ESP_LOGD
namespace esphome {
namespace ratgdo {
2024-01-09 08:42:11 -08:00
namespace protocol {
struct SetRollingCodeCounter { uint32_t counter; };
struct GetRollingCodeCounter {};
struct SetClientID { uint64_t client_id; };
2024-01-09 08:42:11 -08:00
struct QueryStatus{};
struct QueryOpenings{};
struct ActivateLearn {};
struct InactivateLearn {};
2024-01-16 15:22:57 -08:00
struct QueryPairedDevices { PairedDevice kind; };
struct QueryPairedDevicesAll {};
struct ClearPairedDevices { PairedDevice kind; };
// a poor man's sum-type, because C++
2024-01-17 16:23:27 -08:00
SUM_TYPE(Args,
(SetRollingCodeCounter, set_rolling_code_counter),
(GetRollingCodeCounter, get_rolling_code_counter),
(SetClientID, set_client_id),
(QueryStatus, query_status),
(QueryOpenings, query_openings),
(ActivateLearn, activate_learn),
(InactivateLearn, inactivate_learn),
(QueryPairedDevices, query_paired_devices),
(QueryPairedDevicesAll, query_paired_devices_all),
(ClearPairedDevices, clear_paired_devices),
)
2024-01-09 08:42:11 -08:00
struct RollingCodeCounter { observable<uint32_t>* value; };
2024-01-17 16:23:27 -08:00
SUM_TYPE(Result,
(RollingCodeCounter, rolling_code_counter),
)
2024-01-09 08:42:11 -08:00
} // namespace protocol
} // namespace ratgdo
} // namespace esphome