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
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