#!/bin/bash

source /etc/nodemecu.conf
source /opt/nodemecu/envs 
source $funciones 

test -z $nombre && exit
test -f $public_key || exit

uuid="$(uuid)"
marca_de_tiempo="$(date +%s)"


case $modo in
	test)
		funcion_datos_simulados
		;;
	sensores)
		funcion_datos_sensores
		;;
esac


# ARMADO DE FICHERO JSON

for i in $lecturas;do
case $i in
	id*)
		sensores="$sensores { $(echo \"id\":\"$(echo $i | cut -d ":" -f 2)\", \"sensores\": [ )"
	;;
	tp*)
		sensores="$sensores { $(echo \"type\": \"$(echo $i | cut -d ":" -f 2)\",)"
	;;
	vl*)
		sensores="$sensores $(echo \"value\": $(echo $i | cut -d ":" -f 2),)"
	;;
	un*)
		sensores="$sensores $(echo \"unit\": \"$(echo $i | cut -d ":" -f 2)\",)"
	;;
	er*)
		sensores="$sensores $(echo \"error\": $(echo $i | cut -d ":" -f 2) })"
	;;
	AD_SENSOR)
		sensores="$sensores,"
	;;
	AD_ARDUINO)
		sensores="$sensores]},"
	;;
	END)
		sensores="$sensores]}"
	;;
esac
done

sensores=$(echo $sensores | tr -d '[:blank:]')

json="{\"transaction_uuid\":\"$uuid\",\"serial_number\":\"$numero_serie\",\"public_key\":\"$(cat $public_key)\",\"controller_id\":\"$nombre\",\"timestamp\":\"$marca_de_tiempo\",\"error_code\":\"10\",\"coordinates\":{\"lat\":1,\"lng\":1},\"battery_status\":\"98\",\"sample\":\"0\",\"storage\":\"uso del almacenamiento\",\"arduinos\":[$sensores]}"

touch $lock
file=$(date +%Y%m%d%H%M%S -d @$marca_de_tiempo)-$uuid

if funcion_validador_json $json ;then
	echo $json > $registros/$file && rm $lock 
else
	echo "$(date +%Y-%m-%d-%H:%M:%S -d @$marca_de_tiempo) - No se pudo generar fichero json:" >> $log
	echo $json >> $log
	rm $lock
fi


