aboutsummaryrefslogtreecommitdiffstats
path: root/plot_ecrts
blob: 3bcd004149a5fca7c65ecbe3dd20d1e0efc74348 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#!/bin/bash


EPS_FLAG=

while true; do
  case $1 in
      --eps)
	  shift
	  EPS_FLAG="--eps"
	  ;;
    *)
	  break
	  ;;
  esac
done

PLOTTER="plot_scatter $EPS_FLAG --lines --xrange 0.5 32.5 --yrange -0.05 1.05 --xticks 0 2 --yticks 0 0.1"

function get_tmp_file {
    OS=`uname`
    if [ $OS == "Linux" ]
    then
	mktemp
    else # Darwin
	mktemp -t ecrts
    fi
}

function get_val {
    echo "$1" | sed 's/.*=//g'
}

function plot_file {
    SCHED="G-EDF"
    FILE=$1
    NAME=`basename $FILE | sed -e 's/.csv//g'`
    STRIPPED=`get_tmp_file`
    # remove comments for Gnuplot
    egrep -v '^#' $FILE > $STRIPPED
    # decode file name
    PARAMS=
    for KV in `echo $NAME | sed -e 's/_/ /g'`
    do
	case $KV in
	    pedf)
		SCHED="P-EDF"
		;;
	    gedf)
		SCHED="G-EDF"
		;;
	    hard)
		TEST="hard"
		;;
	    soft)
		TEST="soft"
		;;
	    axis*)
		AXIS=`get_val $KV`
		;;
	    rmax*|rmin*|wmax*|wmin*)
		# ignored, not shown
		;;
	    *)
		PARAMS="$PARAMS $KV"
		;;
	esac
    done
    TITLE="$TEST schedulability under $SCHED with$PARAMS"
    echo $TITLE
    $PLOTTER "$NAME" "$AXIS" "Schedulability" "$TITLE" \
	$STRIPPED 1 2 "fair mutex" \
	$STRIPPED 1 3 "task-fair RW" \
	$STRIPPED 1 4 "phase-fair RW"
    rm $STRIPPED
}


while [ ! -z "$1" ]
do
    echo "Plotting $1..."
    plot_file $1
    shift
done