Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
不卤废丝
taskbus
提交
828805e9
taskbus
项目概览
不卤废丝
/
taskbus
与 Fork 源项目一致
Fork自
colorEagleStdio / taskbus
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
taskbus
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
828805e9
编写于
4月 19, 2022
作者:
M
manjaro-xfce
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
加入 FM 收音机信号接收与播放
上级
02671428
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
804 addition
and
13 deletion
+804
-13
modules/modules.pro
modules/modules.pro
+1
-0
modules/sinks/sink_soundcard/dialogsoundcard.ui
modules/sinks/sink_soundcard/dialogsoundcard.ui
+4
-4
modules/sources/source_soundcard/dialogsoundcard.ui
modules/sources/source_soundcard/dialogsoundcard.ui
+4
-4
modules/transforms/CMakeLists.txt
modules/transforms/CMakeLists.txt
+1
-0
modules/transforms/mod_fm_dem/CMakeLists.txt
modules/transforms/mod_fm_dem/CMakeLists.txt
+24
-0
modules/transforms/mod_fm_dem/info.qrc
modules/transforms/mod_fm_dem/info.qrc
+5
-0
modules/transforms/mod_fm_dem/main.cpp
modules/transforms/mod_fm_dem/main.cpp
+166
-0
modules/transforms/mod_fm_dem/mod_fm_dem.json
modules/transforms/mod_fm_dem/mod_fm_dem.json
+29
-0
modules/transforms/mod_fm_dem/mod_fm_dem.pro
modules/transforms/mod_fm_dem/mod_fm_dem.pro
+11
-0
modules/transforms/resample_pqfraction/resample_pqfraction.pro
...es/transforms/resample_pqfraction/resample_pqfraction.pro
+1
-1
modules/wrappers/wrapper_stdio/dlgwrpstdio.cpp
modules/wrappers/wrapper_stdio/dlgwrpstdio.cpp
+4
-4
projects/usrp_fm_emitter.tbj
projects/usrp_fm_emitter.tbj
+0
-0
projects/usrp_fm_reciever.tbj
projects/usrp_fm_reciever.tbj
+554
-0
未找到文件。
modules/modules.pro
浏览文件 @
828805e9
...
...
@@ -5,6 +5,7 @@ SUBDIRS += \
sources
/
source_plutosdr
\
transforms
/
transform_fft
\
transforms
/
mod_fm
\
transforms
/
mod_fm_dem
\
transforms
/
filter_fir
\
transforms
/
resample_pqfraction
\
sources
/
source_files
\
...
...
modules/sinks/sink_soundcard/dialogsoundcard.ui
浏览文件 @
828805e9
...
...
@@ -7,7 +7,7 @@
<x>
0
</x>
<y>
0
</y>
<width>
306
</width>
<height>
1
54
</height>
<height>
1
82
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
...
...
@@ -43,10 +43,10 @@
<number>
4000
</number>
</property>
<property
name=
"maximum"
>
<number>
192
000
</number>
<number>
500
000
</number>
</property>
<property
name=
"value"
>
<number>
4
80
00
</number>
<number>
4
41
00
</number>
</property>
</widget>
</item>
...
...
@@ -66,7 +66,7 @@
<number>
5
</number>
</property>
<property
name=
"value"
>
<number>
2
</number>
<number>
1
</number>
</property>
</widget>
</item>
...
...
modules/sources/source_soundcard/dialogsoundcard.ui
浏览文件 @
828805e9
...
...
@@ -7,7 +7,7 @@
<x>
0
</x>
<y>
0
</y>
<width>
306
</width>
<height>
1
54
</height>
<height>
1
82
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
...
...
@@ -43,10 +43,10 @@
<number>
4000
</number>
</property>
<property
name=
"maximum"
>
<number>
192
000
</number>
<number>
500
000
</number>
</property>
<property
name=
"value"
>
<number>
4
80
00
</number>
<number>
4
41
00
</number>
</property>
</widget>
</item>
...
...
@@ -66,7 +66,7 @@
<number>
5
</number>
</property>
<property
name=
"value"
>
<number>
2
</number>
<number>
1
</number>
</property>
</widget>
</item>
...
...
modules/transforms/CMakeLists.txt
浏览文件 @
828805e9
cmake_minimum_required
(
VERSION 3.5
)
add_subdirectory
(
mod_fm
)
add_subdirectory
(
mod_fm_dem
)
add_subdirectory
(
transform_fft
)
add_subdirectory
(
filter_fir
)
add_subdirectory
(
resample_pqfraction
)
\ No newline at end of file
modules/transforms/mod_fm_dem/CMakeLists.txt
0 → 100644
浏览文件 @
828805e9
cmake_minimum_required
(
VERSION 3.5
)
set
(
CMAKE_INCLUDE_CURRENT_DIR ON
)
set
(
CMAKE_AUTOUIC ON
)
set
(
CMAKE_AUTOMOC ON
)
set
(
CMAKE_AUTORCC ON
)
set
(
CMAKE_CXX_STANDARD 17
)
set
(
CMAKE_CXX_STANDARD_REQUIRED ON
)
find_package
(
QT NAMES Qt6 COMPONENTS Core REQUIRED
)
find_package
(
Qt
${
QT_VERSION_MAJOR
}
COMPONENTS Core REQUIRED
)
include_directories
(
${
TASKBUS_INTERFACEDIR
}
)
set
(
PRJ_SOURCES
main.cpp
info.qrc
)
#############Target======================
add_executable
(
mod_fm_dem
${
PRJ_SOURCES
}
)
target_link_libraries
(
mod_fm_dem Qt
${
QT_VERSION_MAJOR
}
::Core
)
modules/transforms/mod_fm_dem/info.qrc
0 → 100644
浏览文件 @
828805e9
<RCC>
<qresource prefix="/">
<file>mod_fm_dem.json</file>
</qresource>
</RCC>
modules/transforms/mod_fm_dem/main.cpp
0 → 100644
浏览文件 @
828805e9
#
include
<
QCoreApplication
>
#include <QVector>
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <cmath>
#include <string>
#include <QFile>
#include "cmdlineparser.h"
#include "tb_interface.h"
using
namespace
TASKBUS
;
const
int
OFFLINEDEBUG
=
0
;
//数据源方法
int
do_mod_fm_dem
(
const
cmdlineParser
&
args
);
//全局的终止标记
static
bool
bfinished
=
false
;
using
namespace
std
;
int
main
(
int
argc
,
char
*
argv
[])
{
QCoreApplication
a
(
argc
,
argv
);
//重要!设置输入输出为二进制!
init_client
();
//解释命令行
cmdlineParser
args
;
if
(
OFFLINEDEBUG
==
0
)
args
.
parser
(
argc
,
argv
);
else
{
FILE
*
old_stdin
,
*
old_stdout
;
auto
ars
=
debug
(
"/home/goldenhawking/projects/taskbus/bin_linux_64/bin/debug/pid4113"
,
&
old_stdin
,
&
old_stdout
);
args
.
parser
(
ars
);
}
int
ret
=
0
;
//每个模块要响应 --information参数,打印自己的功能定义字符串。或者提供一个json文件。
if
(
args
.
contains
(
"information"
))
{
QFile
fp
(
":/mod_fm_dem.json"
);
fp
.
open
(
QIODevice
::
ReadOnly
);
if
(
fp
.
isOpen
())
{
QByteArray
arr
=
fp
.
readAll
();
arr
.
push_back
(
'\0'
);
puts
(
arr
.
constData
());
fflush
(
stdout
);
}
return
0
;
}
else
if
(
args
.
contains
(
"function"
/*,"mod_fm"*/
))
//正常运行模式
{
ret
=
do_mod_fm_dem
(
args
);
}
else
{
fprintf
(
stderr
,
"Error:Function does not exits."
);
ret
=
-
1
;
}
return
ret
;
}
#define Pi 3.14159265354
int
do_mod_fm_dem
(
const
cmdlineParser
&
args
)
{
using
namespace
TASKBUS
;
int
res
=
0
;
//获得平台告诉自己的实例名
const
unsigned
int
instance
=
args
.
toInt
(
"instance"
,
0
);
const
unsigned
int
itmstamp_in
=
args
.
toUInt
(
"tmstamp_in"
,
0
);
const
unsigned
int
itmstamp_out
=
args
.
toUInt
(
"tmstamp_out"
,
0
);
const
unsigned
int
isig
=
args
.
toInt
(
"signal"
,
0
);
const
unsigned
int
osound
=
args
.
toInt
(
"sound"
,
0
);
//工作模式
try
{
//判断参数合法性
if
(
instance
==
0
)
throw
"function=quit;{
\"
error
\"
:
\"
instance is 0, quit.
\"
}"
;
int
failed_header
=
0
;
int
last_i
=
0
,
last_q
=
0
;
while
(
false
==
bfinished
)
{
subject_package_header
header
;
vector
<
unsigned
char
>
packagedta
=
pull_subject
(
&
header
);
if
(
is_valid_header
(
header
)
==
false
)
{
if
(
++
failed_header
>
16
)
bfinished
=
true
;
continue
;
}
if
(
is_control_subject
(
header
))
{
//收到命令进程退出的广播消息,退出
if
(
strstr
(
control_subject
(
header
,
packagedta
).
c_str
(),
"function=quit;"
)
!=
nullptr
)
bfinished
=
true
;
}
else
if
(
header
.
subject_id
==
itmstamp_in
)
{
const
unsigned
char
*
pdta
=
(
unsigned
char
*
)
packagedta
.
data
();
if
(
itmstamp_out
)
{
push_subject
(
itmstamp_out
,
instance
,
packagedta
.
size
(),
pdta
);
}
}
else
if
(
header
.
subject_id
==
isig
)
{
std
::
vector
<
short
>
vec_output
;
const
unsigned
char
*
pdta
=
packagedta
.
data
();
const
int
nPts
=
header
.
data_length
/
sizeof
(
short
)
/
2
;
const
short
(
*
pdata
)[
2
]
=
(
const
short
(
*
)[
2
])
pdta
;
for
(
int
j
=
0
;
j
<
nPts
;
++
j
)
{
//前后差分
int
curr_i
=
pdata
[
j
][
0
];
int
curr_q
=
pdata
[
j
][
1
];
//Diff for e(ja(t)) * e(-ja(t+1)), diff phase = freq
// (lastI + j*lastQ) * (currI - j * currQ)
int
diff_i
=
last_i
*
curr_i
+
last_q
*
curr_q
;
int
diff_q
=
last_q
*
curr_i
-
last_i
*
curr_q
;
double
angle
=
0
;
//计算角度
if
(
diff_i
==
0
)
angle
=
(
diff_q
>
0
)
?
Pi
/
2
:-
Pi
/
2
;
else
if
(
diff_i
>
0
)
angle
=
atan
(
diff_q
*
1.0
/
diff_i
);
else
if
(
diff_q
>=
0
)
angle
=
atan
(
diff_q
*
1.0
/
diff_i
)
+
Pi
;
else
angle
=
atan
(
diff_q
*
1.0
/
diff_i
)
-
Pi
;
last_i
=
curr_i
;
last_q
=
curr_q
;
vec_output
.
push_back
(
angle
/
Pi
*
4096
);
}
//播发
if
(
osound
)
{
push_subject
(
osound
,
instance
,
vec_output
.
size
()
*
2
,
(
unsigned
char
*
)
vec_output
.
data
()
);
}
}
}
}
catch
(
const
char
*
errMessage
)
{
//向所有部位广播,偶要退出。
push_subject
(
control_subect_id
(),
/*instance,broadcast_destin_id(),*/
0
,
errMessage
);
fprintf
(
stderr
,
"Error:%s."
,
errMessage
);
fflush
(
stderr
);
res
=
-
1
;
}
return
res
;
}
modules/transforms/mod_fm_dem/mod_fm_dem.json
0 → 100644
浏览文件 @
828805e9
{
"mod_fm_dem"
:{
"name"
:
"fm_dem"
,
"parameters"
:{
},
"input_subjects"
:
{
"signal"
:{
"type"
:
"vector"
,
"tooltip"
:
"fm signal"
},
"tmstamp_in"
:{
"type"
:
"unsigned long long"
,
"tooltip"
:
"tmstamp_in"
}
},
"output_subjects"
:{
"sound"
:{
"type"
:
"byte"
,
"tooltip"
:
"sound"
},
"tmstamp_out"
:{
"type"
:
"unsigned long long"
,
"tooltip"
:
"tmstamp_out"
}
}
}
}
modules/transforms/mod_fm_dem/mod_fm_dem.pro
0 → 100644
浏览文件 @
828805e9
TEMPLATE
=
app
QT
-=
gui
CONFIG
+=
c
++
11
console
CONFIG
-=
app_bundle
INCLUDEPATH
+=
..
/../../
tb_interface
DESTDIR
=
$$
OUT_PWD
/../../../
bin
/
modules
SOURCES
+=
\
main
.
cpp
RESOURCES
+=
\
info
.
qrc
\ No newline at end of file
modules/transforms/resample_pqfraction/resample_pqfraction.pro
浏览文件 @
828805e9
TEMPLATE
=
app
QT
-=
gui
CONFIG
+=
c
++
11
console
CONFIG
+=
c
++
20
console
CONFIG
-=
app_bundle
INCLUDEPATH
+=
..
/../../
tb_interface
DESTDIR
=
$$
OUT_PWD
/../../../
bin
/
modules
...
...
modules/wrappers/wrapper_stdio/dlgwrpstdio.cpp
浏览文件 @
828805e9
...
...
@@ -125,9 +125,9 @@ bool DlgWrpStdio::cmd_start()
return
false
;
const
QString
exe
=
ui
->
lineEdit_prgPath
->
text
();
const
QString
cmd
=
ui
->
lineEdit_parasec
->
text
();
//QStringList lstCmds = split_cmd(cmdline
);
QStringList
lstCmds
=
split_cmd
(
cmd
);
//m_process->setProgram(cmdlin
e);
m_process
->
setProgram
(
ex
e
);
//设置当前路径
QDir
::
setCurrent
(
ui
->
lineEdit_workingDir
->
text
());
...
...
@@ -152,11 +152,11 @@ bool DlgWrpStdio::cmd_start()
env
.
insert
(
skey
,
sval
);
}
m_process
->
setProcessEnvironment
(
env
);
//
m_process->setArguments(lstCmds);
m_process
->
setArguments
(
lstCmds
);
QString
command
=
exe
;
if
(
cmd
.
size
())
command
+=
" "
+
exe
;
m_process
->
sta
rtCommand
(
command
);
m_process
->
sta
te
(
);
return
true
;
}
...
...
projects/usrp_fm
radio
.tbj
→
projects/usrp_fm
_emitter
.tbj
浏览文件 @
828805e9
文件已移动
projects/usrp_fm_reciever.tbj
0 → 100644
浏览文件 @
828805e9
{
"mod0": {
"uhd_usrp_io": {
"input_subjects": {
"tx_time": {
"instance_value": "",
"tooltip": "tx_time",
"type": "uint64+double"
},
"wav_tx0": {
"instance_value": "",
"tooltip": "TX0",
"type": "short[2]"
},
"wav_tx1": {
"instance_value": "",
"tooltip": "TX1",
"type": "short[2]"
}
},
"instance": {
"additional_args": "nice=0;",
"exec": "modules/uhd_usrp_io",
"instance_value": 1
},
"name": {
"name": "UHD收发"
},
"output_subjects": {
"rx_time": {
"instance_value": 0,
"tooltip": "rx_time",
"type": "uint64+double"
},
"wav_rx0": {
"instance_value": 3,
"tooltip": "RX0",
"type": "short[2]"
},
"wav_rx1": {
"instance_value": "",
"tooltip": "RX1",
"type": "short[2]"
}
},
"parameters": {
"dev_args": {
"default": "",
"instance_value": "",
"tooltip": "设备初始化参数.",
"type": "string"
},
"rx_agc": {
"default": "0,0",
"instance_value": "0,0",
"range": "0=off,1=on",
"tooltip": "接收AGC开关",
"type": "int"
},
"rx_atn": {
"default": "RX2,RX2",
"instance_value": "RX2",
"range": "TX/RX,RX2",
"tooltip": "接收天线名称",
"type": "string"
},
"rx_bw": {
"default": "1.0,1.0",
"instance_value": "0.2,0.2",
"tooltip": "接收滤波器带宽(MHz)",
"type": "double"
},
"rx_channels": {
"default": "0,1",
"instance_value": "0",
"range": "0,1",
"tooltip": "接收各个通道号",
"type": "int"
},
"rx_gain": {
"default": "30.0,30.0",
"instance_value": "50",
"range": "0-100",
"tooltip": "接收增益(dB)",
"type": "double"
},
"rx_on": {
"default": "0",
"instance_value": "1",
"tooltip": "接收开关",
"type": "int"
},
"rx_rate": {
"default": 1,
"instance_value": "0.5",
"tooltip": "RX采样率(MHz)",
"type": "int"
},
"rx_rf": {
"default": "99.0,101.1",
"instance_value": "99.0",
"range": "0-6000",
"tooltip": "接收频率(MHz)",
"type": "double"
},
"tx_atn": {
"default": "TX/RX,TX/RX",
"instance_value": "TX/RX,TX/RX",
"tooltip": "发射天线名称",
"type": "string"
},
"tx_bw": {
"default": "1.0,1.0",
"instance_value": "1.0,1.0",
"tooltip": "发射滤波器带宽(MHz)",
"type": "double"
},
"tx_channels": {
"default": "0,1",
"instance_value": "0,1",
"tooltip": "发射各个通道",
"type": "int"
},
"tx_gain": {
"default": "30.0,30.0",
"instance_value": "30.0,30.0",
"range": "0-100",
"tooltip": "发射增益(dB)",
"type": "double"
},
"tx_on": {
"default": 0,
"instance_value": 0,
"tooltip": "发射开关",
"type": "int"
},
"tx_rate": {
"default": 1,
"instance_value": 1,
"tooltip": "TX采样率(MHz)",
"type": "int"
},
"tx_rf": {
"default": "200.0,203.0",
"instance_value": "200.0,203.0",
"range": "0-6000",
"tooltip": "发射频率(MHz)",
"type": "double"
}
}
}
},
"mod1": {
"transform_fft": {
"input_subjects": {
"signal": {
"instance_value": 8,
"tooltip": "signal",
"type": "byte"
},
"tmstamp_in": {
"instance_value": 0,
"tooltip": "tmstamp_in",
"type": "uint64"
}
},
"instance": {
"additional_args": "nice=0;",
"exec": "modules/transform_fft",
"instance_value": 2
},
"name": {
"name": "libfftw"
},
"output_subjects": {
"FFT": {
"instance_value": 4,
"tooltip": "FFT in dB",
"type": "vector"
},
"Spec": {
"instance_value": "",
"tooltip": "Spec in Complex",
"type": "vector"
},
"tmstamp_out": {
"instance_value": 0,
"tooltip": "tmstamp_out",
"type": "uint64"
}
},
"parameters": {
"channels": {
"default": 1,
"instance_value": 1,
"tooltip": "Channels",
"type": "int"
},
"fftsize": {
"default": 1024,
"instance_value": 1024,
"tooltip": "fft size",
"type": "int"
},
"input_type": {
"default": 0,
"instance_value": "1",
"tooltip": "0=Real,1=Complex",
"type": "int"
},
"sptype": {
"default": 0,
"instance_value": 0,
"range": {
"0": "16 bit Intel",
"1": "16 bit Moto",
"2": "int8",
"3": "uint8"
},
"tooltip": "sample point format",
"type": "enum"
}
}
}
},
"mod2": {
"sink_plots": {
"input_subjects": {
"plot0": {
"instance_value": 9,
"tooltip": "input0",
"type": "byte"
},
"plot1": {
"instance_value": 4,
"tooltip": "input1",
"type": "byte"
},
"plot2": {
"instance_value": "",
"tooltip": "input2",
"type": "byte"
},
"plot3": {
"instance_value": "",
"tooltip": "input3",
"type": "byte"
},
"plot4": {
"instance_value": "",
"tooltip": "input4",
"type": "byte"
}
},
"instance": {
"additional_args": "nice=0;",
"exec": "modules/sink_plots",
"instance_value": 3
},
"name": {
"name": "plots"
},
"parameters": {
"channels": {
"default": "1,1,1,1,1,1",
"instance_value": "0,0",
"range": {
"tip": "0:1d spectrogram 1: 1d wav or 2:2d xy"
},
"tooltip": "各路通道数",
"type": "string"
},
"datatypes": {
"default": "9,9,9,9,9",
"instance_value": "9,9,9,9,9",
"range": {
"value": "0:uint8 1:int8 2:uint16 3:int16 4:uint32 5:int32 6:uint64 7:int64 8:float 9:double"
},
"tooltip": "各路数据类型",
"type": "string"
}
},
"version": {
"version": "1,1,0"
}
}
},
"mod3": {
"resample_pqfraction": {
"input_subjects": {
"in": {
"instance_value": 3,
"tooltip": "Input",
"type": "byte"
},
"in_time": {
"instance_value": 1,
"tooltip": "Input timestamp",
"type": "timestamp"
}
},
"instance": {
"additional_args": "nice=0;",
"exec": "modules/resample_pqfraction",
"instance_value": 4
},
"name": {
"name": "resamplepq"
},
"output_subjects": {
"out": {
"instance_value": 8,
"tooltip": "Output",
"type": "vector"
},
"out_time": {
"instance_value": 0,
"tooltip": "Out timestamp",
"type": "timestamp"
}
},
"parameters": {
"np": {
"default": "1",
"instance_value": "200",
"range": "N",
"tooltip": "new rate",
"type": "int"
},
"nq": {
"default": "1",
"instance_value": "500",
"range": "N",
"tooltip": "old rate",
"type": "int"
},
"sptype": {
"default": 0,
"instance_value": 0,
"range": {
"0": "16 bit Intel",
"1": "16 bit Moto",
"2": "int8",
"3": "uint8"
},
"tooltip": "sample point format",
"type": "enum"
},
"type": {
"default": "1",
"instance_value": "1",
"range": "0:real,1:complex",
"tooltip": "type",
"type": "int"
}
}
}
},
"mod4": {
"sink_soundcard": {
"input_subjects": {
"timestamp_in": {
"instance_value": 0,
"tooltip": "timestamp ref",
"type": "uint64"
},
"wav": {
"instance_value": 5,
"tooltip": "Sample Points",
"type": "bytes"
}
},
"instance": {
"additional_args": "nice=0;",
"exec": "modules/sink_soundcard",
"instance_value": 5
},
"name": {
"name": "soundcard"
},
"parameters": {
"autostart": {
"default": 0,
"instance_value": "1",
"tooltip": "auto start",
"type": "int"
},
"channel": {
"default": 2,
"instance_value": "1",
"tooltip": "channels",
"type": "int"
},
"device": {
"default": "default",
"instance_value": "default",
"tooltip": "device name",
"type": "string"
},
"hide": {
"default": 0,
"instance_value": 0,
"tooltip": "hide window when start",
"type": "int"
},
"sample_rate": {
"default": 44100,
"instance_value": "48000",
"range": {
"desc": "8000~192000"
},
"tooltip": "sample rate (Hz)",
"type": "int"
}
}
}
},
"mod5": {
"mod_fm_dem": {
"input_subjects": {
"signal": {
"instance_value": 8,
"tooltip": "fm signal",
"type": "vector"
},
"tmstamp_in": {
"instance_value": 0,
"tooltip": "tmstamp_in",
"type": "unsigned long long"
}
},
"instance": {
"additional_args": "nice=0;",
"exec": "modules/mod_fm_dem",
"instance_value": 6
},
"name": {
"name": "fm_dem"
},
"output_subjects": {
"sound": {
"instance_value": 2,
"tooltip": "sound",
"type": "byte"
},
"tmstamp_out": {
"instance_value": 0,
"tooltip": "tmstamp_out",
"type": "unsigned long long"
}
}
}
},
"mod6": {
"resample_pqfraction": {
"input_subjects": {
"in": {
"instance_value": 2,
"tooltip": "Input",
"type": "byte"
},
"in_time": {
"instance_value": "",
"tooltip": "Input timestamp",
"type": "timestamp"
}
},
"instance": {
"additional_args": "nice=0;",
"exec": "modules/resample_pqfraction",
"instance_value": 7
},
"name": {
"name": "resamplepq"
},
"output_subjects": {
"out": {
"instance_value": 5,
"tooltip": "Output",
"type": "vector"
},
"out_time": {
"instance_value": "",
"tooltip": "Out timestamp",
"type": "timestamp"
}
},
"parameters": {
"np": {
"default": "1",
"instance_value": "48000",
"range": "N",
"tooltip": "new rate",
"type": "int"
},
"nq": {
"default": "1",
"instance_value": "200000",
"range": "N",
"tooltip": "old rate",
"type": "int"
},
"sptype": {
"default": 0,
"instance_value": 0,
"range": {
"0": "16 bit Intel",
"1": "16 bit Moto",
"2": "int8",
"3": "uint8"
},
"tooltip": "sample point format",
"type": "enum"
},
"type": {
"default": "1",
"instance_value": "1",
"range": "0:real,1:complex",
"tooltip": "type",
"type": "int"
}
}
}
},
"pos0": {
"x": 1519,
"y": 1375
},
"pos1": {
"x": 2078,
"y": 1340
},
"pos2": {
"x": 2383,
"y": 1327
},
"pos3": {
"x": 1805,
"y": 1467
},
"pos4": {
"x": 2649,
"y": 1414
},
"pos5": {
"x": 2085,
"y": 1511
},
"pos6": {
"x": 2378,
"y": 1518
},
"total_mods": 7
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录