#!/bin/sh
#############################################################
path="${0%/*}"
. "$path/inc/gwhw.inc"
. "$path/inc/dali.inc"

needRoot
daliI2COK

usage() {
	die 'gwhw dali shark [raw]'
}

OPT="${1:-parsed}"
shift
FNAME="${1:--}"
shift
#############################################################

read64() {
	while :; do
		echo "# START $(date +%s)"
		i2ctransfer -y "${DALI_BUS}" w1@"${DALI_ADDR}" 0x3c r68 \
		| sed -r 's/^(.{20})(.*)$/\1\2 \2/g' \
		| sed 's/\(.... .... .... ....\) /\1\n/g'
		usleep 200000
	done
}

filterNew() {
	"$path/inc/filter_new_shark.awk"
}

process64() {
	"$path/inc/format_raw_shark.awk" -v bidle=$1
}

capture() {
	if "$MSPDALI"; then
		mspdali --cap
		return
	fi

	read64 | filterNew
}

case "${OPT}" in
	parsed) capture | process64
	;;
	idle)   capture | process64 1
	;;
	raw)    capture
	;;
	# parse: first record with "raw" and parse later
	parse)   cat "${FNAME}" | process64
	;;
	parsei)  cat "${FNAME}" | process64 1
	;;
esac
