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