2016-01-15 182 views
2

几个问题:为变量赋值给一个函数

  1. 我可以指定一个变量(regvalue)的函数(read_phy),如下的TCL?

    $regvalue = read_phy $phy 19 
    
  2. 我在Perl程序中有以下行。我试图找出应该是TCL相当于:

    while((read_phy($phy, 18) >> 15) ne 0) { usleep(10000); }; 
    

read_phy(TCL函数)看起来是这样的:

proc read_phy {phy register} { 

    $value = exec ./read_phy.pl $phy $register 
    string trim $value; 

    if { $::DEBUG } { 
     puts [format "Read PHY %s register %s = 0x%0.8X" $phy $register $value] 
    } 

    if { $::DEBUG } { 
     puts [format "Read PHY %s register %s = 0x%0.8X" $phy $register $value] 
    } 

    set hex $value 

    return ($value); 
} 
+0

read_phy看起来像什么(源代码)?你已经尝试了什么? – octopusgrabbus

+0

read_phy(tcl函数)如下所示:proc read_phy {phy register} { \t $ value = exec ./read_phy.pl $ phy $ register \t string trim $ value; 如果{$ :: DEBUG} { 看跌期权[格式 “读取PHY%S寄存器%S = 0X%0.8X” $ $ PHY寄存器$值] } 如果{$ :: DEBUG} { 看跌期权[格式“读PHY%寄存器%s = 0x%0.8X”$ phy $ register $ value] } set hex $ value \t return($ value); } – user3565150

+0

这听起来像是在问函数式编程问题,函数arities。如果没有,那么我不理解你的问题。 – octopusgrabbus

回答

3

1.

set regvalue [read_phy $phy 19] 

2。

while { ([read_phy $phy 18] >> 15) != 0} { after 10 } 

也是第2行read_phy的应该是:

set value [exec ./read_phy.pl $phy $register] 
set value [string trim $value] 

- 串装饰返回一个新的价值,它不会修改它的输入值。