主控Demo APP介绍

[English]

demo APP介绍

BK Controller SDK在主控侧提供了两个demo APP,分别是bk_ioctrl和bk_rx_evt。

bk_ioctrl

在客户应用导入前,可以通过bk_ioctrl APP进行对Controller进行控制,目前支持两种方式进行Controller的控制,支持的命令目前如下:

bk_ioctrl <arg1> <arg2> <arg3> <arg4>
-----------------------WLAN COMMAND---------------------------------
bk_ioctrl scan_wifi                                 - scan AP
bk_ioctrl connect [ssid] [password]                 - connect with AP
bk_ioctrl disconnect                                - disconnect with ap
bk_ioctrl start_ap [ssid] [password]                - start SoftAP
bk_ioctrl stop_ap                                   - stop softAP
bk_ioctrl get_wlan_stat                             - get wlan status
bk_ioctrl wifi_mmd [enable]                         - config Wi-Fi multimedia mode
bk_ioctrl set_netinfo [ip] [mask] [gw] [dns]        - config net info
bk_ioctrl set_ar [ar_en]                            - config auto reconnect
-----------------------BLE COMMAND----------------------------------
bk_ioctrl open_ble                                  - open ble
bk_ioctrl close ble                                 - close ble
-----------------------SYSTEM COMMAND-------------------------------
bk_ioctrl set_mac [mac]                             - set mac addr(set_mac 112233aabbcc)
bk_ioctrl get_mac                                   - get mac addr
bk_ioctrl enter_sleep                               - ask controller goto sleep
bk_ioctrl exit_sleep                                - ask controller exit sleep
bk_ioctrl send_at [AT string]                       - send AT command
bk_ioctrl keepalive_cfg [ip] [port]                 - start keepalive demo
bk_ioctrl set_time [time]                           - set time
bk_ioctrl get_time                                  - get time
bk_ioctrl cust [data string]                        - start customer demo
bk_ioctrl start_ota                                 - notify controller to START OTA
bk_ioctrl send_ota_pkt [offset] [size] [finish]     - send demo OTA packet
bk_ioctrl stop_ota                                  - notify controller to STOP OTA
-----------------------Customer COMMAND---------------------------------
bk_ioctrl cust                                      - help infomation
bk_ioctrl cust version                              - print controller version information
bk_ioctrl cust reboot                               - reboot wifi controller
bk_ioctrl cust poweroff                             - power off the wifi controller
bk_ioctrl cust powerup_reason                       - get power up reason
bk_ioctrl cust reboot_reason                        - get reboot reason
bk_ioctrl cust start_ka                             - start keep alive with server demo
bk_ioctrl cust set_param [key] [value]              - set parameter
bk_ioctrl cust get_param                            - get parameter
bk_ioctrl cust control [para]                       - start keep avlive with host(eg. cust control alive/stop)
bk_ioctrl cust battery                              - get wifi controller battery voltage

备注

bk_ioctrl命令可能更新,请以实际代码为准

bk_rx_evt

bk_rx_evt APP可以通过bk_ioctl_register_callback完成接收消息注册,实现接收Controller主动上报的消息。目前支持的消息如下所示:

 1 /* event-table from controller to host app */
 2 enum BK_EVENT_TYPE
 3 {
 4     // Wi-Fi连接成功通知
 5     BK_EVT_CONNECT_IND          = 0x1,
 6     // Wi-Fi断链通知
 7     BK_EVT_DISCONNECT_IND       = 0x2,
 8     // SoftAP启动通知
 9     BK_EVT_START_AP_IND         = 0x3,
10     // 其他Wi-Fi设备连接SoftAP通知
11     BK_EVT_ASSOC_AP_IND         = 0x4,
12     // 其他Wi-Fi设备断开SoftAP通知
13     BK_EVT_DISASSOC_AP_IND      = 0x5,
14     // SoftAP关闭通知
15     BK_EVT_STOP_AP_IND          = 0x6,
16     // Wi-Fi扫描结果通知
17     BK_EVT_SCAN_WIFI_IND        = 0x7,
18     // Wi-Fi连接失败通知
19     BK_EVT_WIFI_FAIL_IND        = 0x8,
20
21     // BLE event
22     // BK_EVT_BLE_XX            = 0x101
23
24     // system event
25     BK_EVT_CONTROLLER_AT_IND    = 0x201,
26     BK_EVT_CUSTOMER_IND         = 0x202,
27
28     BK_EVT_BUTT                 = BK_MAX_MSG_CNT - 1
29 };

demo程序演示

在参考 主控平台适配指南 完成主控平台适配后并编译生成BK7239N驱动ko文件后,即可配合demo APP进行demo展示。 首先加载beken_vnet驱动,然后在后台运行bk_rx_evt用来接收Event事件,随后就通过bk_ioctrl命令进行功能验证。 如下是通过demo程序进行连接Wi-Fi和ping网关的演示

[root@Zeratul:~]# insmod /tmp/mnt/sdcard/beken_netdrv.ko
[root@Zeratul:~]#
[root@Zeratul:~]# bk_rx_evt &
[root@Zeratul:~]# bk_ioctrl scan_wifi
if:wlan0 is UP!
[root@Zeratul:~]# RX event id:7 len:2080
MCU-SCAN-WIFI:
            SSID                     BSSID         RSSI CHAN SECURITY
-------------------------------- -----------------   ---- ---- ---------

Product_test                     10:5f:02:f8:5c:38    -21    6 WPA2-AES
                                 12:5f:02:58:5c:38    -21    6 WPA2-AES
Redmi_ETH                        5c:02:14:b3:02:86    -38    6 WPA2-AES
Redmi_253C                       24:cf:24:3a:25:3e    -40    9 WPA2-AES
mlhuawei                         82:75:9f:c9:59:c0    -42    1 WPA2-AES
avdk                             68:dd:b7:03:f2:b3    -44    4 WPA2-AES
aclsemi                          58:c7:ac:7e:2d:f0    -45   11 WPA2-AES
NNN                              44:df:65:d9:c6:92    -47    4 WPA2-AES
cyg                              0c:d8:6c:3a:3e:50    -49    1 WPA2-AES
                                 d6:31:27:58:ac:d9    -50    1 WPA2-AES
XiaoMi_123                       d4:da:21:57:7e:aa    -51    9 WPA3-SAE
stability-router2                d4:31:27:58:ac:d9    -51    1 WPA2-AES
stability-router1                04:42:1a:7d:bb:e0    -52    2 WPA3-SAE
aclsemi                          58:c7:ac:7e:32:a0    -52    1 WPA2-AES
bk_mesh_w1                       c8:47:8c:07:74:e0    -53    1 WPA2-AES
Xiaomi_A29E                      3c:cd:57:50:a2:9f    -55    1 WPA2-MIX
ruijie                           c0:a4:76:2c:72:fc    -57   10 WPA3-SAE
ChinaNet-AbO3                    ba:a1:4a:65:54:b5    -57   11 WPA2-MIX
stability-router3                a0:36:bc:9a:9c:48    -57    1 WPA3-SAE
test_duan                        cc:28:aa:ad:11:e8    -57    6 WPA2-AES
softAP_C8:47:8C:01:39:74         ca:47:8c:01:39:74    -57   11 WPA2-AES
NETGEAR55                        74:d0:2b:6d:6b:cc    -57    3 WPA3-SAE
                                 f6:6d:2f:a8:bd:35    -59    5 WPA2-AES
bk_mesh_w1                       c8:47:8c:9d:a6:62    -60    1 WPA2-AES
TP                               74:05:a5:d5:b9:58    -61    5 WPA2-AES
bk_mesh_w1                       c8:47:8c:74:fd:3f    -64    1 WPA2-AES
softAP_2025-03-10-19_58_53       c8:47:8c:d7:b0:d9    -64    1 WPA2-AES
biubiubiu                        04:42:1a:d4:d6:90    -65   11 WPA2-AES
ax56u-IT-verify                  3c:37:86:c3:bb:de    -68   10 WPA2-AES
aclsemi                          74:50:4e:3f:7e:d0    -68    6 WPA2-AES
JIEWU                            12:71:11:71:0b:71    -61    6 WEP
OpenWrt                          d4:da:21:76:0d:d9    -26    6 NONE
Redmi_ExTest                     d4:da:21:0e:7a:ef    -44   11 NONE
ASUS_20                          d4:5d:64:ce:cc:20    -44    1 NONE
ASUS_F8                          50:eb:f6:ab:1b:f8    -45    5 NONE
tuituitui                        5c:02:14:7b:b1:b7    -46    4 NONE
LTE                              60:c5:a8:e0:c3:bc    -48    2 NONE
                                 da:da:21:57:7e:aa    -48    9 NONE
HUAWEI_B535_2417                 62:c7:ca:17:24:28    -57    6 NONE
Xiaomi_44D1                      8c:53:c3:dc:0b:23    -57   11 NONE

[root@Zeratul:~]#
[root@Zeratul:~]#
[root@Zeratul:~]# bk_ioctrl connect OpenWrt
bk_ioctl_set_sta_cmd ret:0
[root@Zeratul:~]# RX event id:1 len:56
STA CONNECT IND: connect to 'OpenWrt' (-27 dBm)
ip: 192.168.1.172, mk: 255.255.255.0, gw: 192.168.1.1, dns: 192.168.1.1
lo      Link encap:Local Loopback
        inet addr:127.0.0.1  Mask:255.0.0.0
        UP LOOPBACK RUNNING  MTU:65536  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:0
        RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0   Link encap:Ethernet  HWaddr 8C:87:D0:04:2D:6E
        inet addr:192.168.1.172  Bcast:192.168.1.255  Mask:255.255.255.0
        UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
        RX packets:0 errors:0 dropped:0 overruns:0 frame:0
        TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
        collisions:0 txqueuelen:1000
        RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 wlan0
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 wlan0

[root@Zeratul:~]# ping 192.168.1.1
PING 192.168.1.1 (192.168.1.1): 56 data bytes
64 bytes from 192.168.1.1: seq=0 ttl=64 time=39.365 ms
64 bytes from 192.168.1.1: seq=1 ttl=64 time=18.441 ms
64 bytes from 192.168.1.1: seq=2 ttl=64 time=11.139 ms
64 bytes from 192.168.1.1: seq=3 ttl=64 time=3.062 ms
64 bytes from 192.168.1.1: seq=4 ttl=64 time=3.544 ms

--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 packets received, 0% packet loss
round-trip min/avg/max = 3.062/15.110/39.365 ms