orion/scripts/experiment/setupKit.sh

74 lines
1.5 KiB
Bash

#!/bin/bash
#
# Try to setup Kit !
#
function scanWifi() {
local iface=${1}
iwinfo ${iface} scan
return ${?}
}
function getWifiCell()
{
local iface=${1}
local ssidPrefix=${2}
res=$(scanWifi ${iface} | grep -B 1 "ESSID: \"${ssidPrefix}")
if [[ "${res}" == "Scanning not possible" ]] || [[ "${res}" == "" ]]
then
for try in $(seq 0 10)
do
sleep 5
res=$(scanWifi ${iface} | grep -B 1 "ESSID: \"${ssidPrefix}")
if [[ "${res}" == "Scanning not possible" ]] || [[ "${res}" == "" ]]
then
continue
else
echo ${res}
return 0
fi
done
echo "Error scanning wifi networks !"
return 2
else
echo ${res}
return 0
fi
}
function connectWifi() {
local iface=${1}
local ssidPrefix=${2}
local wpa=${3}
local cell=$(getWifiCell ${iface} ${ssidPrefix})
if [[ $? -ne 0 ]]
then
echo "Error on wifi scan !"
exit 12
fi
local ssid=$(echo ${cell} | awk '{print $7}' | sed -e 's/"//g')
local cellMAC=$(echo ${cell} | awk '{print $5}' | sed -e 's/"//g"')
set -x
uci delete wireless.@wifi-iface[1]
uci add wireless wifi-iface
uci set wireless.@wifi-iface[1].network="EmlidReach"
uci set wireless.@wifi-iface[1].ssid="${ssid}"
uci set wireless.@wifi-iface[1].encryption="psk2"
uci set wireless.@wifi-iface[1].device="radio1"
uci set wireless.@wifi-iface[1].mode="sta"
uci set wireless.@wifi-iface[1].bssid="${cellMAC}"
uci set wireless.@wifi-iface[1].key="${wpa}"
uci commit
reload_config
sleep 20
set +x
udhcpc -i ${iface}
}
# interface SSID_PREFIX Network_KEY
connectWifi "$1" "$2" "$3"