# !/bin/sh
# the next line restarts using tclsh \
exec tclsh "$0" "$@"
#//#
# This program measures a slowly moving prism (with ATR) or
# any target at the same direction (without ATR)
# and writes the time and the measured values to standard output.
# Oriented total station is supposed.
#
# @param atr 0/1/2/3 measure without/with ATR/with ATR but no distance meas/lock single distance measurement (default 1)
# @param com name of RS-232 parameter file, optional (default leica.com)
# @param debuglevel 0/1/2 for debugging, optional (default 0)
#
#
Ulyses - an open source project to drive total stations and
# publish observation results
# GPL v2.0 license
# Copyright (C) 2010-2012 Zoltan Siki
# @author Daniel Moka
# @version 1.1
#//#
source global.tcl
source common.tcl
source leica.tcl
global argv argc
# Adding parameter 0/1 = measuring without distance(only angles) / measuring angles and distances too
set dist 1
if {$argc > 0} { set dist [lindex $argv 0] }
# Adding the 2nd parameter
set com "leica.com"
if {$argc > 1} {set com [lindex $argv 1]}
set debuglevel 0
if {$argc > 2} { set debuglevel [lindex $argv 2] }
# Open and set communication port
if {[OpenCom $com]} {
puts "Error opening communication port"
exit 1
}
if {$dist} {
SetEDMMode 0 ;# standard distance measurement
SetLock 0
SetATR 1
MoveRel 0 0 "RAD" 1 ;# target on prism with ATR
set res [Measure]
if {$dist == 3} {
SetLock 1 ;# lock on target
set systemTime [clock seconds] ;# set current time
# set res [Measure] ;# initial distance measurement
if {[llength $res] > 2} {
puts "[GetVal 7 $res] [GetVal 8 $res] [GetVal 9 $res] [clock format $systemTime -format %H:%M:%S]"
} else {
puts "*** $res [clock format $systemTime -format %H:%M:%S]"
}
}
} else {
SetATR 0
SetEDMMode 5
}
while {1} {
set systemTime [clock seconds] ;# set current time
switch -exact $dist {
0 {
# set res [GetAngles] ;# get angles only
set res [Measure] ;# distance measurement
}
1 {
MoveRel 0 0 "RAD" 1 ;# aim on target with ATR
set res [Measure] ;# distance measurement
}
2 {
MoveRel 0 0 "RAD" 1 ;# aim on target with ATR
set res [GetAngles] ;# get angles only
}
3 {
set res [GetAngles] ;# get angles only
}
}
# write data to standard output
if {[llength $res] >= 2} {
puts "[DMS [GetVal 7 $res]] [DMS [GetVal 8 $res]] [GetVal 9 $res] [clock format $systemTime -format %H:%M:%S]"
} else {
puts "*** $res [clock format $systemTime -format %H:%M:%S]"
}
}