def finish(connection_times_list, failed_connections_count, consec_fails_list, script_start_time):
    write_logs(connection_times_list, failed_connections_count, consec_fails_list, windows_source.serial, monitor.serial, script_start_time)
    exit()
def get_connect_time_and_disconnect(windows_source, monitor):
    successful_connections = []
    number_of_connections = input("Enter number of connections: ")
    while (not isinstance(number_of_connections, int)) or number_of_connections <= 0:
        number_of_connections = input("Please enter an integer larger than 0:")

    total_connection_time = 0
    failed_connections = 0
    consecutive_failures = 0
    consec_fails_list = []
    for x in range(number_of_connections):
        #Setup
        os.system("adb devices")
        time.sleep(2)
        end_time = 0
        #Check not connected
        while verify_connected() == True:
            windows_source.disconnect()

        if consecutive_failures > 2: #TODO:Remove monitor from device list
            consec_fails_list.append(consecutive_failures)
            windows_source.remove_monitor()

        #Clear logcat
        subprocess.call(["adb", "logcat", "-c"])

        #Connect
        print "Connecting"
        # subprocess.check_output(["adb", "logcat", "|", "findstr", PRINTING_FRAME_LINE], shell=True)
        # os.system("adb logcat | findstr %s" % PRINTING_FRAME_LINE)
        starting_time = windows_source.connect(monitor.name)
        # TODO: remove print
        print "start time = %s" % starting_time
        #start thread, and in that thread run the logcat command

        # os.system("adb logcat | findstr %s" % PRINTING_FRAME_LINE)
        temp = subprocess.check_output(["adb", "logcat", "|", "findstr", PRINTING_FRAME_LINE])
        end_time = time.time()

        # os.system("adb logcat | findstr %s" % PRINTING_FRAME_LINE)
        # ending_time = time.time()
        print "Measured end time: %s" % end_time
        time.sleep(2)

        if end_time == 0:
            print "Time measurement failure on connection number %s" % (x + 1)
            if verify_connected():
                successful_connections.append(-1)
                windows_source.disconnect()
            continue

        if verify_connected(): #Succesful connection
            consecutive_failures = 0
            print end_time - starting_time
            connection_time = end_time - starting_time
            print("Connection time: %s" % connection_time)
            successful_connections.append(connection_time)
            total_connection_time += connection_time
            windows_source.disconnect()
        else: #Connection failed
            failed_connections += 1
            consecutive_failures += 1

    # Write connection times to .csv file
    write_logs(number_of_connections, successful_connections, failed_connections, consec_fails_list)

    return "Number of connections: %s\n" \
           "Average connection time: %s" % (number_of_connections, total_connection_time / number_of_connections)