Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
EthernetInterface.cpp
00001 /* LWIP implementation of NetworkInterfaceAPI 00002 * Copyright (c) 2015 ARM Limited 00003 * 00004 * Licensed under the Apache License, Version 2.0 (the "License"); 00005 * you may not use this file except in compliance with the License. 00006 * You may obtain a copy of the License at 00007 * 00008 * http://www.apache.org/licenses/LICENSE-2.0 00009 * 00010 * Unless required by applicable law or agreed to in writing, software 00011 * distributed under the License is distributed on an "AS IS" BASIS, 00012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00013 * See the License for the specific language governing permissions and 00014 * limitations under the License. 00015 */ 00016 00017 #include "EthernetInterface.h" 00018 #include "lwip_stack.h" 00019 00020 00021 /* Interface implementation */ 00022 EthernetInterface::EthernetInterface() 00023 : _dhcp(true), _ip_address(), _netmask(), _gateway() 00024 { 00025 } 00026 00027 int EthernetInterface::set_network(const char *ip_address, const char *netmask, const char *gateway) 00028 { 00029 _dhcp = false; 00030 strncpy(_ip_address, ip_address ? ip_address : "", sizeof(_ip_address)); 00031 strncpy(_netmask, netmask ? netmask : "", sizeof(_netmask)); 00032 strncpy(_gateway, gateway ? gateway : "", sizeof(_gateway)); 00033 return 0; 00034 } 00035 00036 int EthernetInterface::set_dhcp(bool dhcp) 00037 { 00038 _dhcp = dhcp; 00039 return 0; 00040 } 00041 00042 int EthernetInterface::connect() 00043 { 00044 return mbed_lwip_bringup(_dhcp, 00045 _ip_address[0] ? _ip_address : 0, 00046 _netmask[0] ? _netmask : 0, 00047 _gateway[0] ? _gateway : 0); 00048 } 00049 00050 int EthernetInterface::disconnect() 00051 { 00052 return mbed_lwip_bringdown(); 00053 } 00054 00055 const char *EthernetInterface::get_mac_address() 00056 { 00057 return mbed_lwip_get_mac_address(); 00058 } 00059 00060 const char *EthernetInterface::get_ip_address() 00061 { 00062 if (mbed_lwip_get_ip_address(_ip_address, sizeof _ip_address)) { 00063 return _ip_address; 00064 } 00065 00066 return 0; 00067 } 00068 00069 const char *EthernetInterface::get_netmask() 00070 { 00071 if (mbed_lwip_get_netmask(_netmask, sizeof _netmask)) { 00072 return _netmask; 00073 } 00074 00075 return 0; 00076 } 00077 00078 const char *EthernetInterface::get_gateway() 00079 { 00080 if (mbed_lwip_get_gateway(_gateway, sizeof _gateway)) { 00081 return _gateway; 00082 } 00083 00084 return 0; 00085 } 00086 00087 NetworkStack *EthernetInterface::get_stack() 00088 { 00089 return nsapi_create_stack(&lwip_stack); 00090 }
Generated on Tue Jul 12 2022 18:19:29 by
