Использование Ubuntu. У меня есть потоковая диаграмма, которая работает в GNURadio, которая открывает файл (содержащий данные сигнала IQ) и отображает его на приемнике частоты QT GUI. Он отлично работает, когда я вручную загружаю файл gr c в gnuradio-companion и нажимаю зеленую стрелку GO. Однако я хочу, чтобы это запускалось из другой программы (C или Python, в зависимости от того, что работает). Я могу загрузить потоковую диаграмму, но не могу запустить ее.
По-видимому, требуется ввод с клавиатуры. Я пытался посылать ему команды, используя именованные каналы, а также пробовал это с 4 различными эмуляторами нажатия клавиш (клавиатура, pynput, xdotool, mkfifo), с запуском и без запуска под sudo (всегда в отдельном окне терминала). Компаньон GNURadio не реагирует ни на одну из моих попыток отправить ему нажатия клавиш для запуска потокового графа (т. Е. С помощью фактических клавиш можно использовать alt-r для вызова меню «Выполнить», клавишу «вниз» для перемещения вниз, чтобы выбрать «Выполнить»). и клавишу ввода, чтобы запустить его, и это работает). Я удостоверился, что при необходимости идентифицировал окно (вы можете сделать это с помощью функции поиска в xdotool, например; методы Python требуют, чтобы вы вручную выбирали окно gnuradio-companion).
Что мне не хватает? Использует ли GNURadio какой-либо тип окна linux, который ищет что-то отличное от стандартного ввода X-терминала?
Ниже приведен файл gr c, который я пытаюсь использовать. Файл, который я пытаюсь отобразить, был ранее сохранен gnuradio-companion (это IQIQIQ ..., 32-битный спектр с плавающей запятой).
options:
parameters:
author: ''
category: '[GRC Hier Blocks]'
cmake_opt: ''
comment: ''
copyright: ''
description: ''
gen_cmake: 'On'
gen_linking: dynamic
generate_options: qt_gui
hier_block_src_path: '.:'
id: A2
max_nouts: '0'
output_language: python
placement: (0,0)
qt_qss_theme: ''
realtime_scheduling: ''
run: 'True'
run_command: '{python} -u {filename}'
run_options: prompt
sizing_mode: fixed
thread_safe_setters: ''
title: showfile
window_size: ''
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [8, 8]
rotation: 0
state: enabled
blocks:
- name: samp_rate
id: variable
parameters:
comment: ''
value: '32000'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [184, 12]
rotation: 0
state: enabled
- name: blocks_file_source_0
id: blocks_file_source
parameters:
affinity: ''
alias: ''
begin_tag: pmt.PMT_NIL
comment: ''
file: /home/odroid/projects/signaldata/f3.dat
length: '0'
maxoutbuf: '0'
minoutbuf: '0'
offset: '0'
repeat: 'True'
type: float
vlen: '1024'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [200, 200.0]
rotation: 0
state: true
- name: blocks_throttle_0
id: blocks_throttle
parameters:
affinity: ''
alias: ''
comment: ''
ignoretag: 'True'
maxoutbuf: '0'
minoutbuf: '0'
samples_per_second: samp_rate
type: float
vlen: '1024'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [440, 204.0]
rotation: 0
state: true
- name: qtgui_vector_sink_f_0
id: qtgui_vector_sink_f
parameters:
affinity: ''
alias: ''
alpha1: '1.0'
alpha10: '1.0'
alpha2: '1.0'
alpha3: '1.0'
alpha4: '1.0'
alpha5: '1.0'
alpha6: '1.0'
alpha7: '1.0'
alpha8: '1.0'
alpha9: '1.0'
autoscale: 'False'
average: '1.0'
color1: '"blue"'
color10: '"dark blue"'
color2: '"red"'
color3: '"green"'
color4: '"black"'
color5: '"cyan"'
color6: '"magenta"'
color7: '"yellow"'
color8: '"dark red"'
color9: '"dark green"'
comment: ''
grid: 'False'
gui_hint: ''
label1: ''
label10: ''
label2: ''
label3: ''
label4: ''
label5: ''
label6: ''
label7: ''
label8: ''
label9: ''
maxoutbuf: '0'
minoutbuf: '0'
name: '""'
nconnections: '1'
ref_level: '0'
showports: 'False'
update_time: '0.10'
vlen: '1024'
width1: '1'
width10: '1'
width2: '1'
width3: '1'
width4: '1'
width5: '1'
width6: '1'
width7: '1'
width8: '1'
width9: '1'
x_axis_label: '"x-Axis"'
x_start: '0'
x_step: '1.0'
x_units: '""'
y_axis_label: '"y-Axis"'
y_units: '""'
ymax: '2'
ymin: '-2'
states:
bus_sink: false
bus_source: false
bus_structure: null
coordinate: [800, 132.0]
rotation: 0
state: true
connections:
- [blocks_file_source_0, '0', blocks_throttle_0, '0']
- [blocks_throttle_0, '0', qtgui_vector_sink_f_0, '0']
metadata:
file_format: 1