#!/bin/sh  
# \
exec oagtclsh "$0" "$@"

set t0 [clock clicks -millisec]

set auto_path [linsert $auto_path 0  /usr/local/oag/apps/lib/$env(HOST_ARCH)]
set auto_path [linsert $auto_path 0 /usr/local/oag/lib_patch/$env(HOST_ARCH)]

APSStandardSetup
set args $argv

set command0 ":WAVEFORM:DATA?"
set instName ""
set command ""
set ring PAR
APSParseArguments {command ring instName}


set errorMessage "Usage: $argv0 -command <command> \[-ring <SR|PAR> || -instName <ID address>]" 

if {![string length $command] } {
    puts stderr $errorMessage
    exit 1
}

if ![string length $instName] {
    switch $ring {
        SR {
            set instName "164.54.2.169"
            # set instName "164.54.0.253"
	    set instName "10.6.56.45"
        }
        PAR {
            set instName "164.54.2.252"
	    #par scope ID address changed to 10.6.56.31 10/5/2023 HS
	    set instName "10.6.56.31"
        }
        default {
            puts stderr "sendHP9000ScopeCommand: Invalid ring - $ring provided."
            exit 1
        }
    }
}

if {![string match {*.*.*.*} $instName]} {
    set string [exec net $instName]
    regexp {([0-9]*\.[0-9]*\.[0-9]*.[0-9]*)} $string dummy instName
}

set instrumentName $instName
set PeerPort 5025

if {[catch {socket $instrumentName $PeerPort} sid]} {
    puts "Error: Socket Could not be created: $sid"
    exit
}

fconfigure $sid -buffering line

puts $sid "$command"
if {[string index $command end]=="?"} {
    gets $sid response
    after 1000
    puts "$response"
}

puts $sid ":SYSTEM:ERROR?"
gets $sid response

#puts $response
if [string length $response] {
    if {[regexp ":SYST:ERR" $response]} {
        set response [lindex [split $response " "] 1]
       # puts $response
    }
    if {[regexp "No error" $response] || !$response } {
        #no error
    } else {
        puts stderr "Error for $command, error code=$response"
    }
}
#if $response {
#    puts stderr "Error for $command, error code=$response"
#}
close $sid
set t1 [clock clicks -millisec]
puts "spent [expr ($t1-$t0)/1000.0] seconds"

exit







