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

needRoot
daliI2COK

usage() {
	die 'gwhw dali level [short/group/br] [level/query]'
}

ADDR="${1:-0}"
shift
LEVEL="${1:-query}"
shift
#############################################################
queryLevel() {
	ADDR2="$(addrToHex "$ADDR")"
	daliTX3B 0x02 "${ADDR2}" 0xa0
	waitRX
	result="$(daliRX4B)"
	case "${result}" in
		0x2?*)
			hex="${result:15}"
			val="$(( ${hex} ))"
			printf "${hex}  ${val}\n"
			;;
		0x3?*)
			printf "No response\n"
			;;
		*)
			printf "Error\n"
	esac
}

setLevel() {
	ADDR2="$(addrToHex "$ADDR" 0)"
	LEVEL="$(( LEVEL ))"
	daliTX3B 0x00 "${ADDR2}" "${LEVEL}"
}

#############################################################

case "${LEVEL}" in
	q|query) queryLevel
	;;
	*) setLevel
	;;
esac
