change unit from dW to W

r3783 | jgn | 2012-11-02 13:30:02 +1100 (Fri, 02 Nov 2012) | 1 line
This commit is contained in:
Jing Chen
2012-11-02 13:30:02 +11:00
committed by Douglas Clowes
parent e21b3eb135
commit 4e2ba8c458

View File

@@ -108,20 +108,22 @@ proc ::scobj::ag1010::setValue {tc_root nextState rdPara wrPara} {
broadcast "Error: The Limit for the Forward Power is 0~$ForPowerLimit dW"
return idle
} else {
set RPL [hval $ns/limits/ReversePower]
set data [format %04x%04x%04x%04x $newPara $RPL 0 0]
# scale W to dW
set FPL [expr int([hval $ns/limits/ForwardPower] * 10)]
set data [format %04x%04x%04x%04x $newPara $FPL 0 0]
}
}
"RPL" { if {$newPara > $RefPowerLimit || $newPara < 0} {
broadcast "Error: The Limit for the Reverse Power is 0~$RefPowerLimit dW"
return idle
} else {
set FPL [hval $ns/limits/ForwardPower]
set data [format %04x%04x%04x%04x $FPL $newPara 0 0]
# scale W to dW
set RPL [expr int([hval $ns/limits/ReversePower] * 10)]
set data [format %04x%04x%04x%04x $RPL $newPara 0 0]
}
}
"PAGC" { set data [format %04x $newPara] }
"PMGC" { set data [format %04x $newPara] }
"PAGC" { set data [expr [format %04x int($newPara * 10)]] }
"PMGC" { set data [expr [format %04x int($newPara * 10)]] }
"FREQ" { if {$newPara<$FreqDownLimit || $newPara>$FreqUpLimit} {
broadcast "Error: Freqence shall be set between $FreqDownLimit Hz and $FreqUpLimit Hz"
return idle
@@ -371,8 +373,7 @@ proc ::scobj::ag1010::rdValue {} {
set ns /sics/ag1010
#set ns [sct]
if {[ catch {
set curVal [sct result]
set data [string trim $curVal " "]
set data [string trim [sct result] " "]
hset $ns/responseMsg "$data"
#broadcast "rdValue : $data"
@@ -397,16 +398,19 @@ proc ::scobj::ag1010::rdValue {} {
set RPLH [string range $data 10 11]
set RPLL [string range $data 12 13]
hset $ns/limits/ForwardPower [format %d [expr 0x$FPLH$FPLL]]
hset $ns/limits/ReversePower [format %d [expr 0x$RPLH$RPLL]]
# scale dW to W
hset $ns/limits/ForwardPower [expr [format %d [expr 0x$FPLH$FPLL]]/10.0]
hset $ns/limits/ReversePower [expr [format %d [expr 0x$RPLH$RPLL]]/10.0]
}
3 { set AGCPoH [string range $data 6 7]
set AGCPoL [string range $data 8 9]
hset $ns/AGC/PAGC [format %d [expr 0x$AGCPoH$AGCPoL]]
# scale dW to W
hset $ns/AGC/PAGC [expr [[format %d [expr 0x$AGCPoH$AGCPoL]]/10.0]
}
4 { set MGCPoH [string range $data 6 7]
set MGCPoL [string range $data 8 9]
hset $ns/MGC/PMGC [format %d [expr 0x$MGCPoH$MGCPoL]]
#scale by 0.1
hset $ns/MGC/PMGC [expr [format %d [expr 0x$MGCPoH$MGCPoL]]/10.0]
}
5 { set FreqH [string range $data 6 7]
set FreqL [string range $data 8 9]
@@ -496,15 +500,17 @@ proc ::scobj::ag1010::rdValue {} {
}
14 { set FPH [string range $data 6 7]
set FPL [string range $data 8 9]
hset $ns/MEAS/ForwardPower [format %d [expr 0x$FPH$FPL]]
# sacle dW to W
hset $ns/MEAS/ForwardPower [expr [format %d [expr 0x$FPH$FPL]]/10.0]
# sacle dW to W
set RPH [string range $data 10 11]
set RPL [string range $data 12 13]
hset $ns/MEAS/ReversePower [format %d [expr 0x$RPH$RPL]]
hset $ns/MEAS/ReversePower [expr [format %d [expr 0x$RPH$RPL]]/10.0]
set TPH [string range $data 18 19]
set TPL [string range $data 20 21]
hset $ns/MEAS/Temperature [format %d [expr 0x$TPH$TPL / 26.4]]
hset $ns/MEAS/Temperature [expr [format %d [expr 0x$TPH$TPL]]/ 26.4]
}
15 { set MainState [format %d 0x[string range $data 6 7]]
switch $MainState {
@@ -582,13 +588,8 @@ proc ::scobj::ag1010::rdValue {} {
hset $ns/STA/keyState/Key3 "Off"
}
}
default { return -code error "Unexpected returned values from the device in rdValue()" }
}
if {$curVal != [sct oldval]} {
sct oldval $curVal
sct update $curVal
sct utime readtime
}
default { return -code error "Unexpected returned values from the device in rdValue()" }
}
} message ]} {
return -code error "Error in rdValue: $message."
}
@@ -627,9 +628,11 @@ proc createNode {scobj_hpath sct_controller cmdGroup varName readable writable p
}
hfactory $nodeName plain $permission $dataType
switch $dataType {
"int" {hsetprop $nodeName oldval 0}
"float" {hsetprop $nodeName oldval 0.0}
default {hsetprop $nodeName oldval UNKNOWN}
"none" {hset $nodeName none}
"text" {hset $nodeName UNKNOWN}
"int" {hset $nodeName 0}
"float" {hset $nodeName 0.0}
default {hset $nodeName UNKNOWN}
}
if {$readable == 1} {
hsetprop $nodeName read ${ns}::getValue $scobj_hpath $rdFunc $rdPara
@@ -718,12 +721,12 @@ proc ::scobj::ag1010::mkAG {argList} {
set deviceCommandToplevel {
P limits 1 0 1 1 none {} spy {2 18} {rdValue} {} {}
limits ForwardPower 0 0 0 1 int {dW} user {} {} {} {}
limits ReversePower 0 0 0 1 int {dW} user {} {} {} {}
limits ForwardPower 0 0 0 1 float {W} user {} {} {} {}
limits ReversePower 0 0 0 1 float {W} user {} {} {} {}
P AGC 1 0 1 1 none {} user {2 19} {rdValue} {} {}
AGC PAGC 0 0 0 1 int {dW} user {} {} {} {}
AGC PAGC 0 0 0 1 float {W} user {} {} {} {}
P MGC 1 0 1 1 none {} user {2 20} {rdValue} {} {}
MGC PMGC 0 0 0 1 int {dW} user {} {} {} {}
MGC PMGC 0 0 0 1 float {} user {} {} {} {}
P FRE 1 0 1 1 none {} user {2 21} {rdValue} {} {}
FRE FREQ 0 0 0 1 int {Hz} user {} {} {} {}
P SKEY 1 0 1 1 none {} spy {3 23} {rdValue} {} {}
@@ -746,10 +749,10 @@ proc ::scobj::ag1010::mkAG {argList} {
SVER SWVersion 0 0 0 1 text {} user {} {} {} {}
SVER DeviceVersion 0 0 0 1 text {} user {} {} {} {}
P MEAS 1 0 1 1 none {} spy {2 30} {rdValue} {} {}
MEAS ForwardPower 0 0 0 1 int {dW} user {} {} {} {}
MEAS ReversePower 0 0 0 1 int {dW} user {} {} {} {}
MEAS Temperature 0 0 0 1 int {0C} user {} {} {} {}
P STA 1 0 1 1 none {} spy {2 31} {rdValue} {} {}
MEAS ForwardPower 0 0 0 1 float {W} user {} {} {} {}
MEAS ReversePower 0 0 0 1 float {W} user {} {} {} {}
MEAS Temperature 0 0 0 1 float {0C} user {} {} {} {}
P STA 1 0 1 1 none {} spy {2 31} {rdValue} {} {}
STA MainState 0 0 0 1 text {} user {} {} {} {}
STA State 0 0 0 1 int {} user {} {} {} {}
STA/State FstRemote 0 0 0 1 text {} user {} {} {} {}
@@ -768,10 +771,10 @@ proc ::scobj::ag1010::mkAG {argList} {
P responseMsg 0 0 0 1 text {} spy {2 42} {} {} {}
P SetLimitsFPL 0 1 1 1 int {dW} user {10 2} {rdValue} {FPL} {}
P SetLimitsRPL 0 1 1 1 int {dW} user {10 2} {rdValue} {RPL} {}
P SetPAGC 0 1 1 1 int {dW} user {4 3} {rdValue} {PAGC} {}
P SetPMGC 0 1 1 1 int {dW} user {4 4} {rdValue} {PMGC} {}
P SetLimitsFPL 0 1 1 1 float {W} user {10 2} {rdValue} {FPL} {}
P SetLimitsRPL 0 1 1 1 float {W} user {10 2} {rdValue} {RPL} {}
P SetPAGC 0 1 1 1 float {W} user {4 3} {rdValue} {PAGC} {}
P SetPMGC 0 1 1 1 float {} user {4 4} {rdValue} {PMGC} {}
P SetFREQ 0 1 1 1 int {Hz} user {6 5} {rdValue} {FREQ} {}
P SetSoftOn 0 1 1 1 int {} user {3 7} {rdValue} {SoftOn} {1,0}
P SetKey1 0 1 1 1 int {} user {3 7} {rdValue} {Key1} {1,0}
@@ -838,7 +841,7 @@ namespace import ::scobj::ag1010::par
proc lf_pagc {{para ""} args} {
if {$para == ""} {
broadcast "[hget /instrument/ag1010/AGC/PAGC] dW"
broadcast "[hget /instrument/ag1010/AGC/PAGC] W"
} else {
set HEAD 0x96
set LEN 4
@@ -848,10 +851,12 @@ proc lf_pagc {{para ""} args} {
set ns /instrument/ag1010
set newPara [string trim $para " "]
# scale W to dW
set newPara [expr int($newPara * 10)]
set data [format %04x $newPara]
set cmd [format %02x%02x%02x%s%02x $HEAD $LEN $CTRL $data $CRC]
broadcast "Set Power Level for AGC mode to $newPara dW"
broadcast "Set Power Level for AGC mode to $newPara W"
sct_ag1010 send "$cmd"
}
}
@@ -859,7 +864,7 @@ proc lf_pagc {{para ""} args} {
proc lf_pmgc {{para ""} args} {
if {$para == ""} {
broadcast "[hget /instrument/ag1010/MGC/PMGC] dW"
broadcast "[hget /instrument/ag1010/MGC/PMGC]%"
} else {
set HEAD 0x96
set LEN 4
@@ -869,10 +874,12 @@ proc lf_pmgc {{para ""} args} {
set ns /instrument/ag1010
set newPara [string trim $para " "]
# scale by 10
set newPara [expr int($newPara * 10)]
set data [format %04x $newPara]
set cmd [format %02x%02x%02x%s%02x $HEAD $LEN $CTRL $data $CRC]
broadcast "Set Power Level for MGC mode to $newPara dW"
broadcast "Set Power Level for MGC mode to $newPara%"
sct_ag1010 send "$cmd"
}
}
@@ -932,8 +939,8 @@ proc lf_sweep_run {startF stepF scyc {mode 2} args} {
proc lf_limits {args} {
if {$args == ""} {
broadcast "[hget /instrument/ag1010/limits/ForwardPower] dW"
broadcast "[hget /instrument/ag1010/limits/ReversePower] dW"
broadcast "[hget /instrument/ag1010/limits/ForwardPower] W"
broadcast "[hget /instrument/ag1010/limits/ReversePower] W"
} else {
set HEAD 0x96
set LEN 10
@@ -945,21 +952,25 @@ proc lf_limits {args} {
foreach {arg val} $args {
switch $arg {
"FPL" { if {$val > 10040 || $val < 0} {
broadcast "Error: The Limit for the Forward Power is 0~10040 dW"
broadcast "Error: The Limit for the Forward Power is 0~10040 W"
} else {
set RPL [hval $ns/limits/ReversePower]
set data [format %04x%04x%04x%04x $val $RPL 0 0]
set FPL [hval $ns/limits/ForwardPower]
# scale W to dW
set FPL [expr int($FPL * 10)]
set data [format %04x%04x%04x%04x $val $FPL 0 0]
set cmd [format %02x%02x%02x%s%02x $HEAD $LEN $CTRL $data $CRC]
broadcast "Set Forward Power Limits to $val dW"
broadcast "Set Forward Power Limits to $val W"
sct_ag1010 send "$cmd"
}
}
"RPL" { if {$val > 1630 || $val < 0} {
broadcast "Error: The Limit for the Reflected Power is 0~1630 dW"
} else {
set FPL [hval $ns/limits/ForwardPower]
set data [format %04x%04x%04x%04x $FPL $val 0 0]
set RPL [hval $ns/limits/ReversePower]
# scale W to dW
set RPL [expr int($RPL * 10)]
set data [format %04x%04x%04x%04x $RPL $val 0 0]
set cmd [format %02x%02x%02x%s%02x $HEAD $LEN $CTRL $data $CRC]
broadcast "Set Reverse Power Limits to $val dW"
@@ -1075,15 +1086,15 @@ proc lf_sweep {args} {
broadcast "Set Step Frequency in Sweep Mode to $val Hz"
}
"scyc" { set SCyc $val
"np" { set np $val
broadcast "Set Number of Steps in Full Sweep Cycle to $val"
}
default { error "ERROR: $arg should be 'mode', 'startF', 'stepF' or 'scyc'" }
default { error "ERROR: $arg should be 'mode', 'startF', 'stepF' or 'np'" }
}
}
set data [format %02x%02x%02x%02x%02x%02x $SweepMode $SStr $SStp $SCyc $SStrHz $SStpHz]
set data [format %02x%02x%02x%02x%02x%02x $SweepMode $SStr $SStp $np $SStrHz $SStpHz]
set cmd [format %02x%02x%02x%s%02x $HEAD $LEN $CTRL $data $CRC]
sct_ag1010 send "$cmd"
}
@@ -1091,8 +1102,8 @@ proc lf_sweep {args} {
proc lf_meas {} {
broadcast "[hget /instrument/ag1010/MEAS/ForwardPower] dW"
broadcast "[hget /instrument/ag1010/MEAS/ReversePower] dW"
broadcast "[hget /instrument/ag1010/MEAS/ForwardPower] W"
broadcast "[hget /instrument/ag1010/MEAS/ReversePower] W"
broadcast "[hget /instrument/ag1010/MEAS/Temperature] Degree"
}
@@ -1112,15 +1123,13 @@ publish lf_sweep user
# @param turning if the parameter is turnable and can be set from the Gumtree
# @internal time internal in polling the nodes
# IP 137.157.202.219
# Following lines are sued to create the driver
#::scobj::ag1010::mkAG {
# name "ag1010"
# IP 137.157.202.219
# PORT 4001
# tuning 1
# interval 5
#}
::scobj::ag1010::mkAG {
name "ag1010"
IP 137.157.202.219
PORT 4001
tuning 1
interval 5
}