Exemple #1
0
def running_reports(term, lock, dev, x_len):
    global g_report_number

    report_start_row = 10
    num_lines_printed = 0
    current_report = -1
    while True:
        global g_refresh_counter
        global g_reports
        global g_refresh_rate

        g_refresh_counter += 1
        # Determine if our report has changed
        if current_report != g_report_number:
            g_refresh_counter = 0

            # Clear the previous reports
            XBUtil.clear_rows(term, lock, report_start_row, num_lines_printed)

            # Point to the next report
            if g_report_number < 0:
                g_report_number = len(g_reports) - 1
            if g_report_number >= len(g_reports):
                g_report_number = 0
            current_report = g_report_number

            # Update the report header on which report that is currently being displayed
            report_name = g_reports[current_report].report_name()
            report_header = "%s (%d/%d)" % (report_name, current_report + 1, len(g_reports))
            print_header(term, lock, dev, report_header, x_len)

        g_reports[current_report].update(dev)
        # Clear the previous reports
        XBUtil.clear_rows(term, lock, report_start_row, num_lines_printed)
        num_lines_printed = g_reports[current_report].print_report(term, lock, 0, report_start_row)

        # Wait for either for the refresh time to expire or for a new report
        counter = 0
        while counter < (g_refresh_rate * 4):  # Note: The sleep time is 0.25 seconds, hence x4.
            counter += 1
            if current_report != g_report_number:
                break
            time.sleep(0.25)    # Check 4 times a second
Exemple #2
0
def running_reports(term, lock, dev, x_len, y_len):
    global g_report_number
    global g_reports
    global g_page_number

    report_length = 0
    report_start_row = 10
    report_end_row = 10 # Number of lines above bottom of terminal. Must leave room for footer!
    num_lines_printed = 0
    current_report = -1
    current_page = -1
    while True:
        global g_refresh_counter
        global g_refresh_rate

        g_refresh_counter += 1
        page_count = 0
        # Determine if our report has changed
        if (current_report != g_report_number) or (current_page != g_page_number):
            g_refresh_counter = 0

            # Clear the previous reports
            XBUtil.clear_rows(term, lock, report_start_row, num_lines_printed)

            # Point to the next report
            if g_report_number < 0:
                g_report_number = len(g_reports) - 1
            if g_report_number >= len(g_reports):
                g_report_number = 0
            current_report = g_report_number

            report_length = y_len - report_start_row - report_end_row
            page_count = g_reports[current_report].update(dev, report_length)

            # Point to the next page if overflowing
            if g_page_number < 0:
                g_page_number = page_count - 1
            if g_page_number >= page_count:
                g_page_number = 0
            current_page = g_page_number

            # Update the report header on which report that is currently being displayed
            report_name = g_reports[current_report].report_name()
            report_header = "%s (%d/%d)" % (report_name, current_report + 1, len(g_reports))
            page_header = "Page (%d/%d)" % (current_page + 1, page_count)
            print_header(term, lock, dev, report_header, page_header, x_len)
        # Just update the report if no changes have occurred
        else:
            page_count = g_reports[current_report].update(dev, report_length)

        # Clear the previous reports
        XBUtil.clear_rows(term, lock, report_start_row, num_lines_printed)
        num_lines_printed = g_reports[current_report].print_report(term, lock, 0, report_start_row, current_page)

        # Wait for either for the refresh time to expire or for a new report
        counter = 0
        while counter < (g_refresh_rate * 4):  # Note: The sleep time is 0.25 seconds, hence x4.
            counter += 1
            if current_report != g_report_number:
                break
            time.sleep(0.25)    # Check 4 times a second