Я создал следующую процедуру для работы с симулятором базовой станции Agilent:
proc get_bss_parameter_value {bss parameter_string} {
global bss_array
set bss_str "$parameter_string?"
puts "String 1"
set bss_str "oa;$bss_array(gpib):$bss_str\r"
send "$bss_str"
expect {nopattern^}
puts "String 2"
set bss_str "en;$bss_array(gpib)"
puts "Sending bss_str: $bss_str"
send "$bss_str\r"
expect .*
set receive_buffer $expect_out(buffer)
puts "receive_buffer START: $receive_buffer"
puts "END"
return $receive_buffer
}
=============================================== =========
ВЫХОД:
Строка 1
>
оа; 05: СИС: APPL?
Строка 2
Отправка bss_str: en; 05
"CDMA 2000 Lab App T"
не может прочитать «Ожидаемо (буфер)»: такой переменной нет
во время выполнения
msgstr "установить receive_buffer $ wait_out (buffer)"
(процедура "get_bss_parameter_value" строка 20)
=============================================== =========
Если «. » заменяется на «» в вышеприведенном коде, это ВЫХОД:
Строка 1
>
оа; 05: СИС: APPL?
Строка 2
Отправка bss_str: en; 05
START:
receive_buffer
оа; 05: СИС: APPL
END
Текущее приложение
оа; 05: СИС: APPL
Проблема:
1) Я не могу получить значение «CDMA 2000 Lab App T» в переменной hope_out (buffer), которая должна соответствовать (из-за. *) Выводу устройства Agilent. Что-то не так с кодом?
2) В обоих случаях команда "en; 05" отправляется, но не отображается в stdout. Хотя мы можем увидеть ожидаемый результат в первом случае.