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" broadcast "Error: The Limit for the Forward Power is 0~$ForPowerLimit dW"
return idle return idle
} else { } else {
set RPL [hval $ns/limits/ReversePower] # scale W to dW
set data [format %04x%04x%04x%04x $newPara $RPL 0 0] 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} { "RPL" { if {$newPara > $RefPowerLimit || $newPara < 0} {
broadcast "Error: The Limit for the Reverse Power is 0~$RefPowerLimit dW" broadcast "Error: The Limit for the Reverse Power is 0~$RefPowerLimit dW"
return idle return idle
} else { } else {
set FPL [hval $ns/limits/ForwardPower] # scale W to dW
set data [format %04x%04x%04x%04x $FPL $newPara 0 0] 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] } "PAGC" { set data [expr [format %04x int($newPara * 10)]] }
"PMGC" { set data [format %04x $newPara] } "PMGC" { set data [expr [format %04x int($newPara * 10)]] }
"FREQ" { if {$newPara<$FreqDownLimit || $newPara>$FreqUpLimit} { "FREQ" { if {$newPara<$FreqDownLimit || $newPara>$FreqUpLimit} {
broadcast "Error: Freqence shall be set between $FreqDownLimit Hz and $FreqUpLimit Hz" broadcast "Error: Freqence shall be set between $FreqDownLimit Hz and $FreqUpLimit Hz"
return idle return idle
@@ -371,8 +373,7 @@ proc ::scobj::ag1010::rdValue {} {
set ns /sics/ag1010 set ns /sics/ag1010
#set ns [sct] #set ns [sct]
if {[ catch { if {[ catch {
set curVal [sct result] set data [string trim [sct result] " "]
set data [string trim $curVal " "]
hset $ns/responseMsg "$data" hset $ns/responseMsg "$data"
#broadcast "rdValue : $data" #broadcast "rdValue : $data"
@@ -397,16 +398,19 @@ proc ::scobj::ag1010::rdValue {} {
set RPLH [string range $data 10 11] set RPLH [string range $data 10 11]
set RPLL [string range $data 12 13] set RPLL [string range $data 12 13]
hset $ns/limits/ForwardPower [format %d [expr 0x$FPLH$FPLL]] # scale dW to W
hset $ns/limits/ReversePower [format %d [expr 0x$RPLH$RPLL]] 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] 3 { set AGCPoH [string range $data 6 7]
set AGCPoL [string range $data 8 9] 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] 4 { set MGCPoH [string range $data 6 7]
set MGCPoL [string range $data 8 9] 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] 5 { set FreqH [string range $data 6 7]
set FreqL [string range $data 8 9] set FreqL [string range $data 8 9]
@@ -496,15 +500,17 @@ proc ::scobj::ag1010::rdValue {} {
} }
14 { set FPH [string range $data 6 7] 14 { set FPH [string range $data 6 7]
set FPL [string range $data 8 9] 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 RPH [string range $data 10 11]
set RPL [string range $data 12 13] 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 TPH [string range $data 18 19]
set TPL [string range $data 20 21] 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]] 15 { set MainState [format %d 0x[string range $data 6 7]]
switch $MainState { switch $MainState {
@@ -584,11 +590,6 @@ proc ::scobj::ag1010::rdValue {} {
} }
default { return -code error "Unexpected returned values from the device in rdValue()" } 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
}
} message ]} { } message ]} {
return -code error "Error 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 hfactory $nodeName plain $permission $dataType
switch $dataType { switch $dataType {
"int" {hsetprop $nodeName oldval 0} "none" {hset $nodeName none}
"float" {hsetprop $nodeName oldval 0.0} "text" {hset $nodeName UNKNOWN}
default {hsetprop $nodeName oldval UNKNOWN} "int" {hset $nodeName 0}
"float" {hset $nodeName 0.0}
default {hset $nodeName UNKNOWN}
} }
if {$readable == 1} { if {$readable == 1} {
hsetprop $nodeName read ${ns}::getValue $scobj_hpath $rdFunc $rdPara hsetprop $nodeName read ${ns}::getValue $scobj_hpath $rdFunc $rdPara
@@ -718,12 +721,12 @@ proc ::scobj::ag1010::mkAG {argList} {
set deviceCommandToplevel { set deviceCommandToplevel {
P limits 1 0 1 1 none {} spy {2 18} {rdValue} {} {} P limits 1 0 1 1 none {} spy {2 18} {rdValue} {} {}
limits ForwardPower 0 0 0 1 int {dW} user {} {} {} {} limits ForwardPower 0 0 0 1 float {W} user {} {} {} {}
limits ReversePower 0 0 0 1 int {dW} user {} {} {} {} limits ReversePower 0 0 0 1 float {W} user {} {} {} {}
P AGC 1 0 1 1 none {} user {2 19} {rdValue} {} {} 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} {} {} 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} {} {} P FRE 1 0 1 1 none {} user {2 21} {rdValue} {} {}
FRE FREQ 0 0 0 1 int {Hz} user {} {} {} {} FRE FREQ 0 0 0 1 int {Hz} user {} {} {} {}
P SKEY 1 0 1 1 none {} spy {3 23} {rdValue} {} {} P SKEY 1 0 1 1 none {} spy {3 23} {rdValue} {} {}
@@ -746,9 +749,9 @@ proc ::scobj::ag1010::mkAG {argList} {
SVER SWVersion 0 0 0 1 text {} user {} {} {} {} SVER SWVersion 0 0 0 1 text {} user {} {} {} {}
SVER DeviceVersion 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} {} {} P MEAS 1 0 1 1 none {} spy {2 30} {rdValue} {} {}
MEAS ForwardPower 0 0 0 1 int {dW} user {} {} {} {} MEAS ForwardPower 0 0 0 1 float {W} user {} {} {} {}
MEAS ReversePower 0 0 0 1 int {dW} user {} {} {} {} MEAS ReversePower 0 0 0 1 float {W} user {} {} {} {}
MEAS Temperature 0 0 0 1 int {0C} user {} {} {} {} MEAS Temperature 0 0 0 1 float {0C} user {} {} {} {}
P STA 1 0 1 1 none {} spy {2 31} {rdValue} {} {} P STA 1 0 1 1 none {} spy {2 31} {rdValue} {} {}
STA MainState 0 0 0 1 text {} user {} {} {} {} STA MainState 0 0 0 1 text {} user {} {} {} {}
STA State 0 0 0 1 int {} user {} {} {} {} STA State 0 0 0 1 int {} user {} {} {} {}
@@ -768,10 +771,10 @@ proc ::scobj::ag1010::mkAG {argList} {
P responseMsg 0 0 0 1 text {} spy {2 42} {} {} {} P responseMsg 0 0 0 1 text {} spy {2 42} {} {} {}
P SetLimitsFPL 0 1 1 1 int {dW} user {10 2} {rdValue} {FPL} {} P SetLimitsFPL 0 1 1 1 float {W} user {10 2} {rdValue} {FPL} {}
P SetLimitsRPL 0 1 1 1 int {dW} user {10 2} {rdValue} {RPL} {} P SetLimitsRPL 0 1 1 1 float {W} user {10 2} {rdValue} {RPL} {}
P SetPAGC 0 1 1 1 int {dW} user {4 3} {rdValue} {PAGC} {} P SetPAGC 0 1 1 1 float {W} user {4 3} {rdValue} {PAGC} {}
P SetPMGC 0 1 1 1 int {dW} user {4 4} {rdValue} {PMGC} {} 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 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 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} 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} { proc lf_pagc {{para ""} args} {
if {$para == ""} { if {$para == ""} {
broadcast "[hget /instrument/ag1010/AGC/PAGC] dW" broadcast "[hget /instrument/ag1010/AGC/PAGC] W"
} else { } else {
set HEAD 0x96 set HEAD 0x96
set LEN 4 set LEN 4
@@ -848,10 +851,12 @@ proc lf_pagc {{para ""} args} {
set ns /instrument/ag1010 set ns /instrument/ag1010
set newPara [string trim $para " "] set newPara [string trim $para " "]
# scale W to dW
set newPara [expr int($newPara * 10)]
set data [format %04x $newPara] set data [format %04x $newPara]
set cmd [format %02x%02x%02x%s%02x $HEAD $LEN $CTRL $data $CRC] 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" sct_ag1010 send "$cmd"
} }
} }
@@ -859,7 +864,7 @@ proc lf_pagc {{para ""} args} {
proc lf_pmgc {{para ""} args} { proc lf_pmgc {{para ""} args} {
if {$para == ""} { if {$para == ""} {
broadcast "[hget /instrument/ag1010/MGC/PMGC] dW" broadcast "[hget /instrument/ag1010/MGC/PMGC]%"
} else { } else {
set HEAD 0x96 set HEAD 0x96
set LEN 4 set LEN 4
@@ -869,10 +874,12 @@ proc lf_pmgc {{para ""} args} {
set ns /instrument/ag1010 set ns /instrument/ag1010
set newPara [string trim $para " "] set newPara [string trim $para " "]
# scale by 10
set newPara [expr int($newPara * 10)]
set data [format %04x $newPara] set data [format %04x $newPara]
set cmd [format %02x%02x%02x%s%02x $HEAD $LEN $CTRL $data $CRC] 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" sct_ag1010 send "$cmd"
} }
} }
@@ -932,8 +939,8 @@ proc lf_sweep_run {startF stepF scyc {mode 2} args} {
proc lf_limits {args} { proc lf_limits {args} {
if {$args == ""} { if {$args == ""} {
broadcast "[hget /instrument/ag1010/limits/ForwardPower] dW" broadcast "[hget /instrument/ag1010/limits/ForwardPower] W"
broadcast "[hget /instrument/ag1010/limits/ReversePower] dW" broadcast "[hget /instrument/ag1010/limits/ReversePower] W"
} else { } else {
set HEAD 0x96 set HEAD 0x96
set LEN 10 set LEN 10
@@ -945,21 +952,25 @@ proc lf_limits {args} {
foreach {arg val} $args { foreach {arg val} $args {
switch $arg { switch $arg {
"FPL" { if {$val > 10040 || $val < 0} { "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 { } else {
set RPL [hval $ns/limits/ReversePower] set FPL [hval $ns/limits/ForwardPower]
set data [format %04x%04x%04x%04x $val $RPL 0 0] # 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] 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" sct_ag1010 send "$cmd"
} }
} }
"RPL" { if {$val > 1630 || $val < 0} { "RPL" { if {$val > 1630 || $val < 0} {
broadcast "Error: The Limit for the Reflected Power is 0~1630 dW" broadcast "Error: The Limit for the Reflected Power is 0~1630 dW"
} else { } else {
set FPL [hval $ns/limits/ForwardPower] set RPL [hval $ns/limits/ReversePower]
set data [format %04x%04x%04x%04x $FPL $val 0 0] # 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] set cmd [format %02x%02x%02x%s%02x $HEAD $LEN $CTRL $data $CRC]
broadcast "Set Reverse Power Limits to $val dW" 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" 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" 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] set cmd [format %02x%02x%02x%s%02x $HEAD $LEN $CTRL $data $CRC]
sct_ag1010 send "$cmd" sct_ag1010 send "$cmd"
} }
@@ -1091,8 +1102,8 @@ proc lf_sweep {args} {
proc lf_meas {} { proc lf_meas {} {
broadcast "[hget /instrument/ag1010/MEAS/ForwardPower] dW" broadcast "[hget /instrument/ag1010/MEAS/ForwardPower] W"
broadcast "[hget /instrument/ag1010/MEAS/ReversePower] dW" broadcast "[hget /instrument/ag1010/MEAS/ReversePower] W"
broadcast "[hget /instrument/ag1010/MEAS/Temperature] Degree" 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 # @param turning if the parameter is turnable and can be set from the Gumtree
# @internal time internal in polling the nodes # @internal time internal in polling the nodes
# IP 137.157.202.219 # IP 137.157.202.219
# Following lines are sued to create the driver ::scobj::ag1010::mkAG {
#::scobj::ag1010::mkAG { name "ag1010"
# name "ag1010" IP 137.157.202.219
# IP 137.157.202.219 PORT 4001
# PORT 4001 tuning 1
# tuning 1 interval 5
# interval 5 }
#}