Ethernet 函式库
86Duino 内建 10/100Mbps 的网路介面,不需使用 Arduino Ethernet Shield 即可连接网际网路。 86Duino 的网路介面透过本章介绍的 Ethernet 函式库控制。
该 Ethernet 函式库可以实做以下两种功能,接收客户端连线要求以及送出连线请求给伺服端。在 86Duino Coding 101 中,该函式库最多同时支援 4 个连线(包含接收请求、送出请求及溷合以上两种);在之后的版本将把上限从 4 提高为 128。
Ethernet 类别
Ethernet 类别初始化 Ethernet 函式库和网路设定。
- begin()
- localIP()
- localMAC()
- maintain()
IPAddress 类别
IPAddress 类别用以操作本地和远端 IP 位址。
Server 类别
Server 类别用以创建伺服端与客户端连接,透过网路传送与接收资料。
- EthernetServer()
- begin()
- available()
- write()
- print()
- println()
Client 类别
Client 类别用以创建客户端与伺服端连接,透过网路传送与接收资讯。
- EthernetClient()
- if (EthernetClient)
- connected()
- connect()
- write()
- print()
- println()
- available()
- read()
- flush()
- stop()
EthernetUDP 类别
UDP 类别实作 UDP 协定建立连线,并传送与接收资料。
- begin()
- read()
- write()
- beginPacket()
- endPacket()
- parsePacket()
- available()
- stop()
- remoteIP()
- remotePort()
范例
以下 Ethernet 函式库的范例,是从 Arduino课程而来。可以在 86Duino 上运行。(注意:以下范例在86Duino上运行时不需要Arduino Ethernet Shield):
- ChatServer:创建简单的聊天伺服器。
- WebClient:製作 HTTP 请求。
- WebClientRepeating:重复製作 HTTP 请求。
- WebServer:在 HTML 网页上显示类比感测器的值。
- XivelyClient:连接到 Xively.com(免费的资料纪录网站)。
- XivelyClientString:传送字串到 Xively.com。
- BarometricPressureWebServer:在网页上显示气压感测器输出的值。
- UDPSendReceiveString:透过 UDP 传送和接收文字讯息。
- UdpNtpClient:透过 UDP 送出 NTP 请求。
- DnsWebClient:DNS 和 DHCP 为基础的 Web 的客户端。
- DhcpChatServer:简单的 DHCP 聊天伺服器。
- DhcpAddressPrinter:透过 DHCP 取得 IP 位址,并且印出 IP 位址。
- TelnetClient:简单的 Telnet 客户端。
Hack
我们使用 Software Systems 的 SwsSock 函式库实作 86Duino 的 Ethernet 函式库。如果想要在 86Duino 上直接使用 SwsSock,可以参考 SwsSock 的官网取得相关资讯。
The text of the 86Duino reference is a modification of the Arduino reference, and is licensed under a Creative Commons Attribution-ShareAlike 3.0 License. Code samples in the reference are released into the public domain.