查看“︁Demo:wifi sta”︁的源代码
←
Demo:wifi sta
跳转到导航
跳转到搜索
因为以下原因,您没有权限编辑该页面:
不允许您执行您所请求的操作。
您可以查看和复制此页面的源代码。
=== 基本介绍: === 该系列demo存放在SDK 的路径为:bouffalo_sdk/examples/wifi/sta 。 该系列代码需要将开发板作为STA节点连接到WiFi或者路由器后进行一些基本的通讯数据功能性测试。 以下该系列demo的基本功能说明。 === MQTT相关Demo说明: === ==== wifi_mqtt_pub: ==== 该demo将开发板作为mqtt中的publisher,向节点内发布主题信息。 要测试该节点需要以下前置: 1.建立一个mqtt服务器 2.使用mqttbox或者其他相关工具从服务器上订阅对应的主题。 3.可以向串口发送指令。 建议本地下载mosquito,在本地搭建一个mqtt服务器,或者使用emqX公用服务器。该案例的defult server是:`test.mosquitto.org:1883` 向串口发送指令连接WIFI并订阅:<syntaxhighlight lang="bash" line="1"> wifi_sta_connect your_wifi_id your_passwd mqtts_pub $local_ip 8883 #mqtt_pub 如果不带参数会默认发送到上述的公有服务器 #会得到以下输出: bouffalolab />mqtt_pub is ready to begin publishing the time. Press ENTER to publish the current time. Press CTRL-C to exit. mqtt_pub published : "{"hello mqtt by bl616/8 !"} Now time is 2023-06-16 00:00:00" mqtt_pub published : "{"hello mqtt by bl616/8 !"} Now time is 2023-06-16 00:00:03" mqtt_pub stop publish to test.mosquitto.org </syntaxhighlight>订阅方会受到当前时间的字符串。 ==== wifi_mqtt_sub: ==== 和上述一样,但是该案例是submiter ,也就是消息订阅方。 前置条件:同上。 同样向串口发送指令来验证:<syntaxhighlight lang="bash" line="1"> bouffalolab />wifi_sta_connect your_wifi_id your_pwd bouffalolab />mqtt_sub your_server <port> #得到输出 bouffalolab />mqtt_sub listening for '<theme>' messages. Press CTRL-C to exit. Received publish('<theme>'): {"hello mqtt"} Received publish('<theme>'): {"hello mqtt"} mqtt_sub disconnecting from xxx.your_server </syntaxhighlight> === HTTP与HTTPS相关demo说明: === ==== wifi_http: ==== 该demo会向网络服务器发送请求,根据返回结果判断http请求功能是否正常。 前置条件为:一个可共上网的wifi,可以向串口发送指令。<syntaxhighlight lang="bash" line="1"> bouffalolab />wifi_sta_connect your_wifi your_pwd bouffalolab />wifi_http_test www.xxx.com #以下为输出 bouffalolab />Http client task start ... Host:www.xxx.com, Server ip Address : the ip of websit server Http client connect server success! Press CTRL-C to exit. HTTP/1.1 200 OK </syntaxhighlight> ==== wifi_https: ==== 该demo会自动发加密数据到www.baidu.com,根据结果判断加密功能是否正常 前置条件:同上<syntaxhighlight lang="bash" line="1"> bouffalolab />wifi_https_test bouffalolab />dst_addr is 842C9824 #以下为输出 [I: 124359488][bl_https.c:126] HTTP/S> bouffalo connect fd = 0x62fd0dc0 [I: 124377783][bl_https.c:136] HTTP/S> ret = -28 [I: 124598639][bl_https.c:156] HTTP/S> ret = 0 [I: 124598987][bl_https.c:160] HTTP/S> total time:471 ms [I: 124679688][bl_https.c:168] HTTP/S> rcv_ret = 1179 [I: 124680077][bl_https.c:172] HTTP/S> proc_head_r 0, status_code 200, body_start_off 400 [I: 124680533][bl_https.c:180] HTTP/S> Copy to resp @off 0, len 779, 1st char 3C bl_TcpSslDisconnect end [I: 124683390][bl_https.c:264] HTTP/S> total time:555 ms [I: 124683715][bl_https.c:265] HTTP/S> test_1: status_code 200, resp_len 779 [I: 124684395][bl_https.c:267] HTTP/S> resp body: <!DOCTYPE html> <!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=https://ss1. </syntaxhighlight>如果你想要更改测试服务器目标,可以在https.c源码中添加test,或者直接更改这部分代码:<syntaxhighlight lang="c" line="1"> static void test_1(void) { const char *host = "www.baidu.com"; const uint8_t send_buf[] = "GET / HTTP/1.1\r\n" "Host: www.baidu.com\r\n" "User-Agent: curl/7.58.0\r\n" "accept: application/json\r\n" "\r\n"; uint8_t *buf; int resp_len; int status_code; buf = malloc(16 * 1024); if (NULL == buf) { LOG_E("malloc\r\n"); return; } resp_len = 16 * 1024; uint32_t start_time = 0, stop_time = 0; start_time = xTaskGetTickCount(); status_code = https_request(host, 443, send_buf, sizeof(send_buf) - 1, buf, &resp_len); stop_time = xTaskGetTickCount(); LOG_I("total time:%d ms\r\n", (stop_time - start_time)); LOG_I("test_1: status_code %d, resp_len %d\r\n", status_code, resp_len); buf[resp_len] = '\0'; LOG_I("resp body: %s\r\n", buf); free(buf); } </syntaxhighlight>上述函数被调用用来执行测试,更改该部分代码可以实现更改测试目标的目的。 === TCP的Demo说明: === ==== wifi_tcp: ==== 该部分代码编写了一个server.c和一个client.c,分别用于测试TCP服务端测试和客户端测试。 前置条件:PC端和开发板共同在一个局域网内,可以向串口发送指令。 使用picocom工具在串口中执行指令。 server测试:<syntaxhighlight lang="bash" line="1"> bouffalolab />wifi_sta_connect your_wifi_id your_wifi_pwd bouffalolab />wifi_tcp_echo_test 3365 #服务器建立成功 bouffalolab />tcp server task start ... Server ip Address : 0.0.0.0:3365 # 执行 nc -v ipaddr port 连接板子的tcp服务器 new client connected from (192.168.1.2, 57480) Press CTRL-C to exit. recv 7 len data </syntaxhighlight>client测试:<syntaxhighlight lang="bash" line="1"> #首先执行 nc -l -p 3365 在本地架起一个服务器 bouffalolab />wifi_sta_connect BL_TEST 12345678 bouffalolab />wifi_tcp_test localip 3365 #输出 bouffalolab />tcp client task start ... Server ip Address : 192.168.1.2:3365 TCP client connect server success! Press CTRL-C to exit. </syntaxhighlight> === UDP的demo说明: === 该部分代码将使用开发板作为sta节点连接wifi并且架起一个udp服务器。 前置条件:PC端和开发板在同一个局域网内,可以向串口发送指令。 测试过程:<syntaxhighlight lang="bash" line="1"> #连接开发板终端并发送指令 bouffalolab />wifi_sta_connect your_wifi_id 12345678 bouffalolab />wifi_udp_echo 3365 bouffalolab />udp server task start ... #服务其成功架起输出 ip Address : ip:3365 udp bind port success! Press CTRL-C to exit. #在PC端执行 nc -u server_ip server_port #直接发送 1234567890 #成功接受到数据 recv from 192.168.1.2 recv:X recv from 192.168.1.2 recv:X recv from 192.168.1.2 recv:X recv from 192.168.1.2 recv:X recv from 192.168.1.2 recv:1234567890 </syntaxhighlight>
返回
Demo:wifi sta
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息