mirror of
				https://github.com/esphome/esphome.git
				synced 2025-10-30 22:53:59 +00:00 
			
		
		
		
	lost ip event trigger
This commit is contained in:
		| @@ -263,7 +263,7 @@ void ModemComponent::start_connect_() { | |||||||
|   this->status_set_warning("Starting connection"); |   this->status_set_warning("Starting connection"); | ||||||
|  |  | ||||||
|   // will be set to true on event IP_EVENT_PPP_GOT_IP |   // will be set to true on event IP_EVENT_PPP_GOT_IP | ||||||
|   global_modem_component->got_ipv4_address_ = false;  // FIXME this |   this->got_ipv4_address_ = false; | ||||||
|  |  | ||||||
|   if (this->cmux_) { |   if (this->cmux_) { | ||||||
|     ESP_LOGD(TAG, "Entering CMUX mode"); |     ESP_LOGD(TAG, "Entering CMUX mode"); | ||||||
| @@ -356,8 +356,6 @@ void ModemComponent::loop() { | |||||||
|               this->disable(); |               this->disable(); | ||||||
|             } |             } | ||||||
|           } else if (!this->get_power_status()) { |           } else if (!this->get_power_status()) { | ||||||
|             ESP_LOGI(TAG, |  | ||||||
|                      "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"); |  | ||||||
|             this->poweron_(); |             this->poweron_(); | ||||||
|           } else { |           } else { | ||||||
|             this->state_ = ModemComponentState::NOT_RESPONDING; |             this->state_ = ModemComponentState::NOT_RESPONDING; | ||||||
| @@ -414,18 +412,6 @@ void ModemComponent::loop() { | |||||||
|             ESP_LOGW(TAG, "Unable to hang up modem. Trying to continue anyway."); |             ESP_LOGW(TAG, "Unable to hang up modem. Trying to continue anyway."); | ||||||
|           } |           } | ||||||
|           this->dump_connect_params_(); |           this->dump_connect_params_(); | ||||||
|           // this->set_timeout("wait_lost_ip", 15000, [this]() { |  | ||||||
|           //   // often reached on 7600, but not reached on 7670 |  | ||||||
|           //   // FIXME: don't wait for lost IP (ip is lost for 7600 several minutes after) |  | ||||||
|           //   ESP_LOGW(TAG, "No lost ip event received. Forcing disconnect state"); |  | ||||||
|           //   // esp_netif_action_stop(this->ppp_netif_, nullptr, 0, nullptr); |  | ||||||
|           //   this->dump_connect_params_(); |  | ||||||
|           //   // esp_netif_action_disconnected(this->ppp_netif_, nullptr, 0, nullptr); |  | ||||||
|           //   // esp_netif_action_stop(this->ppp_netif_, nullptr, 0, nullptr); |  | ||||||
|           //   esp_event_post(IP_EVENT, IP_EVENT_PPP_LOST_IP, nullptr, 0, 0); |  | ||||||
|           //   // esp_netif_destroy(this->ppp_netif_); |  | ||||||
|           //   this->dump_connect_params_(); |  | ||||||
|           // }); |  | ||||||
|         } |         } | ||||||
|         this->start_ = false; |         this->start_ = false; | ||||||
|       } else if (!this->connected_) { |       } else if (!this->connected_) { | ||||||
| @@ -435,14 +421,14 @@ void ModemComponent::loop() { | |||||||
|         this->dump_connect_params_(); |         this->dump_connect_params_(); | ||||||
|         this->state_ = ModemComponentState::DISCONNECTED; |         this->state_ = ModemComponentState::DISCONNECTED; | ||||||
|       } else { |       } else { | ||||||
|  |         // Waiting for IP_EVENT_PPP_LOST_IP. | ||||||
|  |         // This can take a long time, so we ckeck the IP addr, and trigger the event manualy if it's null. | ||||||
|         esp_netif_ip_info_t ip_info; |         esp_netif_ip_info_t ip_info; | ||||||
|         esp_netif_get_ip_info(this->ppp_netif_, &ip_info); |         esp_netif_get_ip_info(this->ppp_netif_, &ip_info); | ||||||
|         if (ip_info.ip.addr == 0) { |         if (ip_info.ip.addr == 0) { | ||||||
|           // lost IP |           // lost IP | ||||||
|           esp_event_post(IP_EVENT, IP_EVENT_PPP_LOST_IP, nullptr, 0, 0); |           esp_event_post(IP_EVENT, IP_EVENT_PPP_LOST_IP, nullptr, 0, 0); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // waiting for lost IP |  | ||||||
|       } |       } | ||||||
|  |  | ||||||
|       break; |       break; | ||||||
| @@ -556,6 +542,10 @@ void ModemComponent::poweroff_() { | |||||||
| } | } | ||||||
|  |  | ||||||
| void ModemComponent::dump_connect_params_() { | void ModemComponent::dump_connect_params_() { | ||||||
|  |   if (!this->connected_) { | ||||||
|  |     ESP_LOGCONFIG(TAG, "Modem connection: Not connected"); | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|   esp_netif_ip_info_t ip; |   esp_netif_ip_info_t ip; | ||||||
|   esp_netif_get_ip_info(this->ppp_netif_, &ip); |   esp_netif_get_ip_info(this->ppp_netif_, &ip); | ||||||
|   ESP_LOGCONFIG(TAG, "Modem connection:"); |   ESP_LOGCONFIG(TAG, "Modem connection:"); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user