141 lines
3.9 KiB
Bash
Executable File

#!/bin/sh
clear
echo "Artoo Test Script"
SSHARGS="-o StrictHostKeyChecking=no -o ConnectTimeout=3 -i updater_id_rsa"
MYMAC=`ifconfig -a | grep HWaddr | awk 'NR==1 {print $5}' | tr '[:upper:]' '[:lower:]'`
DEBUGFSDIR=/sys/kernel/debug/ieee80211/phy0/
connectToTF() {
mySSID=$1
rm -f /tmp/wpa*
killall wpa_supplicant &> /dev/null
echo "Connecting to $mySSID"
cp /etc/wpa_supplicant.conf /tmp/
#Set the wpa_supplicant.conf
wpa_passphrase ${mySSID} sololink >> /tmp/wpa_supplicant.conf
# echo "network={" >> /tmp/wpa_supplicant.conf
# echo " ssid=\"${mySSID}\"" >> /tmp/wpa_supplicant.conf
# echo " key_mgmt=NONE" >> /tmp/wpa_supplicant.conf
# echo "}" >> /tmp/wpa_supplicant.conf
wpa_supplicant -c/tmp/wpa_supplicant.conf -Dnl80211 -B -iwlan0 &> /dev/null
ifconfig wlan0 10.1.1.10
ping 10.1.1.1 -c1 -W5 &> /dev/null
if [ $? -ne 0 ]; then
echo "Unable to connect"
echo "********************FAIL************************"
disconnectFromTF
exit 1
fi
}
disconnectFromTF() {
echo "Disconnecting"
ifconfig wlan0 down
killall wpa_supplicant &> /dev/null
}
/etc/init.d/hostapd stop &> /dev/null
/etc/init.d/dnsmasq stop &> /dev/null
ifdown wlan0 &> /dev/null
ifdown wlan0-ap &> /dev/null
while [ True ]; do
echo "Please scan barcode or enter MAC address manually (ctrl-c to exit)"
read MAC
#Parse the SSID from the MAC address
ID=`echo $MAC | tail -c 7`
SSID="SoloLink_$ID"
echo "Initializing system"
init 2
sleep 2
ssh-keygen -R 10.1.1.1 &> /dev/null
connectToTF $SSID
#ssh $SSHARGS root@10.1.1.1 "iw phy0 set txpower fixed 100"
#iw phy0 set txpower fixed 100
echo "Testing connection"
PASS=1
for ant in 1 2; do
echo "Antenna ${ant}: "
ifconfig wlan0 down
iw phy0 set antenna 0x${ant} 0x${ant}
ifconfig wlan0 10.1.1.10
sleep 1
rx=0
tx=0
rxWorst=0
txWorst=0
rxBest=-200
txBest=-200
for i in {1..20}; do
rxSig=`cat ${DEBUGFSDIR}netdev:wlan0/stations/*/last_signal`
txSig=`ssh $SSHARGS root@10.1.1.1 "cat \"${DEBUGFSDIR}netdev:wlan0-ap/stations/${MYMAC}/last_signal\""`
if [ $? -ne 0 ]; then
echo "Unable to connect to read signal value"
echo "***************${SSID} FAIL************************"
PASS=0
break
fi
echo -n "."
#echo "$txSig $txWorst $txBest"
#echo "$rxSig $rxWorst $rxBest"
rx=$((rx+rxSig))
tx=$((tx+txSig))
if [ $rxSig -le $rxWorst ]; then
rxWorst=$rxSig
fi
if [ $txSig -le $txWorst ]; then
txWorst=$txSig
fi
if [ $rxSig -ge $rxBest ]; then
rxBest=$rxSig
fi
if [ $txSig -ge $txBest ]; then
txBest=$txSig
fi
done
echo ""
rx=$((rx/20))
tx=$((tx/20))
echo "Rx best: ${rxBest} avg: ${rx} worst: $rxWorst"
echo "Tx best: ${txBest} avg: ${tx} worst: $txWorst"
if [ $rx -le -42 ] && [ $rxBest -le -40 ]; then
echo "*************${SSID} FAIL************************"
disconnectFromTF
#echo "Done"
#exit
PASS=0
break
fi
if [ $tx -le -42 ] && [ $rxBest -le -40 ]; then
echo "*************${SSID} FAIL************************"
disconnectFromTF
#echo "Done"
#exit
PASS=0
break
fi
done
if [ $PASS -eq 1 ]; then
echo "************${SSID} PASS************************"
disconnectFromTF
fi
#iw phy0 set txpower fixed 2700
#ssh $SSHARGS root@10.1.1.1 "iw phy0 set txpower fixed 2700"
#echo "Done"
done