mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-31 07:03:55 +00:00 
			
		
		
		
	[sx127x] Fix shaping print in dump_config and preallocate packet (#9357)
This commit is contained in:
		| @@ -318,24 +318,23 @@ void SX127x::loop() { | |||||||
|       uint8_t addr = this->read_register_(REG_FIFO_RX_CURR_ADDR); |       uint8_t addr = this->read_register_(REG_FIFO_RX_CURR_ADDR); | ||||||
|       uint8_t rssi = this->read_register_(REG_PKT_RSSI_VALUE); |       uint8_t rssi = this->read_register_(REG_PKT_RSSI_VALUE); | ||||||
|       int8_t snr = (int8_t) this->read_register_(REG_PKT_SNR_VALUE); |       int8_t snr = (int8_t) this->read_register_(REG_PKT_SNR_VALUE); | ||||||
|       std::vector<uint8_t> packet(bytes); |       this->packet_.resize(bytes); | ||||||
|       this->write_register_(REG_FIFO_ADDR_PTR, addr); |       this->write_register_(REG_FIFO_ADDR_PTR, addr); | ||||||
|       this->read_fifo_(packet); |       this->read_fifo_(this->packet_); | ||||||
|       if (this->frequency_ > 700000000) { |       if (this->frequency_ > 700000000) { | ||||||
|         this->call_listeners_(packet, (float) rssi - RSSI_OFFSET_HF, (float) snr / 4); |         this->call_listeners_(this->packet_, (float) rssi - RSSI_OFFSET_HF, (float) snr / 4); | ||||||
|       } else { |       } else { | ||||||
|         this->call_listeners_(packet, (float) rssi - RSSI_OFFSET_LF, (float) snr / 4); |         this->call_listeners_(this->packet_, (float) rssi - RSSI_OFFSET_LF, (float) snr / 4); | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|   } else if (this->packet_mode_) { |   } else if (this->packet_mode_) { | ||||||
|     std::vector<uint8_t> packet; |  | ||||||
|     uint8_t payload_length = this->payload_length_; |     uint8_t payload_length = this->payload_length_; | ||||||
|     if (payload_length == 0) { |     if (payload_length == 0) { | ||||||
|       payload_length = this->read_register_(REG_FIFO); |       payload_length = this->read_register_(REG_FIFO); | ||||||
|     } |     } | ||||||
|     packet.resize(payload_length); |     this->packet_.resize(payload_length); | ||||||
|     this->read_fifo_(packet); |     this->read_fifo_(this->packet_); | ||||||
|     this->call_listeners_(packet, 0.0f, 0.0f); |     this->call_listeners_(this->packet_, 0.0f, 0.0f); | ||||||
|   } |   } | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -407,18 +406,6 @@ void SX127x::dump_config() { | |||||||
|   LOG_PIN("  CS Pin: ", this->cs_); |   LOG_PIN("  CS Pin: ", this->cs_); | ||||||
|   LOG_PIN("  RST Pin: ", this->rst_pin_); |   LOG_PIN("  RST Pin: ", this->rst_pin_); | ||||||
|   LOG_PIN("  DIO0 Pin: ", this->dio0_pin_); |   LOG_PIN("  DIO0 Pin: ", this->dio0_pin_); | ||||||
|   const char *shaping = "NONE"; |  | ||||||
|   if (this->shaping_ == CUTOFF_BR_X_2) { |  | ||||||
|     shaping = "CUTOFF_BR_X_2"; |  | ||||||
|   } else if (this->shaping_ == CUTOFF_BR_X_1) { |  | ||||||
|     shaping = "CUTOFF_BR_X_1"; |  | ||||||
|   } else if (this->shaping_ == GAUSSIAN_BT_0_3) { |  | ||||||
|     shaping = "GAUSSIAN_BT_0_3"; |  | ||||||
|   } else if (this->shaping_ == GAUSSIAN_BT_0_5) { |  | ||||||
|     shaping = "GAUSSIAN_BT_0_5"; |  | ||||||
|   } else if (this->shaping_ == GAUSSIAN_BT_1_0) { |  | ||||||
|     shaping = "GAUSSIAN_BT_1_0"; |  | ||||||
|   } |  | ||||||
|   const char *pa_pin = "RFO"; |   const char *pa_pin = "RFO"; | ||||||
|   if (this->pa_pin_ == PA_PIN_BOOST) { |   if (this->pa_pin_ == PA_PIN_BOOST) { | ||||||
|     pa_pin = "BOOST"; |     pa_pin = "BOOST"; | ||||||
| @@ -429,10 +416,9 @@ void SX127x::dump_config() { | |||||||
|                 "  Bandwidth: %" PRIu32 " Hz\n" |                 "  Bandwidth: %" PRIu32 " Hz\n" | ||||||
|                 "  PA Pin: %s\n" |                 "  PA Pin: %s\n" | ||||||
|                 "  PA Power: %" PRIu8 " dBm\n" |                 "  PA Power: %" PRIu8 " dBm\n" | ||||||
|                 "  PA Ramp: %" PRIu16 " us\n" |                 "  PA Ramp: %" PRIu16 " us", | ||||||
|                 "  Shaping: %s", |  | ||||||
|                 TRUEFALSE(this->auto_cal_), this->frequency_, BW_HZ[this->bandwidth_], pa_pin, this->pa_power_, |                 TRUEFALSE(this->auto_cal_), this->frequency_, BW_HZ[this->bandwidth_], pa_pin, this->pa_power_, | ||||||
|                 RAMP[this->pa_ramp_], shaping); |                 RAMP[this->pa_ramp_]); | ||||||
|   if (this->modulation_ == MOD_FSK) { |   if (this->modulation_ == MOD_FSK) { | ||||||
|     ESP_LOGCONFIG(TAG, "  Deviation: %" PRIu32 " Hz", this->deviation_); |     ESP_LOGCONFIG(TAG, "  Deviation: %" PRIu32 " Hz", this->deviation_); | ||||||
|   } |   } | ||||||
| @@ -459,14 +445,31 @@ void SX127x::dump_config() { | |||||||
|       ESP_LOGCONFIG(TAG, "  Sync Value: 0x%02x", this->sync_value_[0]); |       ESP_LOGCONFIG(TAG, "  Sync Value: 0x%02x", this->sync_value_[0]); | ||||||
|     } |     } | ||||||
|   } else { |   } else { | ||||||
|  |     const char *shaping = "NONE"; | ||||||
|  |     if (this->modulation_ == MOD_FSK) { | ||||||
|  |       if (this->shaping_ == GAUSSIAN_BT_0_3) { | ||||||
|  |         shaping = "GAUSSIAN_BT_0_3"; | ||||||
|  |       } else if (this->shaping_ == GAUSSIAN_BT_0_5) { | ||||||
|  |         shaping = "GAUSSIAN_BT_0_5"; | ||||||
|  |       } else if (this->shaping_ == GAUSSIAN_BT_1_0) { | ||||||
|  |         shaping = "GAUSSIAN_BT_1_0"; | ||||||
|  |       } | ||||||
|  |     } else { | ||||||
|  |       if (this->shaping_ == CUTOFF_BR_X_2) { | ||||||
|  |         shaping = "CUTOFF_BR_X_2"; | ||||||
|  |       } else if (this->shaping_ == CUTOFF_BR_X_1) { | ||||||
|  |         shaping = "CUTOFF_BR_X_1"; | ||||||
|  |       } | ||||||
|  |     } | ||||||
|     ESP_LOGCONFIG(TAG, |     ESP_LOGCONFIG(TAG, | ||||||
|  |                   "  Shaping: %s\n" | ||||||
|                   "  Modulation: %s\n" |                   "  Modulation: %s\n" | ||||||
|                   "  Bitrate: %" PRIu32 "b/s\n" |                   "  Bitrate: %" PRIu32 "b/s\n" | ||||||
|                   "  Bitsync: %s\n" |                   "  Bitsync: %s\n" | ||||||
|                   "  Rx Start: %s\n" |                   "  Rx Start: %s\n" | ||||||
|                   "  Rx Floor: %.1f dBm\n" |                   "  Rx Floor: %.1f dBm\n" | ||||||
|                   "  Packet Mode: %s", |                   "  Packet Mode: %s", | ||||||
|                   this->modulation_ == MOD_FSK ? "FSK" : "OOK", this->bitrate_, TRUEFALSE(this->bitsync_), |                   shaping, this->modulation_ == MOD_FSK ? "FSK" : "OOK", this->bitrate_, TRUEFALSE(this->bitsync_), | ||||||
|                   TRUEFALSE(this->rx_start_), this->rx_floor_, TRUEFALSE(this->packet_mode_)); |                   TRUEFALSE(this->rx_start_), this->rx_floor_, TRUEFALSE(this->packet_mode_)); | ||||||
|     if (this->packet_mode_) { |     if (this->packet_mode_) { | ||||||
|       ESP_LOGCONFIG(TAG, "  CRC Enable: %s", TRUEFALSE(this->crc_enable_)); |       ESP_LOGCONFIG(TAG, "  CRC Enable: %s", TRUEFALSE(this->crc_enable_)); | ||||||
|   | |||||||
| @@ -96,6 +96,7 @@ class SX127x : public Component, | |||||||
|   uint8_t read_register_(uint8_t reg); |   uint8_t read_register_(uint8_t reg); | ||||||
|   Trigger<std::vector<uint8_t>, float, float> *packet_trigger_{new Trigger<std::vector<uint8_t>, float, float>()}; |   Trigger<std::vector<uint8_t>, float, float> *packet_trigger_{new Trigger<std::vector<uint8_t>, float, float>()}; | ||||||
|   std::vector<SX127xListener *> listeners_; |   std::vector<SX127xListener *> listeners_; | ||||||
|  |   std::vector<uint8_t> packet_; | ||||||
|   std::vector<uint8_t> sync_value_; |   std::vector<uint8_t> sync_value_; | ||||||
|   InternalGPIOPin *dio0_pin_{nullptr}; |   InternalGPIOPin *dio0_pin_{nullptr}; | ||||||
|   InternalGPIOPin *rst_pin_{nullptr}; |   InternalGPIOPin *rst_pin_{nullptr}; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user