NetworkControllerApiWrapper Class
NuGet: GHIElectronics.TinyCLR.Devices.Network
Assembly: GHIElectronics.TinyCLR.Devices.Network
Namespace: GHIElectronics.TinyCLR.Devices.Network.Provider
Concrete INetworkControllerProvider backed by the native TinyCLR network HAL (lwIP + mbedTLS).
public sealed class NetworkControllerApiWrapper : INetworkControllerProvider
Constructors
NetworkControllerApiWrapper(NativeApi api)
public NetworkControllerApiWrapper(NativeApi api)
Creates a wrapper bound to the given native network API.
Properties
Api
public NativeApi Api { get; }
The native API this wrapper is bound to.
InterfaceType
public extern NetworkInterfaceType InterfaceType { get; }
Transport type of the interface — Ethernet, WiFi, or PPP. (inherited)
CommunicationInterface
public extern NetworkCommunicationInterface CommunicationInterface { get; }
Physical bus carrying the interface — built-in MAC, SPI, or UART. (inherited)
Methods
Dispose()
public void Dispose()
Releases the native network controller.
SetNetworkLinkConnectedChangedEventEnabled(bool enabled)
public extern void SetNetworkLinkConnectedChangedEventEnabled(bool enabled)
Enables or disables native delivery of link-connected-changed events.
SetNetworkAddressChangedEventEnabled(bool enabled)
public extern void SetNetworkAddressChangedEventEnabled(bool enabled)
Enables or disables native delivery of address-changed events.
Enable()
public extern void Enable()
Brings the interface up. (inherited)
EnableAsync()
public extern void EnableAsync()
Non-blocking variant of Enable that brings the interface up on a background native task.
Disable()
public extern void Disable()
Brings the interface down. (inherited)
Suspend()
public extern void Suspend()
Suspends the interface to a low-power state. (inherited)
Resume()
public extern void Resume()
Resumes a suspended interface. (inherited)
SetAsDefault()
public extern void SetAsDefault()
Promotes this controller's interface to lwIP's default route at the firmware level.
SetInterfaceSettings(NetworkInterfaceSettings settings)
public void SetInterfaceSettings(NetworkInterfaceSettings settings)
Applies the interface settings (IP address, DHCP, DNS). (inherited)
SetCommunicationInterfaceSettings(NetworkCommunicationInterfaceSettings settings)
public void SetCommunicationInterfaceSettings(NetworkCommunicationInterfaceSettings settings)
Applies the underlying physical-bus settings. (inherited)
GetLinkConnected()
public extern bool GetLinkConnected()
Returns true when the physical link is up.
Returns bool
GetIPProperties()
public extern NetworkIPProperties GetIPProperties()
Returns the current IP address, subnet, gateway, and DNS servers.
Returns NetworkIPProperties
GetInterfaceProperties()
public extern NetworkInterfaceProperties GetInterfaceProperties()
Returns interface-specific properties such as the MAC address.
Returns NetworkInterfaceProperties
Create(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
public extern int Create(AddressFamily addressFamily, SocketType socketType, ProtocolType protocolType)
Creates a native socket and returns its handle.
Returns int
Close(int socket)
public extern void Close(int socket)
Closes the given socket.
Bind(int socket, SocketAddress address)
public extern void Bind(int socket, SocketAddress address)
Binds the socket to a local address.
Listen(int socket, int backlog)
public extern void Listen(int socket, int backlog)
Places the socket into the listening state with the given backlog.
Accept(int socket)
public extern int Accept(int socket)
Accepts a pending connection and returns the new socket handle.
Returns int
Connect(int socket, SocketAddress address)
public extern void Connect(int socket, SocketAddress address)
Connects the socket to a remote address.
Available(int socket)
public extern int Available(int socket)
Returns the number of bytes available to read on the socket.
Returns int
Poll(int socket, int microSeconds, SelectMode mode)
public extern bool Poll(int socket, int microSeconds, SelectMode mode)
Polls the socket for the given mode within the timeout.
Returns bool
Send(int socket, byte[] buffer, int offset, int count, SocketFlags flags)
public extern int Send(int socket, byte[] buffer, int offset, int count, SocketFlags flags)
Sends data on a connected socket and returns the number of bytes sent.
Returns int
Receive(int socket, byte[] buffer, int offset, int count, SocketFlags flags)
public extern int Receive(int socket, byte[] buffer, int offset, int count, SocketFlags flags)
Receives data on a connected socket and returns the number of bytes read.
Returns int
SendTo(int socket, byte[] buffer, int offset, int count, SocketFlags flags, SocketAddress address)
public extern int SendTo(int socket, byte[] buffer, int offset, int count, SocketFlags flags, SocketAddress address)
Sends data to a specific address and returns the number of bytes sent.
Returns int
ReceiveFrom(int socket, byte[] buffer, int offset, int count, SocketFlags flags, ref SocketAddress address)
public extern int ReceiveFrom(int socket, byte[] buffer, int offset, int count, SocketFlags flags, ref SocketAddress address)
Receives data and reports the sender address; returns the number of bytes read.
Returns int
GetRemoteAddress(int socket, out SocketAddress address)
public extern void GetRemoteAddress(int socket, out SocketAddress address)
Gets the remote address of a connected socket.
GetLocalAddress(int socket, out SocketAddress address)
public extern void GetLocalAddress(int socket, out SocketAddress address)
Gets the local address bound to the socket.
GetOption(int socket, SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue)
public extern void GetOption(int socket, SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue)
Reads a socket option value.
SetOption(int socket, SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue)
public extern void SetOption(int socket, SocketOptionLevel optionLevel, SocketOptionName optionName, byte[] optionValue)
Writes a socket option value.
AuthenticateAsClient(int socketHandle, string targetHost, X509Certificate caCertificate, X509Certificate clientCertificate, SslProtocols sslProtocols, SslVerification sslVerification)
public extern int AuthenticateAsClient(int socketHandle, string targetHost, X509Certificate caCertificate, X509Certificate clientCertificate, SslProtocols sslProtocols, SslVerification sslVerification)
Performs a TLS client handshake on the socket and returns the secure handle.
Returns int
AuthenticateAsServer(int socketHandle, X509Certificate certificate, SslProtocols sslProtocols)
public extern int AuthenticateAsServer(int socketHandle, X509Certificate certificate, SslProtocols sslProtocols)
Performs a TLS server handshake on the socket and returns the secure handle.
Returns int
SecureRead(int handle, byte[] buffer, int offset, int count)
public extern int SecureRead(int handle, byte[] buffer, int offset, int count)
Reads decrypted data from a secured connection.
Returns int
SecureWrite(int handle, byte[] buffer, int offset, int count)
public extern int SecureWrite(int handle, byte[] buffer, int offset, int count)
Writes data to a secured connection, encrypting it.
Returns int
GetHostByName(string name, out string canonicalName, out SocketAddress[] addresses)
public extern void GetHostByName(string name, out string canonicalName, out SocketAddress[] addresses)
Resolves a host name to its canonical name and addresses via DNS.
GetAccessPointClientLinkConnect(WiFiNetworkInterfaceSettings settings)
public extern bool GetAccessPointClientLinkConnect(WiFiNetworkInterfaceSettings settings)
Returns true when a station is connected to this access point.
Returns bool
Shutdown(int socket, SocketShutdown how)
public extern void Shutdown(int socket, SocketShutdown how)
Half-closes the socket in the given direction (lwIP shutdown).
Events
NetworkLinkConnectedChanged
public event NetworkLinkConnectedChangedEventHandler NetworkLinkConnectedChanged
Raised when the physical link goes up or down. (inherited)
NetworkAddressChanged
public event NetworkAddressChangedEventHandler NetworkAddressChanged
Raised when the IP address, gateway, or DNS servers change. (inherited)