Commit 675e0fb3 authored by a's avatar a
Browse files

waiting until the picture is taken, refactoring

parent ca6e908f
Loading
Loading
Loading
Loading
+28 −3
Original line number Diff line number Diff line
@@ -14,6 +14,11 @@ set -o pipefail # fail if any command in pipeline fails


get_JSON() {
	EXPECTED_RVAL=0
	if [ $# -eq 1 ]; then
		EXPECTED_RVAL=$1
	fi

	RESPONSE=''
	OPEN_BRACKETS=0

@@ -31,8 +36,8 @@ get_JSON() {
				echo "Received JSON: $RESPONSE" >&2

				# Assert the response contains '"rval":0'
				echo "$RESPONSE" | grep '"rval":0' >/dev/null || {
					echo 'Error: non-zero return value' >&2
				echo "$RESPONSE" | grep '"rval":'$EXPECTED_RVAL >/dev/null || {
					echo 'Error: unexpected return value' >&2
					false
				}
				break
@@ -41,11 +46,31 @@ get_JSON() {
	done
}

get_token() {
	echo '{"msg_id":257,"token":0}' && get_JSON
	TOKEN="$(echo \"$RESPONSE\" | sed 's/.*"param":\([0-9][0-9]*\).*/\1/')"
}

shoot() {
	echo '{"msg_id":4864,"token":'$TOKEN'}'

	get_JSON # "capture was enqueued"

	get_JSON 128 # "capture has finished"
	echo "$RESPONSE" | grep '"msg_id":8193' >/dev/null # assert "capture has finished" message id
	CAPTURED_FNAME=$(echo "$RESPONSE" | sed 's/.*"param":"//; s/".*//') # extract filename
	echo "Captured $CAPTURED_FNAME" >&2
}

# Commands to run on the camera
commander() {
	get_token
	shoot
}


# unused
commander_test() {
	# 01 Request a token/session id
	echo '{"msg_id":257,"token":0}' && get_JSON
	TOKEN="$(echo \"$RESPONSE\" | sed 's/.*"param":\([0-9][0-9]*\).*/\1/')"