用户工具

站点工具


reference:library:ethercard

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录前一修订版
reference:library:ethercard [2017/10/05 00:13] 弘毅reference:library:ethercard [2023/06/07 04:24] (当前版本) – 外部编辑 127.0.0.1
行 1: 行 1:
 +====== EtherCard ======
 +EtherCard是一个ENC28J60的驱动库,支持OCROBOT产品系列中的Atmel MEGA328、1284P、128RFA1,LGT 8F328D核心。
  
 +该库的原来是https://github.com/jcw/ethercard,作者是Guido Socher与Pascal Stang。遵循GPL2协议。
 +
 +===== ENC28J60 类 参考手册 =====
 +==== 公共静态成员函数 ====
 +  * [[reference:library:EtherCard:tcpoffset|tcpOffset()]]--指针指向TCP有效载荷的开始
 +  * [[reference:library:EtherCard:initSPI()|initSPI()]]--初始化SPI接口
 +  * [[reference:library:EtherCard:initialize()|initialize()]]--初始化网络接口
 +  * [[reference:library:EtherCard:isLinkUp()|isLinkUp()]]--检查网络是否连接
 +  * [[reference:library:EtherCard:packetSend()|packetSend()]]--通过网络接口发送数据
 +  * [[reference:library:EtherCard:packetReceive()|packetReceive()]]--收到数据包复制到数据缓冲区
 +  * [[reference:library:EtherCard:copyout()|copyout()]]--从ENC28J60内存复制数据
 +  * [[reference:library:EtherCard:copyin()|copyin()]]--将数据复制到ENC28J60的内存
 +  * [[reference:library:EtherCard:peekin()|peekin()]]--从ENC28J60的内存得到单个字节的数据
 +  * [[reference:library:EtherCard:powerDown()|powerDown()]]--使ENC28J60进入睡眠模式
 +  * [[reference:library:EtherCard:powerUp()|powerUp()]]--把ENC28J60从睡眠模式中唤醒
 +  * [[reference:library:EtherCard:enableBroadcast()|enableBroadcast()]]--允许接收广播信息
 +  * [[reference:library:EtherCard:disableBroadcast()|disableBroadcast()]]--不允许接收广播信息
 +  * [[reference:library:EtherCard:enableMulticast()|enableMulticast()]]--允许接收组播信息
 +  * [[reference:library:EtherCard:disableMulticast()|disableMulticast()]]--不允许接收组播信息
 +  * [[reference:library:EtherCard:doBIST()|doBIST()]]--重置并完全初始化ENC28J60
 +==== 公共静态属性 ====
 +  * [[reference:library:EtherCard:buffer[]|buffer[]]]--数据缓冲区(接收和发送共享)
 +  * [[reference:library:EtherCard:bufferSize|bufferSize]]--数据缓冲区的大小
 +  * [[reference:library:EtherCard:broadcast_enabled = false|broadcast_enabled = false]]--是否允许启用广播(用于允许临时禁用DHCP的广播或其他内部函数)
 +===== EtherCard 类 参考手册 =====
 +==== 公共静态成员函数 ====
 +
 +  * [[reference:library:EtherCard:begin()|begin()]]--初始化网络接口
 +  * [[reference:library:EtherCard:staticSetup()|staticSetup()]]--配置网络接口使用静态IP
 +  * [[reference:library:EtherCard:makeUdpReply()|makeUdpReply()]]--发送一个Udp数据包到收到最后一个数据包的IP地址
 +  * [[reference:library:EtherCard:packetLoop()|packetLoop()]]--解析收到的数据
 +  * [[reference:library:EtherCard:accept()|accept()]]--接受一个TCP/IP连接
 +  * [[reference:library:EtherCard:httpServerReply()|httpServerReply()]]--发送一个HTTP响应请求
 +  * [[reference:library:EtherCard:httpServerReply_with_flags()|httpServerReply_with_flags()]]--发送一个HTTP响应请求携带TCP标志位
 +  * [[reference:library:EtherCard:httpServerReplyAck()|httpServerReplyAck()]]--回应TCP请求
 +  * [[reference:library:EtherCard:setGwIp()|setGwIp()]]--设置网关地址
 +  * [[reference:library:EtherCard:updateBroadcastAddress()|updateBroadcastAddress()]]--更新广播地址基于当前IP地址和子网掩码。
 +  * [[reference:library:EtherCard:clientWaitingGw()|clientWaitingGw()]]--检查是否有网关硬件地址(ARP查找)
 +  * [[reference:library:EtherCard:clientTcpReq()|clientTcpReq()]]--准备一个TCP请求。
 +  * [[reference:library:EtherCard:browseUrl()|browseUrl()]]--准备HTTP请求。
 +  * [[reference:library:EtherCard:httpPost()|httpPost()]]--准备HTTP post消息
 +  * [[reference:library:EtherCard:ntpRequest()|ntpRequest()]]--发送NTP请求
 +  * [[reference:library:EtherCard:ntpProcessAnswer()|ntpProcessAnswer()]]--网络时间协议的响应过程
 +  * [[reference:library:EtherCard:udpPrepare()|udpPrepare()]]--准备一个UDP消息传输。
 +  * [[reference:library:EtherCard:udpTransmit()|udpTransmit()]]--传输UDP数据包
 +  * [[reference:library:EtherCard:sendUdp()|sendUdp()]]--发送一个UDP数据包
 +  * [[reference:library:EtherCard:registerPingCallback()|registerPingCallback()]]--注册函数来处理ping事件。
 +  * [[reference:library:EtherCard:clientIcmpRequest()|clientIcmpRequest()]]--发送Ping
 +  * [[reference:library:EtherCard:packetLoopIcmpCheckReply()|packetLoopIcmpCheckReply()]]--检查ping响应
 +  * [[reference:library:EtherCard:sendWol()|sendWol()]]--发送一个局域网唤醒消息
 +  * [[reference:library:EtherCard:tcpSend()|tcpSend()]]--发送TCP请求
 +  * [[reference:library:EtherCard:tcpReply()|tcpReply()]]--获得TCP回复
 +  * [[reference:library:EtherCard:persistTcpConnection()|persistTcpConnection()]]--配置TCP链接是否保持。
 +  * [[reference:library:EtherCard:udpServerListenOnPort()|udpServerListenOnPort()]]--注册函数来监听传入的UDP协议事件
 +  * [[reference:library:EtherCard:udpServerPauseListenOnPort()|udpServerPauseListenOnPort()]]--停止监听某端口的UDP协议事件。
 +  * [[reference:library:EtherCard:udpServerResumeListenOnPort()|udpServerResumeListenOnPort()]]--恢复监听某端口的UDP协议事件。
 +  * [[reference:library:EtherCard:udpServerListening()|udpServerListening()]]--检查是否有UDP服务在某个端口监听
 +  * [[reference:library:EtherCard:udpServerHasProcessedPacket()|udpServerHasProcessedPacket()]]--将数据包发送给UDP服务器
 +  * [[reference:library:EtherCard:DhcpStateMachine()|DhcpStateMachine()]]--更新DHCP状态
 +  * [[reference:library:EtherCard:dhcpStartTime()|dhcpStartTime()]]
 +  * [[reference:library:EtherCard:dhcpLeaseTime()|dhcpLeaseTime()]]
 +  * [[reference:library:EtherCard:dhcpLease()|dhcpLease()]]
 +  * [[reference:library:EtherCard:dhcpSetup()|dhcpSetup()]]--配置DHCP相关的网络接口设置
 +  * [[reference:library:EtherCard:dhcpAddOptionCallback()|dhcpAddOptionCallback()]]--注册一个callback特定的DHCP选项编号 
 +  * [[reference:library:EtherCard:dnsLookup()|dnsLookup()]]--执行DNS查找
 +  * [[reference:library:EtherCard:copyIp()|copyIp()]]--复制一个IP地址
 +  * [[reference:library:EtherCard:copyMac()|copyMac()]]--复制一个硬件地址
 +  * [[reference:library:EtherCard:printIp()|printIp()]]--通过串口输出十进制的IP地址
 +  * [[reference:library:EtherCard:findKeyVal()|findKeyVal()]]--搜索一个字符串形式的关键字,类似q?xyz=abc&uvw=defgh HTTP/1.1\r\n
 +  * [[reference:library:EtherCard:urlDecode()|urlDecode()]]--解码一个URL字符串,比如"hello%20joe"或者"hello+joe"变为"hello joe"
 +  * [[reference:library:EtherCard:urlEncode()|urlEncode()]]--编码一个URL,取代一些非法字符,像""
 +  * [[reference:library:EtherCard:parseIp()|parseIp()]]--把一个IP地址从10进制转换为4个字节。
 +  * [[reference:library:EtherCard:makeNetStr()|makeNetStr()]]--把一个字节的数组转换为人们可以读懂的字符串
 +
 +==== 公共静态属性 ====
 +  * [[reference:library:EtherCard:mymac[6]|mymac[6]]]--MAC物理地址
 +  * [[reference:library:EtherCard:myip[4]|myip[4]]]--IP地址
 +  * [[reference:library:EtherCard:netmask[4]|netmask[4]]]--子网掩码
 +  * [[reference:library:EtherCard:broadcastip[4]|broadcastip[4]]]--子网的广播地址
 +  * [[reference:library:EtherCard:gwip[4]|gwip[4]]]--网关
 +  * [[reference:library:EtherCard:dhcpip[4]|dhcpip[4]]]--DHCP服务器的IP地址
 +  * [[reference:library:EtherCard:dnsip[4]|dnsip[4]]]--DNS服务器的IP地址
 +  * [[reference:library:EtherCard:hisip[4]|hisip[4]]]--DNS查询的结果
 +  * [[reference:library:EtherCard:hisport = 80|hisport = 80]]--TCP端口连接到80(默认)
 +  * [[reference:library:EtherCard:using_dhcp = false|using_dhcp = false]]--如果使用DHCP为true
 +  * [[reference:library:EtherCard:persist_tcp_connection = false|persist_tcp_connection = false]]--在第一次接收数据包后是否保持TCP链接
 +  * [[reference:library:EtherCard:delaycnt = 0|delaycnt = 0]]--计数packetLoop周期时,没有收到报文的数量,用于触发网关的周期性ARP请求