【全志系统 - WIFI - 2】 - 操作流程

1. wifi 模式

目前我们使用到的WIFI模组,具备两种模式:

  • AP模式: 即当前板卡散发热点,充当路由器
  • STA模式: 充当客户端,去连接路由器

1.1 查看当前所处的模式

指令: iwconfig wlan0

Mode 意义 备注
Master AP模式 成为无线接入点提供无线接入服务
Magaged STA模式 作为客户端连接其他无线接入点
Monitor 监听附近所有无线流量 目前不支持
Ad-hoc 多台计算机直接相连 目前不支持

1)AP模式下

root@TinaLinux:/usr# iwconfig wlan0
wlan0     IEEE 802.11bgn  Mode:Master  Frequency:2.437 GHz  Tx-Power=31 dBm
          RTS thr:off   Fragment thr:off
          Power Management:on

2)STA模式下

root@TinaLinux:/usr# iwconfig wlan0
wlan0     IEEE 802.11bgn  ESSID:"ZZ"
          Mode:Managed  Frequency:2.412 GHz  Access Point: 8C:A6:DF:3A:0D:CA
          Bit Rate=65 Mb/s   Tx-Power=31 dBm
          RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:on
          Link Quality=69/70  Signal level=-41 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:1  Invalid misc:0   Missed beacon:0

2. AP模式

参见如下网址:

WIFI AP模式

3. STA模式

参见如下网址:

WIFI STA模式

4. wifi操作脚本

#!/bin/sh
# Copyright (C) 2006 OpenWrt.org
#Autor: Jimmy
#Date: 2020-11-06
#Version: v1.0

start_sta() {
    ifconfig wlan0 up
    if [[ -e "/var/run/wpa_supplicant/wlan0" ]]; then
         rm "/var/run/wpa_supplicant/wlan0"
    fi
    wpa_supplicant -i wlan0 -c /etc/wifi/wpa_supplicant.conf &
    udhcpc -i wlan0 -B
}

stop_sta() {
    killall wpa_supplicant
    killall hostapd
    killall udhcpc
    killall dnsmasq
    ifconfig wlan0 down
}

restart_sta() {
    stop_sta
    sleep 1s
    start_sta
}


start_ap() {
        if [[ -z "$1" ]]; then
                mac_addr=$(ifconfig wlan0|awk '{print $5}'|cut -c 13-|tr -d ' :\n')
                ap_name="SmartLife-$mac_addr"
                softap_up $ap_name
        else
                softap_up $1
        fi
}

stop_ap() {
        softap_down
}

restart_ap() {
        stop_ap
        sleep 1s
        start_ap $1
}

case $1 in
        start_sta)
                start_sta
                ;;
        stop_sta)
                stop_sta
                ;;
        restart_sta)
                restart_sta
                ;;

        start_ap)
                start_ap $2
                ;;
        stop_ap)
                stop_ap
                ;;
        restart_ap)
                restart_ap $2
                ;;
        *)
                echo "Input option: $1 was error"
                ;;
esac

你可能感兴趣的:(【全志系统 - WIFI - 2】 - 操作流程)