mirror of
https://github.com/esphome/esphome.git
synced 2025-10-08 04:43:46 +01:00
Merge remote-tracking branch 'upstream/dev' into integration
This commit is contained in:
@@ -179,7 +179,7 @@ void Graph::draw(Display *buff, uint16_t x_offset, uint16_t y_offset, Color colo
|
|||||||
if (b) {
|
if (b) {
|
||||||
int16_t y = (int16_t) roundf((this->height_ - 1) * (1.0 - v)) - thick / 2 + y_offset;
|
int16_t y = (int16_t) roundf((this->height_ - 1) * (1.0 - v)) - thick / 2 + y_offset;
|
||||||
auto draw_pixel_at = [&buff, c, y_offset, this](int16_t x, int16_t y) {
|
auto draw_pixel_at = [&buff, c, y_offset, this](int16_t x, int16_t y) {
|
||||||
if (y >= y_offset && y < y_offset + this->height_)
|
if (y >= y_offset && static_cast<uint32_t>(y) < y_offset + this->height_)
|
||||||
buff->draw_pixel_at(x, y, c);
|
buff->draw_pixel_at(x, y, c);
|
||||||
};
|
};
|
||||||
if (!continuous || !has_prev || !prev_b || (abs(y - prev_y) <= thick)) {
|
if (!continuous || !has_prev || !prev_b || (abs(y - prev_y) <= thick)) {
|
||||||
|
@@ -213,7 +213,7 @@ haier_protocol::HandlerError HonClimate::status_handler_(haier_protocol::FrameTy
|
|||||||
this->real_control_packet_size_);
|
this->real_control_packet_size_);
|
||||||
this->status_message_callback_.call((const char *) data, data_size);
|
this->status_message_callback_.call((const char *) data, data_size);
|
||||||
} else {
|
} else {
|
||||||
ESP_LOGW(TAG, "Status packet too small: %d (should be >= %d)", data_size, this->real_control_packet_size_);
|
ESP_LOGW(TAG, "Status packet too small: %zu (should be >= %zu)", data_size, this->real_control_packet_size_);
|
||||||
}
|
}
|
||||||
switch (this->protocol_phase_) {
|
switch (this->protocol_phase_) {
|
||||||
case ProtocolPhases::SENDING_FIRST_STATUS_REQUEST:
|
case ProtocolPhases::SENDING_FIRST_STATUS_REQUEST:
|
||||||
@@ -827,7 +827,7 @@ haier_protocol::HandlerError HonClimate::process_status_message_(const uint8_t *
|
|||||||
size_t expected_size =
|
size_t expected_size =
|
||||||
2 + this->status_message_header_size_ + this->real_control_packet_size_ + this->real_sensors_packet_size_;
|
2 + this->status_message_header_size_ + this->real_control_packet_size_ + this->real_sensors_packet_size_;
|
||||||
if (size < expected_size) {
|
if (size < expected_size) {
|
||||||
ESP_LOGW(TAG, "Unexpected message size %d (expexted >= %d)", size, expected_size);
|
ESP_LOGW(TAG, "Unexpected message size %u (expexted >= %zu)", size, expected_size);
|
||||||
return haier_protocol::HandlerError::WRONG_MESSAGE_STRUCTURE;
|
return haier_protocol::HandlerError::WRONG_MESSAGE_STRUCTURE;
|
||||||
}
|
}
|
||||||
uint16_t subtype = (((uint16_t) packet_buffer[0]) << 8) + packet_buffer[1];
|
uint16_t subtype = (((uint16_t) packet_buffer[0]) << 8) + packet_buffer[1];
|
||||||
|
@@ -178,7 +178,7 @@ class HonClimate : public HaierClimateBase {
|
|||||||
int extra_control_packet_bytes_{0};
|
int extra_control_packet_bytes_{0};
|
||||||
int extra_sensors_packet_bytes_{4};
|
int extra_sensors_packet_bytes_{4};
|
||||||
int status_message_header_size_{0};
|
int status_message_header_size_{0};
|
||||||
int real_control_packet_size_{sizeof(hon_protocol::HaierPacketControl)};
|
size_t real_control_packet_size_{sizeof(hon_protocol::HaierPacketControl)};
|
||||||
int real_sensors_packet_size_{sizeof(hon_protocol::HaierPacketSensors) + 4};
|
int real_sensors_packet_size_{sizeof(hon_protocol::HaierPacketSensors) + 4};
|
||||||
HonControlMethod control_method_;
|
HonControlMethod control_method_;
|
||||||
std::queue<haier_protocol::HaierMessage> control_messages_queue_;
|
std::queue<haier_protocol::HaierMessage> control_messages_queue_;
|
||||||
|
@@ -340,7 +340,7 @@ class MipiSpi : public display::Display,
|
|||||||
this->write_cmd_addr_data(0, 0, 0, 0, ptr, w * h, 8);
|
this->write_cmd_addr_data(0, 0, 0, 0, ptr, w * h, 8);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
for (size_t y = 0; y != h; y++) {
|
for (size_t y = 0; y != static_cast<size_t>(h); y++) {
|
||||||
if constexpr (BUS_TYPE == BUS_TYPE_SINGLE || BUS_TYPE == BUS_TYPE_SINGLE_16) {
|
if constexpr (BUS_TYPE == BUS_TYPE_SINGLE || BUS_TYPE == BUS_TYPE_SINGLE_16) {
|
||||||
this->write_array(ptr, w);
|
this->write_array(ptr, w);
|
||||||
} else if constexpr (BUS_TYPE == BUS_TYPE_QUAD) {
|
} else if constexpr (BUS_TYPE == BUS_TYPE_QUAD) {
|
||||||
@@ -372,8 +372,8 @@ class MipiSpi : public display::Display,
|
|||||||
uint8_t dbuffer[DISPLAYPIXEL * 48];
|
uint8_t dbuffer[DISPLAYPIXEL * 48];
|
||||||
uint8_t *dptr = dbuffer;
|
uint8_t *dptr = dbuffer;
|
||||||
auto stride = x_offset + w + x_pad; // stride in pixels
|
auto stride = x_offset + w + x_pad; // stride in pixels
|
||||||
for (size_t y = 0; y != h; y++) {
|
for (size_t y = 0; y != static_cast<size_t>(h); y++) {
|
||||||
for (size_t x = 0; x != w; x++) {
|
for (size_t x = 0; x != static_cast<size_t>(w); x++) {
|
||||||
auto color_val = ptr[y * stride + x];
|
auto color_val = ptr[y * stride + x];
|
||||||
if constexpr (DISPLAYPIXEL == PIXEL_MODE_18 && BUFFERPIXEL == PIXEL_MODE_16) {
|
if constexpr (DISPLAYPIXEL == PIXEL_MODE_18 && BUFFERPIXEL == PIXEL_MODE_16) {
|
||||||
// 16 to 18 bit conversion
|
// 16 to 18 bit conversion
|
||||||
|
@@ -5,6 +5,8 @@ from esphome.config_helpers import filter_source_files_from_platform
|
|||||||
import esphome.config_validation as cv
|
import esphome.config_validation as cv
|
||||||
from esphome.const import (
|
from esphome.const import (
|
||||||
CONF_BUFFER_SIZE,
|
CONF_BUFFER_SIZE,
|
||||||
|
CONF_CARRIER_DUTY_PERCENT,
|
||||||
|
CONF_CARRIER_FREQUENCY,
|
||||||
CONF_CLOCK_RESOLUTION,
|
CONF_CLOCK_RESOLUTION,
|
||||||
CONF_DUMP,
|
CONF_DUMP,
|
||||||
CONF_FILTER,
|
CONF_FILTER,
|
||||||
@@ -149,6 +151,14 @@ CONFIG_SCHEMA = remote_base.validate_triggers(
|
|||||||
),
|
),
|
||||||
cv.boolean,
|
cv.boolean,
|
||||||
),
|
),
|
||||||
|
cv.SplitDefault(CONF_CARRIER_DUTY_PERCENT, esp32=100): cv.All(
|
||||||
|
cv.only_on_esp32,
|
||||||
|
cv.percentage_int,
|
||||||
|
cv.Range(min=1, max=100),
|
||||||
|
),
|
||||||
|
cv.SplitDefault(CONF_CARRIER_FREQUENCY, esp32="0Hz"): cv.All(
|
||||||
|
cv.only_on_esp32, cv.frequency, cv.int_
|
||||||
|
),
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
.extend(cv.COMPONENT_SCHEMA)
|
.extend(cv.COMPONENT_SCHEMA)
|
||||||
@@ -168,6 +178,8 @@ async def to_code(config):
|
|||||||
cg.add(var.set_clock_resolution(config[CONF_CLOCK_RESOLUTION]))
|
cg.add(var.set_clock_resolution(config[CONF_CLOCK_RESOLUTION]))
|
||||||
if CONF_FILTER_SYMBOLS in config:
|
if CONF_FILTER_SYMBOLS in config:
|
||||||
cg.add(var.set_filter_symbols(config[CONF_FILTER_SYMBOLS]))
|
cg.add(var.set_filter_symbols(config[CONF_FILTER_SYMBOLS]))
|
||||||
|
cg.add(var.set_carrier_duty_percent(config[CONF_CARRIER_DUTY_PERCENT]))
|
||||||
|
cg.add(var.set_carrier_frequency(config[CONF_CARRIER_FREQUENCY]))
|
||||||
else:
|
else:
|
||||||
var = cg.new_Pvariable(config[CONF_ID], pin)
|
var = cg.new_Pvariable(config[CONF_ID], pin)
|
||||||
|
|
||||||
|
@@ -64,6 +64,8 @@ class RemoteReceiverComponent : public remote_base::RemoteReceiverBase,
|
|||||||
void set_filter_symbols(uint32_t filter_symbols) { this->filter_symbols_ = filter_symbols; }
|
void set_filter_symbols(uint32_t filter_symbols) { this->filter_symbols_ = filter_symbols; }
|
||||||
void set_receive_symbols(uint32_t receive_symbols) { this->receive_symbols_ = receive_symbols; }
|
void set_receive_symbols(uint32_t receive_symbols) { this->receive_symbols_ = receive_symbols; }
|
||||||
void set_with_dma(bool with_dma) { this->with_dma_ = with_dma; }
|
void set_with_dma(bool with_dma) { this->with_dma_ = with_dma; }
|
||||||
|
void set_carrier_duty_percent(uint8_t carrier_duty_percent) { this->carrier_duty_percent_ = carrier_duty_percent; }
|
||||||
|
void set_carrier_frequency(uint32_t carrier_frequency) { this->carrier_frequency_ = carrier_frequency; }
|
||||||
#endif
|
#endif
|
||||||
void set_buffer_size(uint32_t buffer_size) { this->buffer_size_ = buffer_size; }
|
void set_buffer_size(uint32_t buffer_size) { this->buffer_size_ = buffer_size; }
|
||||||
void set_filter_us(uint32_t filter_us) { this->filter_us_ = filter_us; }
|
void set_filter_us(uint32_t filter_us) { this->filter_us_ = filter_us; }
|
||||||
@@ -76,6 +78,8 @@ class RemoteReceiverComponent : public remote_base::RemoteReceiverBase,
|
|||||||
uint32_t filter_symbols_{0};
|
uint32_t filter_symbols_{0};
|
||||||
uint32_t receive_symbols_{0};
|
uint32_t receive_symbols_{0};
|
||||||
bool with_dma_{false};
|
bool with_dma_{false};
|
||||||
|
uint32_t carrier_frequency_{0};
|
||||||
|
uint8_t carrier_duty_percent_{100};
|
||||||
esp_err_t error_code_{ESP_OK};
|
esp_err_t error_code_{ESP_OK};
|
||||||
std::string error_string_{""};
|
std::string error_string_{""};
|
||||||
#endif
|
#endif
|
||||||
|
@@ -72,6 +72,21 @@ void RemoteReceiverComponent::setup() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->carrier_frequency_ > 0 && 0 < this->carrier_duty_percent_ && this->carrier_duty_percent_ < 100) {
|
||||||
|
rmt_carrier_config_t carrier;
|
||||||
|
memset(&carrier, 0, sizeof(carrier));
|
||||||
|
carrier.frequency_hz = this->carrier_frequency_;
|
||||||
|
carrier.duty_cycle = (float) this->carrier_duty_percent_ / 100.0f;
|
||||||
|
carrier.flags.polarity_active_low = this->pin_->is_inverted();
|
||||||
|
error = rmt_apply_carrier(this->channel_, &carrier);
|
||||||
|
if (error != ESP_OK) {
|
||||||
|
this->error_code_ = error;
|
||||||
|
this->error_string_ = "in rmt_apply_carrier";
|
||||||
|
this->mark_failed();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
rmt_rx_event_callbacks_t callbacks;
|
rmt_rx_event_callbacks_t callbacks;
|
||||||
memset(&callbacks, 0, sizeof(callbacks));
|
memset(&callbacks, 0, sizeof(callbacks));
|
||||||
callbacks.on_recv_done = rmt_callback;
|
callbacks.on_recv_done = rmt_callback;
|
||||||
@@ -111,11 +126,13 @@ void RemoteReceiverComponent::dump_config() {
|
|||||||
" Filter symbols: %" PRIu32 "\n"
|
" Filter symbols: %" PRIu32 "\n"
|
||||||
" Receive symbols: %" PRIu32 "\n"
|
" Receive symbols: %" PRIu32 "\n"
|
||||||
" Tolerance: %" PRIu32 "%s\n"
|
" Tolerance: %" PRIu32 "%s\n"
|
||||||
|
" Carrier frequency: %" PRIu32 " hz\n"
|
||||||
|
" Carrier duty: %u%%\n"
|
||||||
" Filter out pulses shorter than: %" PRIu32 " us\n"
|
" Filter out pulses shorter than: %" PRIu32 " us\n"
|
||||||
" Signal is done after %" PRIu32 " us of no changes",
|
" Signal is done after %" PRIu32 " us of no changes",
|
||||||
this->clock_resolution_, this->rmt_symbols_, this->filter_symbols_, this->receive_symbols_,
|
this->clock_resolution_, this->rmt_symbols_, this->filter_symbols_, this->receive_symbols_,
|
||||||
this->tolerance_, (this->tolerance_mode_ == remote_base::TOLERANCE_MODE_TIME) ? " us" : "%",
|
this->tolerance_, (this->tolerance_mode_ == remote_base::TOLERANCE_MODE_TIME) ? " us" : "%",
|
||||||
this->filter_us_, this->idle_us_);
|
this->carrier_frequency_, this->carrier_duty_percent_, this->filter_us_, this->idle_us_);
|
||||||
if (this->is_failed()) {
|
if (this->is_failed()) {
|
||||||
ESP_LOGE(TAG, "Configuring RMT driver failed: %s (%s)", esp_err_to_name(this->error_code_),
|
ESP_LOGE(TAG, "Configuring RMT driver failed: %s (%s)", esp_err_to_name(this->error_code_),
|
||||||
this->error_string_.c_str());
|
this->error_string_.c_str());
|
||||||
|
@@ -215,7 +215,7 @@ void Rtttl::loop() {
|
|||||||
sample[x].right = 0;
|
sample[x].right = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (x >= SAMPLE_BUFFER_SIZE || this->samples_sent_ >= this->samples_count_) {
|
if (static_cast<size_t>(x) >= SAMPLE_BUFFER_SIZE || this->samples_sent_ >= this->samples_count_) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
this->samples_sent_++;
|
this->samples_sent_++;
|
||||||
|
@@ -251,7 +251,7 @@ void Tormatic::stop_at_target_() {
|
|||||||
// Read a GateStatus from the unit. The unit only sends messages in response to
|
// Read a GateStatus from the unit. The unit only sends messages in response to
|
||||||
// status requests or commands, so a message needs to be sent first.
|
// status requests or commands, so a message needs to be sent first.
|
||||||
optional<GateStatus> Tormatic::read_gate_status_() {
|
optional<GateStatus> Tormatic::read_gate_status_() {
|
||||||
if (this->available() < sizeof(MessageHeader)) {
|
if (this->available() < static_cast<int>(sizeof(MessageHeader))) {
|
||||||
return {};
|
return {};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -58,7 +58,7 @@ void UponorSmatrixClimate::control(const climate::ClimateCall &call) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void UponorSmatrixClimate::on_device_data(const UponorSmatrixData *data, size_t data_len) {
|
void UponorSmatrixClimate::on_device_data(const UponorSmatrixData *data, size_t data_len) {
|
||||||
for (int i = 0; i < data_len; i++) {
|
for (size_t i = 0; i < data_len; i++) {
|
||||||
switch (data[i].id) {
|
switch (data[i].id) {
|
||||||
case UPONOR_ID_TARGET_TEMP_MIN:
|
case UPONOR_ID_TARGET_TEMP_MIN:
|
||||||
this->min_temperature_ = raw_to_celsius(data[i].value);
|
this->min_temperature_ = raw_to_celsius(data[i].value);
|
||||||
|
@@ -18,7 +18,7 @@ void UponorSmatrixSensor::dump_config() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void UponorSmatrixSensor::on_device_data(const UponorSmatrixData *data, size_t data_len) {
|
void UponorSmatrixSensor::on_device_data(const UponorSmatrixData *data, size_t data_len) {
|
||||||
for (int i = 0; i < data_len; i++) {
|
for (size_t i = 0; i < data_len; i++) {
|
||||||
switch (data[i].id) {
|
switch (data[i].id) {
|
||||||
case UPONOR_ID_ROOM_TEMP:
|
case UPONOR_ID_ROOM_TEMP:
|
||||||
if (this->temperature_sensor_ != nullptr)
|
if (this->temperature_sensor_ != nullptr)
|
||||||
|
@@ -122,7 +122,7 @@ bool UponorSmatrixComponent::parse_byte_(uint8_t byte) {
|
|||||||
|
|
||||||
// Decode packet payload data for easy access
|
// Decode packet payload data for easy access
|
||||||
UponorSmatrixData data[data_len];
|
UponorSmatrixData data[data_len];
|
||||||
for (int i = 0; i < data_len; i++) {
|
for (size_t i = 0; i < data_len; i++) {
|
||||||
data[i].id = packet[(i * 3) + 4];
|
data[i].id = packet[(i * 3) + 4];
|
||||||
data[i].value = encode_uint16(packet[(i * 3) + 5], packet[(i * 3) + 6]);
|
data[i].value = encode_uint16(packet[(i * 3) + 5], packet[(i * 3) + 6]);
|
||||||
}
|
}
|
||||||
@@ -135,7 +135,7 @@ bool UponorSmatrixComponent::parse_byte_(uint8_t byte) {
|
|||||||
// thermostat sending both room temperature and time information.
|
// thermostat sending both room temperature and time information.
|
||||||
bool found_temperature = false;
|
bool found_temperature = false;
|
||||||
bool found_time = false;
|
bool found_time = false;
|
||||||
for (int i = 0; i < data_len; i++) {
|
for (size_t i = 0; i < data_len; i++) {
|
||||||
if (data[i].id == UPONOR_ID_ROOM_TEMP)
|
if (data[i].id == UPONOR_ID_ROOM_TEMP)
|
||||||
found_temperature = true;
|
found_temperature = true;
|
||||||
if (data[i].id == UPONOR_ID_DATETIME1)
|
if (data[i].id == UPONOR_ID_DATETIME1)
|
||||||
@@ -181,7 +181,7 @@ bool UponorSmatrixComponent::send(uint16_t device_address, const UponorSmatrixDa
|
|||||||
packet.push_back(device_address >> 8);
|
packet.push_back(device_address >> 8);
|
||||||
packet.push_back(device_address >> 0);
|
packet.push_back(device_address >> 0);
|
||||||
|
|
||||||
for (int i = 0; i < data_len; i++) {
|
for (size_t i = 0; i < data_len; i++) {
|
||||||
packet.push_back(data[i].id);
|
packet.push_back(data[i].id);
|
||||||
packet.push_back(data[i].value >> 8);
|
packet.push_back(data[i].value >> 8);
|
||||||
packet.push_back(data[i].value >> 0);
|
packet.push_back(data[i].value >> 0);
|
||||||
|
@@ -1,6 +1,7 @@
|
|||||||
#include "veml7700.h"
|
#include "veml7700.h"
|
||||||
#include "esphome/core/application.h"
|
#include "esphome/core/application.h"
|
||||||
#include "esphome/core/log.h"
|
#include "esphome/core/log.h"
|
||||||
|
#include <limits>
|
||||||
|
|
||||||
namespace esphome {
|
namespace esphome {
|
||||||
namespace veml7700 {
|
namespace veml7700 {
|
||||||
@@ -12,30 +13,30 @@ static float reduce_to_zero(float a, float b) { return (a > b) ? (a - b) : 0; }
|
|||||||
|
|
||||||
template<typename T, size_t size> T get_next(const T (&array)[size], const T val) {
|
template<typename T, size_t size> T get_next(const T (&array)[size], const T val) {
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
size_t idx = -1;
|
size_t idx = std::numeric_limits<size_t>::max();
|
||||||
while (idx == -1 && i < size) {
|
while (idx == std::numeric_limits<size_t>::max() && i < size) {
|
||||||
if (array[i] == val) {
|
if (array[i] == val) {
|
||||||
idx = i;
|
idx = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
if (idx == -1 || i + 1 >= size)
|
if (idx == std::numeric_limits<size_t>::max() || i + 1 >= size)
|
||||||
return val;
|
return val;
|
||||||
return array[i + 1];
|
return array[i + 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
template<typename T, size_t size> T get_prev(const T (&array)[size], const T val) {
|
template<typename T, size_t size> T get_prev(const T (&array)[size], const T val) {
|
||||||
size_t i = size - 1;
|
size_t i = size - 1;
|
||||||
size_t idx = -1;
|
size_t idx = std::numeric_limits<size_t>::max();
|
||||||
while (idx == -1 && i > 0) {
|
while (idx == std::numeric_limits<size_t>::max() && i > 0) {
|
||||||
if (array[i] == val) {
|
if (array[i] == val) {
|
||||||
idx = i;
|
idx = i;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
i--;
|
i--;
|
||||||
}
|
}
|
||||||
if (idx == -1 || i == 0)
|
if (idx == std::numeric_limits<size_t>::max() || i == 0)
|
||||||
return val;
|
return val;
|
||||||
return array[i - 1];
|
return array[i - 1];
|
||||||
}
|
}
|
||||||
|
@@ -2274,11 +2274,11 @@ void GDEW0154M09::clear_() {
|
|||||||
uint32_t pixsize = this->get_buffer_length_();
|
uint32_t pixsize = this->get_buffer_length_();
|
||||||
for (uint8_t j = 0; j < 2; j++) {
|
for (uint8_t j = 0; j < 2; j++) {
|
||||||
this->command(CMD_DTM1_DATA_START_TRANS);
|
this->command(CMD_DTM1_DATA_START_TRANS);
|
||||||
for (int count = 0; count < pixsize; count++) {
|
for (uint32_t count = 0; count < pixsize; count++) {
|
||||||
this->data(0x00);
|
this->data(0x00);
|
||||||
}
|
}
|
||||||
this->command(CMD_DTM2_DATA_START_TRANS2);
|
this->command(CMD_DTM2_DATA_START_TRANS2);
|
||||||
for (int count = 0; count < pixsize; count++) {
|
for (uint32_t count = 0; count < pixsize; count++) {
|
||||||
this->data(0xff);
|
this->data(0xff);
|
||||||
}
|
}
|
||||||
this->command(CMD_DISPLAY_REFRESH);
|
this->command(CMD_DISPLAY_REFRESH);
|
||||||
@@ -2291,11 +2291,11 @@ void HOT GDEW0154M09::display() {
|
|||||||
this->init_internal_();
|
this->init_internal_();
|
||||||
// "Mode 0 display" for now
|
// "Mode 0 display" for now
|
||||||
this->command(CMD_DTM1_DATA_START_TRANS);
|
this->command(CMD_DTM1_DATA_START_TRANS);
|
||||||
for (int i = 0; i < this->get_buffer_length_(); i++) {
|
for (uint32_t i = 0; i < this->get_buffer_length_(); i++) {
|
||||||
this->data(0xff);
|
this->data(0xff);
|
||||||
}
|
}
|
||||||
this->command(CMD_DTM2_DATA_START_TRANS2); // write 'new' data to SRAM
|
this->command(CMD_DTM2_DATA_START_TRANS2); // write 'new' data to SRAM
|
||||||
for (int i = 0; i < this->get_buffer_length_(); i++) {
|
for (uint32_t i = 0; i < this->get_buffer_length_(); i++) {
|
||||||
this->data(this->buffer_[i]);
|
this->data(this->buffer_[i]);
|
||||||
}
|
}
|
||||||
this->command(CMD_DISPLAY_REFRESH);
|
this->command(CMD_DISPLAY_REFRESH);
|
||||||
|
@@ -13,7 +13,7 @@ esptool==5.1.0
|
|||||||
click==8.1.7
|
click==8.1.7
|
||||||
esphome-dashboard==20250904.0
|
esphome-dashboard==20250904.0
|
||||||
aioesphomeapi==41.11.0
|
aioesphomeapi==41.11.0
|
||||||
zeroconf==0.147.2
|
zeroconf==0.148.0
|
||||||
puremagic==1.30
|
puremagic==1.30
|
||||||
ruamel.yaml==0.18.15 # dashboard_import
|
ruamel.yaml==0.18.15 # dashboard_import
|
||||||
ruamel.yaml.clib==0.2.12 # dashboard_import
|
ruamel.yaml.clib==0.2.12 # dashboard_import
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
pylint==3.3.8
|
pylint==3.3.9
|
||||||
flake8==7.3.0 # also change in .pre-commit-config.yaml when updating
|
flake8==7.3.0 # also change in .pre-commit-config.yaml when updating
|
||||||
ruff==0.13.3 # also change in .pre-commit-config.yaml when updating
|
ruff==0.13.3 # also change in .pre-commit-config.yaml when updating
|
||||||
pyupgrade==3.20.0 # also change in .pre-commit-config.yaml when updating
|
pyupgrade==3.20.0 # also change in .pre-commit-config.yaml when updating
|
||||||
|
@@ -1,6 +1,8 @@
|
|||||||
substitutions:
|
substitutions:
|
||||||
pin: GPIO2
|
pin: GPIO2
|
||||||
clock_resolution: "2000000"
|
clock_resolution: "2000000"
|
||||||
|
carrier_duty_percent: "25"
|
||||||
|
carrier_frequency: "30000"
|
||||||
filter_symbols: "2"
|
filter_symbols: "2"
|
||||||
receive_symbols: "4"
|
receive_symbols: "4"
|
||||||
rmt_symbols: "64"
|
rmt_symbols: "64"
|
||||||
|
Reference in New Issue
Block a user