Настройка и понимание GnuRadio QT GUI Vector Sink - PullRequest
1 голос
/ 12 января 2020

Я создал простую потоковую диаграмму GnuRadio в GNU Radio Companion 3.8, где я соединяю блок Vector Source (с вектором [1,2,3,4,5]) с QT GUI Vector Sink. Когда я запускаю потоковую диаграмму, я вижу две строки: одну, которая идет от 1 до 5 (как и ожидалось), и одну, которая абсолютно горизонтальна в нуле. Если установить опорный уровень в раковине на что-то другое, чем ноль (например, 1), что линия нулевых остатков (в дополнение к линии в качестве ссылки). Кроме того, легенда в правом верхнем углу содержит кнопки Min Hold и Max Hold. Пример показан ниже:

enter image description here

У меня есть несколько вопросов:

  1. Что это за ноль? Как мне избавиться от этого?
  2. Как мне избавиться от опций Мин и Макс. Удержание в правом верхнем углу графика?
  3. В целом, верно ли, что более тонкий контроль над форматирование графиков в GNURadio возможно при явном написании кода (скажем, на потоковой диаграмме на основе python) для визуализации графика вместо использования компаньона?

1 Ответ

1 голос
/ 18 января 2020

На векторном графике маркеры (линии горизонта) размещаются в «LowerIntensityLevel» и «UpperIntensityLevel». Кажется, что они оба в 0, если что-то не устанавливает их. В VectorDisplayPlot есть функции для установки уровней, но их ничто не вызывает. VectorDisplayPlot - это графический виджет на основе Qt, который отображает фактический график.

Эти маркеры по умолчанию включены. Что мне кажется неправильным, поскольку ничто не устанавливает их и они не имеют значения по умолчанию, поэтому кажется, что вы не захотите их, если не собираетесь их использовать.

Стиль линии, цвет и, если они включены или нет являются стилевыми свойствами VectorDisplayPlot. Тема «dark.qss» отключает их, но в теме по умолчанию они включены.

Таким образом, вы можете отключить их с помощью темы.

Важные части для темы:

VectorDisplayPlot {
    qproperty-marker_lower_intensity_visible: false;
    qproperty-marker_upper_intensity_visible: false;
    qproperty-marker_ref_level_visible: false;
}

Должна быть возможность создать файл .qss, содержащий только это. Получите GR C, чтобы использовать его с потоковым графиком в свойствах блока «Параметры» в разделе «Тема QSS». Строка «ref_level» необходима только для того, чтобы убрать маркер уровня ref go.

Example with upper, lower, and ref level markers off

VectorDisplayPlot является частным членом vector_sink, который является радиоблоком GNU, который используется. В vector_sink_impl я не вижу методов, которые когда-либо устанавливали бы верхние / нижние значения интенсивности, и, поскольку только этот класс имеет доступ к закрытому VectorDisplayPlot, нет другого способа установить их. Таким образом, эта функция полностью непригодна для любого кода (Python / C ++), использующего векторный приемник, намного меньше от GR C.

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

...