HW/Radiation/Monitoring/Fluke451P/SWdevelop/OG/main.sh
#!/bin/sh
# PARAMETERS
gnome232_address="192.168.2.249"
socket_port="10001"
# UTILITY FUNCTIONS
send_command() {
echo -n "$1" | socat STDIN TCP:$gnome232_address:$socket_port
}
recv_data() {
socat -T 1 -u TCP:$gnome232_address:$socket_port$1 STDOUT
}
activate_measurement() {
send_command T
}
terminate_measurement() {
for i in `seq $1` ; do
send_command " "
sleep $2
done
}
get_integrated() {
send_command F
# terminate stream if "h" (in Sv/h in T mode) is encountered
recv_data ",escape=104" | sed -n -e 's/ MICRO/u/' -e 's/\(.*\) Sieverts integrated/\1/p'
}
make_icon() {
convert -size 150x120 -gravity center label:"${1}Sv" icon.png
}
save_integrated_value() {
value=""
while [ -z "$value" ] ; do
terminate_measurement 3 0.2
value=$(get_integrated)
done
echo $value > $1
activate_measurement
}
display_difference(){
cat $1 | read pre unit_pre
cat $1 | read post unit_post
diff=$(awk "BEGIN{print $post - $pre}")
echo $diff $unit > $3
make_icon "$diff $unit"
}
# EXECUTION
case $1 in
arming)
save_integrated_value pre_Sv
;;
acquisition)
save_integrated_value post_Sv
display_difference pre_Sv post_SV diff_Sv
;;
esac