Open1081使用MICO core API 与Wifi协议熟悉
802.11工作方式
802.11定义了两种类型的设备,一种是无线站,通常是通过一台PC机器加上一块无线网络接口卡构成的,另一个称为无线接入点(AccessPoint,AP),它的作用是提供无线和有线网络之间的桥接。一个无线接入点通常由一个无线输出口和一个有线的网络接口(802.3接口)构成,桥接软件符合802.1d桥接协议。接入点就像是无线网络的一个无线基站,将多个无线的接入站聚合到有线的网络上。无线的终端可以是802.11PCMCIA卡、PCI接口、ISA接口的,或者是在非计算机终端上的嵌入式设备(例如802.11手机)。
802.11四种主要物理组件
1. 工作站(Station),构建网络的主要目的是为了在工作站间传送数据。所谓工作站,是指配备无线网络接口的计算设备。
2. 接入点(Access Point),802.11网络所使用的帧必须经过转换,方能被传递至其他不同类型的网络。具备无线至有线的桥接功能的设备称为接入点,接入点的功能不仅于此,但桥接最为重要。
3. 无线媒介(Wireless Medium),802.11标准以无线媒介在工作站之间传递帧。其所定义的物理层不只是一种,802.11最初标准化了两种射频物理层以及一种红外线物理层。
4. 分布式系统(Distribution System),当几个接入点串联以覆盖较大区域时,彼此之间必须相互通信以掌握移动式工作站的行踪。分布式系统属于802.11的逻辑组件,负责将帧转送至目的地。
MICO BSD-like Socket 接口
int socket (int domain, int type, intprotocol)
Create an endpoint for communication.More...
int setsockopt (int sockfd, int level, intoptname, const void *optval,
socklen_t optlen)
Set options on sockets. More...
int getsockopt (int sockfd, int level, intoptname, const void *optval,
socklen_t *optlen)
Get options on sockets. More...
int bind (int sockfd, const structsockaddr_t *addr, socklen_t addrlen)
bind a name to a socket More...
int connect (int sockfd, const structsockaddr_t *addr, socklen_t addrlen)
Initiate a connection on a socket. More...
int listen (int sockfd, int backlog)
Listen for connections on a socket. More...
int accept (int sockfd, struct sockaddr_t*addr, socklen_t *addrlen)
Accept a connection on a socket. More...
int select (int nfds, fd_set *readfds,fd_set *writefds, fd_set *exceptfds,
struct timeval_t *timeout)
Monitor multiple file descriptors, waitinguntil one or more of the file
descriptors become "ready" forsome class of I/O operation (e.g., input
possible). More...
ssize_t send (int sockfd, const void *buf,size_t len, int flags)
Send a message on a socket. More...
int write (int sockfd, void *buf, size_tlen)
Send a message on a socket. More...
ssize_t sendto (int sockfd, const void*buf, size_t len, int flags, const
struct sockaddr_t *dest_addr, socklen_taddrlen)
Send a message on a socket to a specifictarget address. More...
ssize_t recv (int sockfd, void *buf, size_tlen, int flags)
Receive a message from a socket. More...
int read (int sockfd, void *buf, size_tlen)
Receive a message from a socket. More...
ssize_t recvfrom (int sockfd, void *buf,size_t len, int flags,
struct sockaddr_t *src_addr, socklen_t*addrlen)
Receive a message from a socket and get thesource address. More...
int close (int fd)
Close a file descriptor. More...
用户使用流程
通常用户的做法就是打开一个socket,调用一个ioctl,等待消息返回,收到消息后继续做下面的事情,然后又等待内核消息的返回,如此循环。 比如我们的系统的流程就是这样的:
Open1081中代码中的使用:
似乎没写完啊
完全不懂wifi 模块对应程序开发