Mxchip Wifi Lib Functions

MXCHIP wifi basic lib – 《RM0004_mxchipWNet_library_V1.14.pdf》

– init ————————————————————————————
MxchipStatus p12
lib_config_t p12

char* system_lib_version(void); p14
void system_version(char *str, int len); p14

void lib_config(lib_config_t *conf); p14
MxchipStatus mxchipInit(void); p14
void mxchipTick(void); p14

– wifi ————————————————————————————
UwtPara_str p16
ApList_str p16
network_InitTypeDef_st p16
sta_ap_state_t p17

void mxchipStartScan(void); p18
void ApListCallback(UwtPara_str *pApList); p18

int StartNetwork(network_InitTypeDef_st *pNetworkInitPara); [call twice for dual mode] p18
void WifiStatusHandler(int status); p18

int wlan_disconnect(void); p18
int sta_disconnect(void);
int uap_stop(void);

int wifi_power_down(void); p18
int wifi_power_up(void); p19

int CheckNetLink(sta_ap_state_t *ap_state); p19
int wifi_roam_trigger(int dbm); p19

void ps_enable(void); p19
void ps_disable(void); p19

int OpenConfigmodeWPS(int timeout); p19
int CloseConfigmodeWPS(void); p20
int OpenEasylink(int timeout); p20
int OpenEasylink2(int timeout); p20
int CloseEasylink(void); p20
int CloseEasylink2(void); p20
void RptConfigmodeRslt(network_InitTypeDef_st *nwkpara); p20

– network service ——————————————————————————
WiFi_Interface p21
net_para_st p21

int getNetPara(net_para_st *pnetpara, WiFi_Interface iface); p22
void NetCallback(net_para_st *pnet); p22
void ReallocIP(void); p23

int gethostbyname(const u8 *hostname, u8 *ip_addr, u8 ipLength); p22
u32 dns_request(char *hostname); p22
void dns_ip_set(u8 *hostname, u32 ip); p23

– BSD socket ——————————————————————————
SOCK_OPT_VAL p24
sockaddr_t p26
timeval_t p26
fd_set p26

int socket(int domain, int type, int protocol); p27
int setsockopt(int sockfd, int level, int optname, const void *optval, socklen_t optlen); p27

int bind(int sockfd, const struct sockaddr_t *addr, socklen_t addrlen); p28
int listen(int sockfd, int backlog); p29
int accept(int sockfd, struct sockaddr_t *addr, socklen_t *addrlen); p30

int connect(int sockdf, const struct sockaddr_t *addr, socklen_t addrlen); p28
void socket_connected(int fd); p29

int select(int nfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval_t *timeout); p30

int tx_buf_size(int sockfd); p31

ssize_t send(int sockfd, const void *buf, ssize_t len, int flags); p31
int write(int sockfd, void *buf, ssize_t len); p31
ssize_t sendto(int sockfd, const void *buf, ssize_t len, int flags, const struct sockaddr_t *dest_addr, socklen_t addrlen); p31

ssize_t recv(int sockfd, void *buf, size_t len, int flags); p32
int read(int sockfd, void *buf, size_t len); p32
ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr_t *src_addr, socklen_t *addrlen); p32

int close(int fd); p32

void FD_ZERO(fd_set *fds); p32
void FD_SET(int sockfd, fd_set *fds); p32
void FD_CLR(int sockfd, fd_set *fds); p32
int IS_SET(int sockfd, fd_set *fds); p33

void set_tcp_keepalive(int num, int seconds); p33
void get_tcp_keepalive(int *num, int *seconds); p33

int setSslMaxlen(int len); p33
int getSslMaxlen(void); p33
int setSSLmode(int enable, int sockfd); p34

– irq ——————————————————————————
gpio_irq_trigger_t p35

int gpio_irq_enable(GPIO_TypeDef *gpio_port, uint8_t gpio_pin_number, gpio_irq_trigger_t trigger, gpio_irq_handler_t handler, void *arg); p35
int gpio_irq_disable(GPIO_TypeDef *gpio_port, uint8_t gpio_pin_number); p36

– utils ——————————————————————————
char* inet_ntoa(char *s, u32 ip); p37
u32 inet_addr(char *s); p37

u16 ntohs(u16 n); p37
u32 ntohl(u32 n); p37
u16 htons(u16 n); p37
u32 htonl(u32 n); p37

extern int MsTimer; p38
int sleep(int seconds); p38
int msleep(int mseconds); p38
int SetTimer(unsigned long ms, void(*psysTimerHandler)(void)); p38

void WatchDog(void); p38

int get_tcp_clients(void); p39
void memory_status(int *total_free, int *max_len); p39

void md5_hex(u8 *input, u32 len, u8 *output); p39