Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
colorEagleStdio
taskbus_course
提交
b17329f4
taskbus_course
项目概览
colorEagleStdio
/
taskbus_course
通知
25
Star
5
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
taskbus_course
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b17329f4
编写于
3月 17, 2024
作者:
丁劲犇
😸
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
加入确保仿真程序低延迟的策略
上级
04dd4fea
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
267 addition
and
236 deletion
+267
-236
projects/8psk_simulate.tbj
projects/8psk_simulate.tbj
+80
-74
projects/bpsk_simulate.tbj
projects/bpsk_simulate.tbj
+81
-75
projects/qpsk_simulate.tbj
projects/qpsk_simulate.tbj
+80
-74
src/a2psk_encap/function.json
src/a2psk_encap/function.json
+17
-12
src/a2psk_encap/main.cpp
src/a2psk_encap/main.cpp
+9
-1
未找到文件。
projects/8psk_simulate.tbj
浏览文件 @
b17329f4
...
...
@@ -11,8 +11,8 @@
"instance": {
"additional_args": "IND=1;OUTD=-1;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-pcapHub-Release/release
/pcapHub.exe",
"instance_value": 1
9
"exec": "
../modules/pcap_hub
/pcapHub.exe",
"instance_value": 1
},
"name": {
"name": "pcap_hub"
...
...
@@ -57,8 +57,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "modules/transform_fft.exe",
"instance_value": 2
0
"exec": "
../
modules/transform_fft.exe",
"instance_value": 2
},
"name": {
"name": "libfftw"
...
...
@@ -160,8 +160,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "modules/sink_plots.exe",
"instance_value":
21
"exec": "
../
modules/sink_plots.exe",
"instance_value":
3
},
"name": {
"name": "plots"
...
...
@@ -192,52 +192,6 @@
}
},
"mod3": {
"a2psk_encap": {
"input_subjects": {
"input": {
"instance_value": 1,
"tooltip": "package",
"type": "byte"
},
"water_mark": {
"instance_value": 7,
"tooltip": "water mark for uhd",
"type": "int"
}
},
"instance": {
"additional_args": "IND=4,3;OUTD=1;nice=2;",
"batchtime": 20,
"exec": "C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules/a2psk_encap.exe",
"instance_value": 22
},
"name": {
"name": "a2psk_encap"
},
"output_subjects": {
"output": {
"instance_value": 10,
"tooltip": "encap signal",
"type": "vector"
}
},
"parameters": {
"min_watermark": {
"default": 10000,
"instance_value": "1500",
"tooltip": "Min Watermark",
"type": "long long"
},
"mod_type": {
"default": 1,
"instance_value": "3",
"tooltip": "1:BPSK,2:QPSK,3:8PSK",
"type": "int"
}
}
}
},
"mod4": {
"a2psk_mod": {
"input_subjects": {
"input": {
...
...
@@ -249,8 +203,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a2psk_mod.exe",
"instance_value":
23
"exec": "
../course/a2psk
/a2psk_mod.exe",
"instance_value":
5
},
"name": {
"name": "a2psk_mod"
...
...
@@ -278,7 +232,7 @@
}
}
},
"mod
5
": {
"mod
4
": {
"a2psk_dem": {
"input_subjects": {
"input": {
...
...
@@ -290,8 +244,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a2psk_dem.exe",
"instance_value":
24
"exec": "
../course/a2psk
/a2psk_dem.exe",
"instance_value":
6
},
"name": {
"name": "a2psk_dem"
...
...
@@ -318,7 +272,7 @@
}
}
},
"mod
6
": {
"mod
5
": {
"a2psk_decap": {
"input_subjects": {
"input": {
...
...
@@ -330,8 +284,8 @@
"instance": {
"additional_args": "OUTD=-1;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a2psk_decap.exe",
"instance_value":
25
"exec": "
../course/a2psk
/a2psk_decap.exe",
"instance_value":
7
},
"name": {
"name": "a2psk_decap"
...
...
@@ -353,7 +307,7 @@
}
}
},
"mod
7
": {
"mod
6
": {
"a0_simplechannel": {
"input_subjects": {
"input": {
...
...
@@ -365,8 +319,8 @@
"instance": {
"additional_args": "OUTD=1,-2;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a0simplechannel.exe",
"instance_value":
26
"exec": "
../course/a0common
/a0simplechannel.exe",
"instance_value":
8
},
"name": {
"name": "a0_simplechannel"
...
...
@@ -411,7 +365,7 @@
}
}
},
"mod
8
": {
"mod
7
": {
"network_pcaphub": {
"input_subjects": {
"packin": {
...
...
@@ -423,8 +377,8 @@
"instance": {
"additional_args": "IND=1;OUTD=-1;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-pcapHub-Release/release
/pcapHub.exe",
"instance_value":
27
"exec": "
../modules/pcap_hub
/pcapHub.exe",
"instance_value":
9
},
"name": {
"name": "pcap_hub"
...
...
@@ -452,6 +406,58 @@
}
}
},
"mod8": {
"a2psk_encap": {
"input_subjects": {
"input": {
"instance_value": 1,
"tooltip": "package",
"type": "byte"
},
"water_mark": {
"instance_value": 7,
"tooltip": "water mark for uhd",
"type": "int"
}
},
"instance": {
"additional_args": "IND=4,2;nice=2;",
"batchtime": 20,
"exec": "../course/a2psk/a2psk_encap.exe",
"instance_value": 4
},
"name": {
"name": "a2psk_encap"
},
"output_subjects": {
"output": {
"instance_value": 10,
"tooltip": "encap signal",
"type": "vector"
}
},
"parameters": {
"min_watermark": {
"default": 10000,
"instance_value": "1500",
"tooltip": "Min Watermark",
"type": "long long"
},
"mod_type": {
"default": 1,
"instance_value": "3",
"tooltip": "1:BPSK,2:QPSK,3:8PSK",
"type": "int"
},
"produce_limit": {
"default": 0,
"instance_value": "1000",
"tooltip": "Sleep for each limit",
"type": "long long"
}
}
}
},
"pos0": {
"x": 2044,
"y": 1129
...
...
@@ -465,28 +471,28 @@
"y": 1554
},
"pos3": {
"x": 1721,
"y": 1314
},
"pos4": {
"x": 2013,
"y": 1544
},
"pos
5
": {
"pos
4
": {
"x": 2695,
"y": 1374
},
"pos
6
": {
"pos
5
": {
"x": 3007,
"y": 1176
},
"pos
7
": {
"pos
6
": {
"x": 2324,
"y": 1471
},
"pos
8
": {
"pos
7
": {
"x": 2533,
"y": 1130
},
"pos8": {
"x": 1796,
"y": 1306
},
"total_mods": 9
}
projects/bpsk_simulate.tbj
浏览文件 @
b17329f4
...
...
@@ -11,8 +11,8 @@
"instance": {
"additional_args": "IND=1;OUTD=-1;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-pcapHub-Release/release
/pcapHub.exe",
"instance_value":
80
"exec": "
../modules/pcap_hub
/pcapHub.exe",
"instance_value":
1
},
"name": {
"name": "pcap_hub"
...
...
@@ -57,8 +57,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "modules/transform_fft.exe",
"instance_value":
81
"exec": "
../
modules/transform_fft.exe",
"instance_value":
2
},
"name": {
"name": "libfftw"
...
...
@@ -160,8 +160,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "modules/sink_plots.exe",
"instance_value":
82
"exec": "
../
modules/sink_plots.exe",
"instance_value":
3
},
"name": {
"name": "plots"
...
...
@@ -192,52 +192,6 @@
}
},
"mod3": {
"a2psk_encap": {
"input_subjects": {
"input": {
"instance_value": 1,
"tooltip": "package",
"type": "byte"
},
"water_mark": {
"instance_value": 7,
"tooltip": "water mark for uhd",
"type": "int"
}
},
"instance": {
"additional_args": "IND=4,3;OUTD=1;nice=2;",
"batchtime": 20,
"exec": "C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules/a2psk_encap.exe",
"instance_value": 83
},
"name": {
"name": "a2psk_encap"
},
"output_subjects": {
"output": {
"instance_value": 10,
"tooltip": "encap signal",
"type": "vector"
}
},
"parameters": {
"min_watermark": {
"default": 10000,
"instance_value": "1500",
"tooltip": "Min Watermark",
"type": "long long"
},
"mod_type": {
"default": 1,
"instance_value": "1",
"tooltip": "1:BPSK,2:QPSK,3:8PSK",
"type": "int"
}
}
}
},
"mod4": {
"a2psk_mod": {
"input_subjects": {
"input": {
...
...
@@ -249,8 +203,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a2psk_mod.exe",
"instance_value":
84
"exec": "
../course/a2psk
/a2psk_mod.exe",
"instance_value":
5
},
"name": {
"name": "a2psk_mod"
...
...
@@ -278,7 +232,7 @@
}
}
},
"mod
5
": {
"mod
4
": {
"a2psk_dem": {
"input_subjects": {
"input": {
...
...
@@ -290,8 +244,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a2psk_dem.exe",
"instance_value":
85
"exec": "
../course/a2psk
/a2psk_dem.exe",
"instance_value":
6
},
"name": {
"name": "a2psk_dem"
...
...
@@ -318,7 +272,7 @@
}
}
},
"mod
6
": {
"mod
5
": {
"a2psk_decap": {
"input_subjects": {
"input": {
...
...
@@ -330,8 +284,8 @@
"instance": {
"additional_args": "OUTD=-1;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a2psk_decap.exe",
"instance_value":
86
"exec": "
../course/a2psk
/a2psk_decap.exe",
"instance_value":
7
},
"name": {
"name": "a2psk_decap"
...
...
@@ -346,14 +300,14 @@
"parameters": {
"mod_type": {
"default": 1,
"instance_value": "
1
",
"instance_value": "
3
",
"tooltip": "1=BPSK,2=QPSK,3=8PSK",
"type": "int"
}
}
}
},
"mod
7
": {
"mod
6
": {
"a0_simplechannel": {
"input_subjects": {
"input": {
...
...
@@ -365,8 +319,8 @@
"instance": {
"additional_args": "OUTD=1,-2;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a0simplechannel.exe",
"instance_value": 8
7
"exec": "
../course/a0common
/a0simplechannel.exe",
"instance_value": 8
},
"name": {
"name": "a0_simplechannel"
...
...
@@ -411,7 +365,7 @@
}
}
},
"mod
8
": {
"mod
7
": {
"network_pcaphub": {
"input_subjects": {
"packin": {
...
...
@@ -423,8 +377,8 @@
"instance": {
"additional_args": "IND=1;OUTD=-1;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-pcapHub-Release/release
/pcapHub.exe",
"instance_value":
88
"exec": "
../modules/pcap_hub
/pcapHub.exe",
"instance_value":
9
},
"name": {
"name": "pcap_hub"
...
...
@@ -452,6 +406,58 @@
}
}
},
"mod8": {
"a2psk_encap": {
"input_subjects": {
"input": {
"instance_value": 1,
"tooltip": "package",
"type": "byte"
},
"water_mark": {
"instance_value": 7,
"tooltip": "water mark for uhd",
"type": "int"
}
},
"instance": {
"additional_args": "IND=4,2;nice=2;",
"batchtime": 20,
"exec": "../course/a2psk/a2psk_encap.exe",
"instance_value": 4
},
"name": {
"name": "a2psk_encap"
},
"output_subjects": {
"output": {
"instance_value": 10,
"tooltip": "encap signal",
"type": "vector"
}
},
"parameters": {
"min_watermark": {
"default": 10000,
"instance_value": "1500",
"tooltip": "Min Watermark",
"type": "long long"
},
"mod_type": {
"default": 1,
"instance_value": "1",
"tooltip": "1:BPSK,2:QPSK,3:8PSK",
"type": "int"
},
"produce_limit": {
"default": 0,
"instance_value": "1000",
"tooltip": "Sleep for each limit",
"type": "long long"
}
}
}
},
"pos0": {
"x": 2044,
"y": 1129
...
...
@@ -465,28 +471,28 @@
"y": 1554
},
"pos3": {
"x": 1721,
"y": 1314
},
"pos4": {
"x": 2013,
"y": 1544
},
"pos
5
": {
"pos
4
": {
"x": 2695,
"y": 1374
},
"pos
6
": {
"pos
5
": {
"x": 3007,
"y": 1176
},
"pos
7
": {
"pos
6
": {
"x": 2324,
"y": 1471
},
"pos
8
": {
"pos
7
": {
"x": 2533,
"y": 1130
},
"pos8": {
"x": 1796,
"y": 1306
},
"total_mods": 9
}
projects/qpsk_simulate.tbj
浏览文件 @
b17329f4
...
...
@@ -11,8 +11,8 @@
"instance": {
"additional_args": "IND=1;OUTD=-1;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-pcapHub-Release/release
/pcapHub.exe",
"instance_value": 1
07
"exec": "
../modules/pcap_hub
/pcapHub.exe",
"instance_value": 1
},
"name": {
"name": "pcap_hub"
...
...
@@ -57,8 +57,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "modules/transform_fft.exe",
"instance_value":
108
"exec": "
../
modules/transform_fft.exe",
"instance_value":
2
},
"name": {
"name": "libfftw"
...
...
@@ -160,8 +160,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "modules/sink_plots.exe",
"instance_value":
109
"exec": "
../
modules/sink_plots.exe",
"instance_value":
3
},
"name": {
"name": "plots"
...
...
@@ -192,52 +192,6 @@
}
},
"mod3": {
"a2psk_encap": {
"input_subjects": {
"input": {
"instance_value": 1,
"tooltip": "package",
"type": "byte"
},
"water_mark": {
"instance_value": 7,
"tooltip": "water mark for uhd",
"type": "int"
}
},
"instance": {
"additional_args": "IND=4,3;OUTD=1;nice=2;",
"batchtime": 20,
"exec": "C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules/a2psk_encap.exe",
"instance_value": 110
},
"name": {
"name": "a2psk_encap"
},
"output_subjects": {
"output": {
"instance_value": 10,
"tooltip": "encap signal",
"type": "vector"
}
},
"parameters": {
"min_watermark": {
"default": 10000,
"instance_value": "1500",
"tooltip": "Min Watermark",
"type": "long long"
},
"mod_type": {
"default": 1,
"instance_value": "2",
"tooltip": "1:BPSK,2:QPSK,3:8PSK",
"type": "int"
}
}
}
},
"mod4": {
"a2psk_mod": {
"input_subjects": {
"input": {
...
...
@@ -249,8 +203,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a2psk_mod.exe",
"instance_value":
111
"exec": "
../course/a2psk
/a2psk_mod.exe",
"instance_value":
5
},
"name": {
"name": "a2psk_mod"
...
...
@@ -278,7 +232,7 @@
}
}
},
"mod
5
": {
"mod
4
": {
"a2psk_dem": {
"input_subjects": {
"input": {
...
...
@@ -290,8 +244,8 @@
"instance": {
"additional_args": "nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a2psk_dem.exe",
"instance_value":
112
"exec": "
../course/a2psk
/a2psk_dem.exe",
"instance_value":
6
},
"name": {
"name": "a2psk_dem"
...
...
@@ -318,7 +272,7 @@
}
}
},
"mod
6
": {
"mod
5
": {
"a2psk_decap": {
"input_subjects": {
"input": {
...
...
@@ -330,8 +284,8 @@
"instance": {
"additional_args": "OUTD=-1;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a2psk_decap.exe",
"instance_value":
113
"exec": "
../course/a2psk
/a2psk_decap.exe",
"instance_value":
7
},
"name": {
"name": "a2psk_decap"
...
...
@@ -353,7 +307,7 @@
}
}
},
"mod
7
": {
"mod
6
": {
"a0_simplechannel": {
"input_subjects": {
"input": {
...
...
@@ -365,8 +319,8 @@
"instance": {
"additional_args": "OUTD=1,-2;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-taskbus_course-Desktop_Qt_6-Release/modules
/a0simplechannel.exe",
"instance_value":
114
"exec": "
../course/a0common
/a0simplechannel.exe",
"instance_value":
8
},
"name": {
"name": "a0_simplechannel"
...
...
@@ -411,7 +365,7 @@
}
}
},
"mod
8
": {
"mod
7
": {
"network_pcaphub": {
"input_subjects": {
"packin": {
...
...
@@ -423,8 +377,8 @@
"instance": {
"additional_args": "IND=1;OUTD=-1;nice=2;",
"batchtime": 20,
"exec": "
C:/projects/build-pcapHub-Release/release
/pcapHub.exe",
"instance_value":
115
"exec": "
../modules/pcap_hub
/pcapHub.exe",
"instance_value":
9
},
"name": {
"name": "pcap_hub"
...
...
@@ -452,6 +406,58 @@
}
}
},
"mod8": {
"a2psk_encap": {
"input_subjects": {
"input": {
"instance_value": 1,
"tooltip": "package",
"type": "byte"
},
"water_mark": {
"instance_value": 7,
"tooltip": "water mark for uhd",
"type": "int"
}
},
"instance": {
"additional_args": "IND=4,2;nice=2;",
"batchtime": 20,
"exec": "../course/a2psk/a2psk_encap.exe",
"instance_value": 4
},
"name": {
"name": "a2psk_encap"
},
"output_subjects": {
"output": {
"instance_value": 10,
"tooltip": "encap signal",
"type": "vector"
}
},
"parameters": {
"min_watermark": {
"default": 10000,
"instance_value": "1500",
"tooltip": "Min Watermark",
"type": "long long"
},
"mod_type": {
"default": 1,
"instance_value": "2",
"tooltip": "1:BPSK,2:QPSK,3:8PSK",
"type": "int"
},
"produce_limit": {
"default": 0,
"instance_value": "1000",
"tooltip": "Sleep for each limit",
"type": "long long"
}
}
}
},
"pos0": {
"x": 2044,
"y": 1129
...
...
@@ -465,28 +471,28 @@
"y": 1554
},
"pos3": {
"x": 1721,
"y": 1314
},
"pos4": {
"x": 2013,
"y": 1544
},
"pos
5
": {
"pos
4
": {
"x": 2695,
"y": 1374
},
"pos
6
": {
"pos
5
": {
"x": 3007,
"y": 1176
},
"pos
7
": {
"pos
6
": {
"x": 2324,
"y": 1471
},
"pos
8
": {
"pos
7
": {
"x": 2533,
"y": 1130
},
"pos8": {
"x": 1796,
"y": 1306
},
"total_mods": 9
}
src/a2psk_encap/function.json
浏览文件 @
b17329f4
{
"a2psk_encap"
:{
"a2psk_encap"
:{
"name"
:
"a2psk_encap"
,
"parameters"
:{
"min_watermark"
:{
"type"
:
"long long"
,
"tooltip"
:
"Min Watermark"
,
"default"
:
10000
"min_watermark"
:{
"type"
:
"long long"
,
"tooltip"
:
"Min Watermark"
,
"default"
:
10000
},
"produce_limit"
:{
"type"
:
"long long"
,
"tooltip"
:
"Sleep for each limit"
,
"default"
:
0
},
"mod_type"
:{
"type"
:
"int"
,
...
...
@@ -15,21 +20,21 @@
},
"input_subjects"
:
{
"input"
:{
"input"
:{
"type"
:
"byte"
,
"tooltip"
:
"package"
},
"water_mark"
:{
},
"water_mark"
:{
"type"
:
"int"
,
"tooltip"
:
"water mark for uhd"
}
}
},
"output_subjects"
:{
"output"
:{
"type"
:
"vector"
,
"tooltip"
:
"encap signal"
}
}
}
}
}
}
}
src/a2psk_encap/main.cpp
浏览文件 @
b17329f4
...
...
@@ -86,12 +86,13 @@ int do_function(const cmdlineParser & args)
const
unsigned
int
i_watermark
=
args
.
toInt
(
"water_mark"
,
0
);
const
unsigned
int
sub_output
=
args
.
toInt
(
"output"
,
0
);
const
unsigned
int
mod_type
=
args
.
toInt
(
"mod_type"
,
1
);
const
unsigned
int
produce_limit
=
args
.
toInt
(
"produce_limit"
,
0
);
//Watermark feedback
const
long
long
minmark
=
args
.
toInt64
(
"min_watermark"
,
0
);
std
::
thread
send_thread
(
[
&
]()
->
void
{
unsigned
long
long
g_packs
=
0
,
g_dummy
=
0
;
unsigned
long
long
g_packs
=
0
,
g_dummy
=
0
,
total_bytes
=
0
;
while
(
false
==
bfinished
)
{
//水位控制
...
...
@@ -126,6 +127,13 @@ int do_function(const cmdlineParser & args)
out
=
alg_encap
(
pkdummy
,
mod_type
);
TASKBUS
::
push_subject
(
sub_output
,
instance
,
out
.
size
(),
out
.
data
());
++
g_dummy
;
total_bytes
+=
out
.
size
();
if
(
total_bytes
>
produce_limit
&&
produce_limit
>
0
)
{
total_bytes
=
0
;
QThread
::
msleep
(
1
);
}
}
else
QThread
::
msleep
(
10
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录