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.
Dependencies: nRF51_Vdd TextLCD BME280
EMAC Class Reference
This interface should be used to abstract low level access to networking hardware All operations receive a `void *` hw pointer which an emac device provides when it is registered with a stack. More...
#include <EMAC.h>
Public Types | |
typedef mbed::Callback< void(emac_mem_buf_t *buf) | emac_link_input_cb_t ) |
Callback to be register with Emac interface and to be called for received packets. | |
typedef mbed::Callback< void(bool up)> | emac_link_state_change_cb_t |
Callback to be register with Emac interface and to be called for link status changes. | |
Public Member Functions | |
virtual uint32_t | get_mtu_size () const =0 |
Return maximum transmission unit. | |
virtual uint32_t | get_align_preference () const =0 |
Gets memory buffer alignment preference. | |
virtual void | get_ifname (char *name, uint8_t size) const =0 |
Return interface name. | |
virtual uint8_t | get_hwaddr_size () const =0 |
Returns size of the underlying interface HW address size. | |
virtual bool | get_hwaddr (uint8_t *addr) const =0 |
Return interface-supplied HW address. | |
virtual void | set_hwaddr (const uint8_t *addr)=0 |
Set HW address for interface. | |
virtual bool | link_out (emac_mem_buf_t *buf)=0 |
Sends the packet over the link. | |
virtual bool | power_up ()=0 |
Initializes the HW. | |
virtual void | power_down ()=0 |
Deinitializes the HW. | |
virtual void | set_link_input_cb (emac_link_input_cb_t input_cb)=0 |
Sets a callback that needs to be called for packets received for that interface. | |
virtual void | set_link_state_cb (emac_link_state_change_cb_t state_cb)=0 |
Sets a callback that needs to be called on link status changes for given interface. | |
virtual void | add_multicast_group (const uint8_t *address)=0 |
Add device to a multicast group. | |
virtual void | remove_multicast_group (const uint8_t *address)=0 |
Remove device from a multicast group. | |
virtual void | set_all_multicast (bool all)=0 |
Request reception of all multicast packets. | |
virtual void | set_memory_manager (EMACMemoryManager &mem_mngr)=0 |
Sets memory manager that is used to handle memory buffers. | |
Static Public Member Functions | |
static EMAC & | get_default_instance () |
Return the default on-board EMAC. |
Detailed Description
This interface should be used to abstract low level access to networking hardware All operations receive a `void *` hw pointer which an emac device provides when it is registered with a stack.
Definition at line 32 of file EMAC.h.
Member Typedef Documentation
typedef mbed::Callback<void (emac_mem_buf_t *buf) emac_link_input_cb_t) |
typedef mbed::Callback<void (bool up)> emac_link_state_change_cb_t |
Member Function Documentation
virtual void add_multicast_group | ( | const uint8_t * | address ) | [pure virtual] |
Add device to a multicast group.
- Parameters:
-
address A multicast group hardware address
virtual uint32_t get_align_preference | ( | ) | const [pure virtual] |
Gets memory buffer alignment preference.
Gets preferred memory buffer alignment of the Emac device. IP stack may or may not align link out memory buffer chains using the alignment.
- Returns:
- Memory alignment requirement in bytes
static EMAC& get_default_instance | ( | ) | [static] |
virtual bool get_hwaddr | ( | uint8_t * | addr ) | const [pure virtual] |
Return interface-supplied HW address.
Copies HW address to provided memory,
- Parameters:
-
addr has to be of correct size see get_hwaddr_size
HW address need not be provided if this interface does not have its own HW address configuration; stack will choose address from central system configuration if the function returns false and does not write to addr.
- Parameters:
-
addr HW address for underlying interface
- Returns:
- true if HW address is available
virtual uint8_t get_hwaddr_size | ( | ) | const [pure virtual] |
Returns size of the underlying interface HW address size.
- Returns:
- HW address size in bytes
virtual void get_ifname | ( | char * | name, |
uint8_t | size | ||
) | const [pure virtual] |
Return interface name.
- Parameters:
-
name Pointer to where the name should be written size Maximum number of character to copy
virtual uint32_t get_mtu_size | ( | ) | const [pure virtual] |
Return maximum transmission unit.
- Returns:
- MTU in bytes
virtual bool link_out | ( | emac_mem_buf_t * | buf ) | [pure virtual] |
Sends the packet over the link.
That can not be called from an interrupt context.
- Parameters:
-
buf Packet to be send
- Returns:
- True if the packet was send successfully, False otherwise
virtual void power_down | ( | ) | [pure virtual] |
Deinitializes the HW.
virtual bool power_up | ( | ) | [pure virtual] |
Initializes the HW.
- Returns:
- True on success, False in case of an error.
virtual void remove_multicast_group | ( | const uint8_t * | address ) | [pure virtual] |
Remove device from a multicast group.
- Parameters:
-
address A multicast group hardware address
virtual void set_all_multicast | ( | bool | all ) | [pure virtual] |
Request reception of all multicast packets.
- Parameters:
-
all True to receive all multicasts False to receive only multicasts addressed to specified groups
virtual void set_hwaddr | ( | const uint8_t * | addr ) | [pure virtual] |
Set HW address for interface.
Provided address has to be of correct size, see get_hwaddr_size
Called to set the MAC address to actually use - if get_hwaddr is provided the stack would normally use that, but it could be overridden, eg for test purposes.
- Parameters:
-
addr Address to be set
virtual void set_link_input_cb | ( | emac_link_input_cb_t | input_cb ) | [pure virtual] |
Sets a callback that needs to be called for packets received for that interface.
- Parameters:
-
input_cb Function to be register as a callback
virtual void set_link_state_cb | ( | emac_link_state_change_cb_t | state_cb ) | [pure virtual] |
Sets a callback that needs to be called on link status changes for given interface.
- Parameters:
-
state_cb Function to be register as a callback
virtual void set_memory_manager | ( | EMACMemoryManager & | mem_mngr ) | [pure virtual] |
Sets memory manager that is used to handle memory buffers.
- Parameters:
-
mem_mngr Pointer to memory manager
Generated on Tue Jul 12 2022 15:16:13 by
