1#!/usr/bin/env python3.4 2# 3# Copyright 2018 Google, Inc. 4# 5# Licensed under the Apache License, Version 2.0 (the "License"); 6# you may not use this file except in compliance with the License. 7# You may obtain a copy of the License at 8# 9# http://www.apache.org/licenses/LICENSE-2.0 10# 11# Unless required by applicable law or agreed to in writing, software 12# distributed under the License is distributed on an "AS IS" BASIS, 13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14# See the License for the specific language governing permissions and 15# limitations under the License. 16 17import logging 18import time 19import pprint 20 21from enum import IntEnum 22from queue import Empty 23 24from acts import asserts 25from acts import signals 26from acts import utils 27from acts.controllers import attenuator 28from acts.test_utils.wifi import wifi_constants 29from acts.test_utils.tel import tel_defines 30from acts.test_utils.wifi import wifi_test_utils as wutils 31 32ARDUINO = "/root/arduino/arduino-1.8.5/arduino " 33CONNECT_WIFI = "/arduino/connect_wifi/connect_wifi.ino" 34DISCONNECT_WIFI = "/arduino/disconnect_wifi/disconnect_wifi.ino" 35SSID = wutils.WifiEnums.SSID_KEY 36PWD = wutils.WifiEnums.PWD_KEY 37 38def connect_wifi(wd, network=None): 39 """Connect wifi on arduino wifi dongle 40 41 Args: 42 wd - wifi dongle object 43 network - wifi network to connect to 44 """ 45 wd.log.info("Flashing connect_wifi.ino onto dongle") 46 cmd = "locate %s" % CONNECT_WIFI 47 file_path = utils.exe_cmd(cmd).decode("utf-8", "ignore").split()[-1] 48 write_status = wd.write(ARDUINO, file_path, network) 49 asserts.assert_true(write_status, "Failed to flash connect wifi") 50 wd.log.info("Flashing complete") 51 wifi_status = wd.wifi_status() 52 asserts.assert_true(wifi_status, "Failed to connect to %s" % network) 53 ping_status = wd.ping_status() 54 asserts.assert_true(ping_status, "Failed to connect to internet") 55 56def disconnect_wifi(wd): 57 """Disconnect wifi on arduino wifi dongle 58 59 Args: 60 wd - wifi dongle object 61 62 Returns: 63 True - if wifi is disconnected 64 False - if not 65 """ 66 wd.log.info("Flashing disconnect_wifi.ino onto dongle") 67 cmd = "locate %s" % DISCONNECT_WIFI 68 file_path = utils.exe_cmd(cmd).decode("utf-8", "ignore").rstrip() 69 write_status = wd.write(ARDUINO, file_path) 70 asserts.assert_true(write_status, "Failed to flash disconnect wifi") 71 wd.log.info("Flashing complete") 72 wifi_status = wd.wifi_status(False) 73 asserts.assert_true(not wifi_status, "Failed to disconnect wifi") 74