1 #!/usr/bin/gnuplot -persist
5 # Version 5.0 patchlevel 1 last modified 2015-06-07
7 # Copyright (C) 1986-1993, 1998, 2004, 2007-2015
8 # Thomas Williams, Colin Kelley and many others
10 # gnuplot home: http://www.gnuplot.info
11 # faq, bugs, etc: type "help FAQ"
12 # immediate help: type "help" (plot window: hit 'h')
16 set key autotitles nobox reverse Left enhanced vert left at graph 0, screen 0.98
18 set title "Morse code sent using phone rings and pulse-distance modulation"
19 set xlabel "time since the first call (seconds)"
23 set xtics 20 out nomirror rotate by -45
28 set style arrow 1 heads size 2,90 front ls 201 lc 'gray'
34 min(a, b) = (a < b) ? a : b
37 transmit_data="codex_transmit.log"
38 receive_data="codex_receive.log"
39 #transmit_data="savemysugar_transmit.log"
40 #receive_data="savemysugar_receive.log"
44 plot transmit_data using 1:(1)
45 sender_t0 = GPVAL_DATA_X_MIN
47 plot receive_data using 1:(1)
48 receiver_t0 = GPVAL_DATA_X_MIN
50 t0 = min(sender_t0, receiver_t0)
52 call_setup_time = receiver_t0 - sender_t0
54 call_time = call_setup_time + call_time_error
56 morse_symbol(symbol) = symbol eq " " ? "sep" : symbol eq "/" ? "SEP" : symbol
57 end_of_signal(symbol) = (symbol eq " ") || (symbol eq "/") || (symbol eq "EOM")
58 text_character(symbol, character) = symbol eq "/" ? character . "␣" : character
60 set terminal qt 0 enhanced font "Georgia,14" size _w,_h
61 #set terminal pngcairo notransparent nocrop truecolor rounded enhanced font "Georgia,14" fontscale 1.0 size _w,_h
62 #set output 'pulse_distance_modulation.png'
65 transmit_data using (0):(0):($1 - t0):($1 - t0 + call_time):(0):(0.5) with boxxy \
66 fs solid noborder lc "#90caf9" title 'outgoing calls', \
67 receive_data using ($1 - t0):(0.5) with impulses lw 2 lc '#ff3d00' title 'ingoing rings', \
68 receive_data using ($4 > 0 ? $1 - t0 : 1/0):(0.53):(-$4):(0) with vectors arrowstyle 1 notitle, \
69 receive_data using ($4 > 0 ? ($1 - t0) - ($4 / 2) : 1/0):(0.56):(morse_symbol(strcol(6))) with labels notitle, \
70 receive_data using (end_of_signal(strcol(6)) ? ($1 - t0) : 1/0):(0.61):(text_character(strcol(6), strcol(8))) with labels font "Courier,14" notitle, \