mirror of
https://github.com/esphome/esphome.git
synced 2024-12-22 21:44:55 +01:00
parent
e15071228e
commit
78c1adafcd
4 changed files with 9 additions and 6 deletions
|
@ -77,16 +77,17 @@ void MHZ19Component::abc_disable() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool MHZ19Component::mhz19_write_command_(const uint8_t *command, uint8_t *response) {
|
bool MHZ19Component::mhz19_write_command_(const uint8_t *command, uint8_t *response) {
|
||||||
this->flush();
|
// Empty RX Buffer
|
||||||
|
while (this->available())
|
||||||
|
this->read();
|
||||||
this->write_array(command, MHZ19_REQUEST_LENGTH);
|
this->write_array(command, MHZ19_REQUEST_LENGTH);
|
||||||
this->write_byte(mhz19_checksum(command));
|
this->write_byte(mhz19_checksum(command));
|
||||||
|
this->flush();
|
||||||
|
|
||||||
if (response == nullptr)
|
if (response == nullptr)
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
bool ret = this->read_array(response, MHZ19_RESPONSE_LENGTH);
|
return this->read_array(response, MHZ19_RESPONSE_LENGTH);
|
||||||
this->flush();
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
float MHZ19Component::get_setup_priority() const { return setup_priority::DATA; }
|
float MHZ19Component::get_setup_priority() const { return setup_priority::DATA; }
|
||||||
void MHZ19Component::dump_config() {
|
void MHZ19Component::dump_config() {
|
||||||
|
|
|
@ -94,7 +94,6 @@ float SDS011Component::get_setup_priority() const { return setup_priority::DATA;
|
||||||
void SDS011Component::set_rx_mode_only(bool rx_mode_only) { this->rx_mode_only_ = rx_mode_only; }
|
void SDS011Component::set_rx_mode_only(bool rx_mode_only) { this->rx_mode_only_ = rx_mode_only; }
|
||||||
|
|
||||||
void SDS011Component::sds011_write_command_(const uint8_t *command_data) {
|
void SDS011Component::sds011_write_command_(const uint8_t *command_data) {
|
||||||
this->flush();
|
|
||||||
this->write_byte(SDS011_MSG_HEAD);
|
this->write_byte(SDS011_MSG_HEAD);
|
||||||
this->write_byte(SDS011_COMMAND_ID_REQUEST);
|
this->write_byte(SDS011_COMMAND_ID_REQUEST);
|
||||||
this->write_array(command_data, SDS011_DATA_REQUEST_LENGTH);
|
this->write_array(command_data, SDS011_DATA_REQUEST_LENGTH);
|
||||||
|
|
|
@ -316,7 +316,9 @@ uint8_t ESP8266SoftwareSerial::peek_byte() {
|
||||||
return 0;
|
return 0;
|
||||||
return this->rx_buffer_[this->rx_out_pos_];
|
return this->rx_buffer_[this->rx_out_pos_];
|
||||||
}
|
}
|
||||||
void ESP8266SoftwareSerial::flush() { this->rx_in_pos_ = this->rx_out_pos_ = 0; }
|
void ESP8266SoftwareSerial::flush() {
|
||||||
|
// Flush is a NO-OP with software serial, all bytes are written immediately.
|
||||||
|
}
|
||||||
int ESP8266SoftwareSerial::available() {
|
int ESP8266SoftwareSerial::available() {
|
||||||
int avail = int(this->rx_in_pos_) - int(this->rx_out_pos_);
|
int avail = int(this->rx_in_pos_) - int(this->rx_out_pos_);
|
||||||
if (avail < 0)
|
if (avail < 0)
|
||||||
|
|
|
@ -61,6 +61,7 @@ class UARTComponent : public Component, public Stream {
|
||||||
|
|
||||||
int available() override;
|
int available() override;
|
||||||
|
|
||||||
|
/// Block until all bytes have been written to the UART bus.
|
||||||
void flush() override;
|
void flush() override;
|
||||||
|
|
||||||
float get_setup_priority() const override { return setup_priority::BUS; }
|
float get_setup_priority() const override { return setup_priority::BUS; }
|
||||||
|
|
Loading…
Reference in a new issue