From 0ea2f654bb635b351428f4e3448721bc2a801f3f Mon Sep 17 00:00:00 2001 From: Mikael Henriksson <mike.zx@hotmail.com> Date: Thu, 16 Feb 2023 14:29:08 +0100 Subject: [PATCH] Draw ticks in draw_exclusion_graph_coloring() for processes with zero execution time (closes #172) --- b_asic/resources.py | 26 +++++++++++++----- .../test_draw_matrix_transposer_4.png | Bin 21399 -> 21472 bytes 2 files changed, 19 insertions(+), 7 deletions(-) diff --git a/b_asic/resources.py b/b_asic/resources.py index c91047b2..6ad988ff 100644 --- a/b_asic/resources.py +++ b/b_asic/resources.py @@ -1,5 +1,5 @@ import re -from typing import Dict, List, Optional, Set, Tuple, Union +from typing import Dict, Iterable, List, Optional, Set, Tuple, TypeVar, Union import matplotlib.pyplot as plt import networkx as nx @@ -8,9 +8,16 @@ from matplotlib.ticker import MaxNLocator from b_asic.process import Process +# +# Human-intuitive sorting: +# https://stackoverflow.com/questions/2669059/how-to-sort-alpha-numeric-set-in-python +# +# Typing '_T' to help Pyright propagate type-information +# +_T = TypeVar('_T') -# From https://stackoverflow.com/questions/2669059/how-to-sort-alpha-numeric-set-in-python -def _sorted_nicely(to_be_sorted): + +def _sorted_nicely(to_be_sorted: Iterable[_T]) -> List[_T]: """Sort the given iterable in the way that humans expect.""" convert = lambda text: int(text) if text.isdigit() else text alphanum_key = lambda key: [ @@ -92,7 +99,7 @@ class ProcessCollection: ---------- collection : set of :class:`~b_asic.process.Process` objects The Process objects forming this ProcessCollection. - schedule_time : int, default: 0 + schedule_time : int Length of the time-axis in the generated graph. cyclic : bool, default: False If the processes operates cyclically, i.e., if time 0 == time *schedule_time*. @@ -130,7 +137,7 @@ class ProcessCollection: Parameters ---------- ax : :class:`matplotlib.axes.Axes`, optional - Matplotlib Axes object to draw this lifetime chart onto. If not provided (i.e., set to None), this will + Matplotlib Axes object to draw this lifetime chart onto. If not provided (i.e., set to None), this method will return a new axes object on return. show_name : bool, default: True Show name of all processes in the lifetime chart. @@ -146,7 +153,7 @@ class ProcessCollection: else: _ax = ax - # Draw the lifetime chart + # Lifetime chart left and right padding PAD_L, PAD_R = 0.05, 0.05 max_execution_time = max( process.execution_time for process in self._collection @@ -157,12 +164,17 @@ class ProcessCollection: f'Error: Schedule time: {self._schedule_time} < Max execution' f' time: {max_execution_time}' ) + + # Generate the life-time chart for i, process in enumerate(_sorted_nicely(self._collection)): bar_start = process.start_time % self._schedule_time bar_end = ( process.start_time + process.execution_time ) % self._schedule_time - if bar_end > bar_start: + if process.execution_time == 0: + # Process has no execution time, draw a tick + _ax.scatter(x=bar_start, y=i + 1, marker='X', color='blue') + elif bar_end > bar_start: _ax.broken_barh( [(PAD_L + bar_start, bar_end - bar_start - PAD_L - PAD_R)], (i + 0.55, 0.9), diff --git a/test/baseline/test_draw_matrix_transposer_4.png b/test/baseline/test_draw_matrix_transposer_4.png index 962fc776b73b1096b8d6080fce8d88a380f52c60..bc686cd9aa899577e600015b3b73c194618d5320 100644 GIT binary patch literal 21472 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
=1mFU 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 JN>9$ozX4MYbHe}t literal 21399 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 P>?PJ7c3`#t!IS?01KyKd -- GitLab