Как создать параметр в иерархическом блоке, который ссылается на внешнюю / глобальную переменную? - PullRequest
0 голосов
/ 23 октября 2019

Многие блоки по умолчанию в GNU Radio Companion имеют свой параметр Sample Rate, установленный на samp_rate , и поэтому при добавлении блоков на холст они сразу принимают значение * 1003. * samp_rate переменная (при условии, конечно, что она существует).

Как при создании собственного иерархического блока мы можем указать, что параметр ссылается на внешнюю / глобальную переменную? Блок параметров принимает только значения.

1 Ответ

0 голосов
/ 07 ноября 2019

Не существует подходящего (несчастного) способа ссылки на «глобальную переменную» в коде.

Вы всегда можете получить доступ к .py блока и заставить его читать глобальную переменную.

Правильный способ сделать это - использовать блок параметров и ввести имя переменной в качестве значения. При редактировании иерархического блока блок параметров не может получить доступ к каким-либо переменным. Но вы все равно можете установить значение параметра в значение, равное значению переменной, и по умолчанию оно будет читать переменную на верхнем уровне с именем этой переменной.

Скажем, у вас есть параметр с именем "my_samp_rate". Вы можете установить его значение в samp_rate (без кавычек, не строки, а имени переменной). Внутри блока он не будет распознавать любое значение samp_rate (поскольку оно не было установлено).

ОДНАКО, когда вы помещаете новый блок в потоковую диаграмму, его значение по умолчанию (которое может быть изменено, обратите внимание) будетsamp_rate. Если в потоковом графе есть переменная со значением samp_rate, она будет считывать значение и передавать его в качестве параметра в блок. Таким образом, вы можете создать блок со значением, которое по умолчанию связано с переменной на верхнем уровне.

Хорошая вещь в этом подходе состоит в том, что он не принуждает никого, кто использует блоксделать это с помощью предложенной вами переменной. Это значение по умолчанию, но если вы хотите связать значение вашего параметра со значением другой переменной, оно полностью настраивается.

...