mirror of
https://github.com/esphome/esphome.git
synced 2025-01-19 20:34:06 +00:00
lost ip event trigger
This commit is contained in:
parent
71725ab4c4
commit
acd2a9bf54
@ -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:");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user