#!/bin/sh
#
# nsmclen -- get cycle length from Rybak/Markin NSM simulation export files
#
# Usage: nsmclen [-w n] nsm-file ...
#
# where: -w n  selects waveform n for cycle length analysis (default 0)
#

wfnum=0
case "$1" in
-w)	shift; wfnum="$1" ; shift ;;
esac
if [ "$#" -lt 1 ]
then
	echo "Usage:  $0 [-w n] nsm-file ..." >&2
	exit 1
fi

Tdir=/tmp/nsmc$$
trap 'rm -rf $Tdir' 0
trap 'exit 1' 1 2 3 13 15
mkdir -p $Tdir

for file
do
	rm -f $Tdir/output.*
	nsm2run "$file" $Tdir/output 2>&1 |
		sed '/^Separating input into .*/d; /^ *$/d' >&2
#	out=`sysvecho "w${wfnum}\nscvadqqqqy\nscw${wfnum}\nqqslwn${wfnum}\nqqqsrs1.5s\nqqagwdb\nqyn" |
#		TERM=dumb DISPLAY= analysis $Tdir/output 2>/dev/null |
#		sed -n 's/^.* Avg cycle length: //p'`
	out=`sysvecho "w${wfnum}\nscvadqqqqy\nscw${wfnum}\nqqslwn${wfnum}\nqqqsrs1.5s\nqqsgnnqqagwvab\nqyn" |
		TERM=dumb DISPLAY= analysis $Tdir/output 2>/dev/null |
		sed -n -e 's/, *Amplitude: .*$//' \
		       -e 's/sec,/s,/' \
		       -e 's/s = /s=/' \
		       -e 's/^.* Avg cycle length: /Cycle: /p' \
		       -e 's/^ *\([-+0-9.e]*\) *(\([-+0-9.e]*\)) *|.*(.*) *|.*(.*).*/Burst: \1, s=\2/p' \
		       -e 's/^ *\([-+0-9.e]*\) *|[^()]*|[^()]*/Burst: \1/p' |
		tr '\012' '\011'`
	echo "$file:	$out"
done
