13 enum class Mode : uint8_t {
117 static constexpr size_t READ_BUFFER_SIZE = 32;
118 uint8_t read_buffer_[READ_BUFFER_SIZE];
119 uint8_t read_pos_{0};
BedjetMode mode
BedJet operating mode.
constexpr size_t count(ValueType value) const
Check if the set contains a specific value (std::set compatibility) Returns 1 if present,...
constexpr bitmask_t get_mask() const
Get the raw bitmask value for optimized operations.
constexpr void insert(ValueType value)
Add a single value to the set (std::set compatibility)
constexpr void erase(ValueType value)
Remove a value from the set (std::set compatibility)
constexpr bool empty() const
Check if the set is empty.
void reset_and_dump_buffer_(const char *prefix)
bool read_and_parse(uart::UARTDevice &device, Callback &&callback)
static void dump_buffer_vv(const char *prefix, const uint8_t *data, size_t len)
uint32_t get_update_interval() const
std::optional< uint32_t > last_room_temperature_update_ms_
bool process_status_packet_(const uint8_t *payload, size_t len)
uint32_t operation_start_ms_
static bool should_transition(State from, State to)
uint8_t current_status_msg_type_
void set_room_temperature_min_interval(uint32_t interval_ms)
bool should_request_room_temperature_() const
void set_state_(State new_state)
MitsubishiCN105(uart::UARTDevice &device)
void set_remote_temperature_half_deg_(uint8_t temperature_half_deg)
bool set_wide_vane_high_bit_
bool process_rx_packet_(uint8_t type, const uint8_t *payload, size_t len)
uint32_t status_update_wait_credit_ms_
bool is_status_initialized() const
bool use_temperature_encoding_b_
void clear_remote_temperature()
uart::UARTDevice & device_
void did_transition_(State to)
void set_remote_temperature(float temperature)
bool has_timed_out_(uint32_t timeout) const
static constexpr uint8_t REMOTE_TEMPERATURE_DISABLED
UpdateFlags pending_updates_
@ WAITING_FOR_SCHEDULED_STATUS_UPDATE
@ SCHEDULE_NEXT_STATUS_UPDATE
void set_power(bool power_on)
uint32_t get_room_temperature_min_interval() const
static const LogString * state_to_string(State state)
void set_wide_vane_mode(WideVaneMode mode)
void set_target_temperature(float target_temperature)
bool parse_status_settings_(const uint8_t *payload, size_t len)
uint32_t room_temperature_min_interval_ms_
const Status & status() const
uint32_t update_interval_ms_
void set_fan_mode(FanMode fan_mode)
bool is_room_temperature_enabled() const
void send_packet_(const uint8_t *packet, size_t len)
bool parse_status_payload_(uint8_t msg_type, const uint8_t *payload, size_t len)
void set_update_interval(uint32_t interval_ms)
void send_packet_(const T &packet)
uint8_t remote_temperature_half_deg_
FrameParser frame_parser_
void set_vane_mode(VaneMode vane_mode)
bool parse_status_room_temperature_(const uint8_t *payload, size_t len)
uint32_t get_loop_time_ms()
constexpr uint32_t SCHEDULER_DONT_RUN
Lightweight type-erased callback (8 bytes on 32-bit) that avoids std::function overhead.
WideVaneMode wide_vane_mode
void clear(Flags... flags)
bool contains_only(UpdateFlag flag) const
bool contains(UpdateFlag flag) const