Enable static IP via ethernet (#924)
This commit is contained in:
parent
cfbb7300b7
commit
70d0d46487
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
ETH.h - espre ETH PHY support.
|
ETH.h - espre ETH PHY support.
|
||||||
Based on WiFi.h from Ardiono WiFi shield library.
|
Based on WiFi.h from Arduino WiFi shield library.
|
||||||
Copyright (c) 2011-2014 Arduino. All right reserved.
|
Copyright (c) 2011-2014 Arduino. All right reserved.
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
This library is free software; you can redistribute it and/or
|
||||||
@ -110,26 +110,43 @@ bool ETHClass::begin(uint8_t phy_addr, int power, int mdc, int mdio, eth_phy_typ
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
bool ETHClass::config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1, IPAddress dns2)
|
bool ETHClass::config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1, IPAddress dns2)
|
||||||
{
|
{
|
||||||
if(!initialized){
|
esp_err_t err = ESP_OK;
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
tcpip_adapter_ip_info_t info;
|
tcpip_adapter_ip_info_t info;
|
||||||
|
|
||||||
|
if(local_ip != (uint32_t)0x00000000){
|
||||||
info.ip.addr = static_cast<uint32_t>(local_ip);
|
info.ip.addr = static_cast<uint32_t>(local_ip);
|
||||||
info.gw.addr = static_cast<uint32_t>(gateway);
|
info.gw.addr = static_cast<uint32_t>(gateway);
|
||||||
info.netmask.addr = static_cast<uint32_t>(subnet);
|
info.netmask.addr = static_cast<uint32_t>(subnet);
|
||||||
|
|
||||||
if(!staticIP){
|
|
||||||
tcpip_adapter_dhcpc_stop(TCPIP_ADAPTER_IF_ETH);
|
|
||||||
}
|
|
||||||
if(tcpip_adapter_set_ip_info(TCPIP_ADAPTER_IF_ETH, &info) == ESP_OK) {
|
|
||||||
staticIP = true;
|
|
||||||
} else {
|
} else {
|
||||||
|
info.ip.addr = 0;
|
||||||
|
info.gw.addr = 0;
|
||||||
|
info.netmask.addr = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
err = tcpip_adapter_dhcpc_stop(TCPIP_ADAPTER_IF_ETH);
|
||||||
|
if(err != ESP_OK && err != ESP_ERR_TCPIP_ADAPTER_DHCP_ALREADY_STOPPED){
|
||||||
|
log_e("DHCP could not be stopped! Error: %d", err);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
err = tcpip_adapter_set_ip_info(TCPIP_ADAPTER_IF_ETH, &info);
|
||||||
|
if(err != ERR_OK){
|
||||||
|
log_e("STA IP could not be configured! Error: %d", err);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(info.ip.addr){
|
||||||
|
staticIP = true;
|
||||||
|
} else {
|
||||||
|
err = tcpip_adapter_dhcpc_start(TCPIP_ADAPTER_IF_ETH);
|
||||||
|
if(err != ESP_OK && err != ESP_ERR_TCPIP_ADAPTER_DHCP_ALREADY_STARTED){
|
||||||
|
log_w("DHCP could not be started! Error: %d", err);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
staticIP = false;
|
||||||
|
}
|
||||||
|
|
||||||
ip_addr_t d;
|
ip_addr_t d;
|
||||||
d.type = IPADDR_TYPE_V4;
|
d.type = IPADDR_TYPE_V4;
|
||||||
|
|
||||||
@ -147,7 +164,6 @@ bool ETHClass::config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, I
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
*/
|
|
||||||
|
|
||||||
IPAddress ETHClass::localIP()
|
IPAddress ETHClass::localIP()
|
||||||
{
|
{
|
||||||
|
@ -62,8 +62,7 @@ class ETHClass {
|
|||||||
|
|
||||||
bool begin(uint8_t phy_addr=ETH_PHY_ADDR, int power=ETH_PHY_POWER, int mdc=ETH_PHY_MDC, int mdio=ETH_PHY_MDIO, eth_phy_type_t type=ETH_PHY_TYPE, eth_clock_mode_t clk_mode=ETH_CLK_MODE);
|
bool begin(uint8_t phy_addr=ETH_PHY_ADDR, int power=ETH_PHY_POWER, int mdc=ETH_PHY_MDC, int mdio=ETH_PHY_MDIO, eth_phy_type_t type=ETH_PHY_TYPE, eth_clock_mode_t clk_mode=ETH_CLK_MODE);
|
||||||
|
|
||||||
// NOT WORKING YET!
|
bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000);
|
||||||
//bool config(IPAddress local_ip, IPAddress gateway, IPAddress subnet, IPAddress dns1 = (uint32_t)0x00000000, IPAddress dns2 = (uint32_t)0x00000000);
|
|
||||||
|
|
||||||
const char * getHostname();
|
const char * getHostname();
|
||||||
bool setHostname(const char * hostname);
|
bool setHostname(const char * hostname);
|
||||||
|
Loading…
Reference in New Issue
Block a user