|
@@ -0,0 +1,365 @@
|
|
|
+<mxfile host="65bd71144e">
|
|
|
+ <diagram name="Page-1" id="_q9Hk0N0-nweOAnfAhH3">
|
|
|
+ <mxGraphModel dx="2338" dy="1064" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" background="none" math="0" shadow="0">
|
|
|
+ <root>
|
|
|
+ <mxCell id="0"/>
|
|
|
+ <mxCell id="1" parent="0"/>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-1" value="" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;" parent="1" source="PJICHrniSQ2v9oinf_Ty-2" target="PJICHrniSQ2v9oinf_Ty-4" edge="1">
|
|
|
+ <mxGeometry relative="1" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-2" value="<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space: pre;">RecordThread</span><div style="text-align: left;">录音线程,获取到原始数据SrcData</div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;align=center;" parent="1" vertex="1">
|
|
|
+ <mxGeometry x="-278.75" y="90" width="175" height="90" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-4" value="<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space: pre;">AssignSrcDataThread</span><div style="text-align: left;">数据分发线程,将获取到的录音数据整理分发,有如下两种方式<br></div><div style="text-align: left;">1、直接实时分发</div><div style="text-align: left;">2、整理成1秒的数据进行分发</div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;align=center;" parent="1" vertex="1">
|
|
|
+ <mxGeometry x="-45" y="90" width="222.5" height="90" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-5" value="" style="endArrow=classic;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="PJICHrniSQ2v9oinf_Ty-4" target="PJICHrniSQ2v9oinf_Ty-7" edge="1">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint y="260" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-140" y="330" as="targetPoint"/>
|
|
|
+ <Array as="points"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-7" value="<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space: pre;">CreateDBThread</span><div style="text-align: left;">1、将1秒的数据计算成音量,给静音、过载、反相计算线程使用</div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;align=center;" parent="1" vertex="1">
|
|
|
+ <mxGeometry x="-40.620000000000005" y="225" width="213.75" height="115" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-12" value="<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space: pre;">CreateRecordFileThread</span><div style="text-align: left;">1、录音线程,实时录制长音频</div><div style="text-align: left;">2、录制报警音频</div>" style="whiteSpace=wrap;html=1;rounded=1;fillColor=#d5e8d4;strokeColor=#82b366;align=center;" parent="1" vertex="1">
|
|
|
+ <mxGeometry x="240" y="225" width="192.5" height="110" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-13" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" source="PJICHrniSQ2v9oinf_Ty-4" target="PJICHrniSQ2v9oinf_Ty-12" edge="1">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="50" y="460" as="sourcePoint"/>
|
|
|
+ <mxPoint x="100" y="410" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-16" value="<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space: pre;">CalculateDBThread</span><div><div style="text-align: left;">计算音量线程,计算出静音、过载、反相的报警信息</div></div>" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
|
+ <mxGeometry x="-52.5" y="560" width="230" height="110" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-21" value="<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space: pre;">NoiseDetectThread</span><div style="line-height: 150%;"><div style="text-align: left;"><span style="background-color: light-dark(#ffffff, var(--ge-dark-color, #121212));"><font><span>噪音检测线程</span><span style="text-align: center;">调用三方动态库进行检测</span></font></span></div></div>" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1">
|
|
|
+ <mxGeometry x="-294.38" y="560" width="206.25" height="110" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="j5mIEffdRgkVqhNrF_-w-1" value="<div><div style="color: rgb(204, 204, 204); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; line-height: 22px; white-space: pre;"><span style="color: rgb(78, 201, 176);">CreateWAVThread</span></div></div><div style="text-align: left;">1、创建n秒的wav文件,给一致性比较线程使用</div><div style="text-align: left;">2、分离左右声道,给噪音检测线程使用</div>" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;align=center;" parent="1" vertex="1">
|
|
|
+ <mxGeometry x="-287.5" y="225" width="192.5" height="110" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="j5mIEffdRgkVqhNrF_-w-2" value="" style="endArrow=classic;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="PJICHrniSQ2v9oinf_Ty-4" target="j5mIEffdRgkVqhNrF_-w-1" edge="1">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-230" y="420" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-180" y="370" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="13" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;fillColor=#d5e8d4;strokeColor=#82b366;" edge="1" parent="1">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-320" y="380" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-320" y="380" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="460" y="380"/>
|
|
|
+ <mxPoint x="460" y="40"/>
|
|
|
+ <mxPoint x="-320" y="40"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="15" value="" style="shape=flexArrow;endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="19">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-460" y="325" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-320" y="210" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="19" value="<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space: pre;">ThreadManager</span><div style=""><font style="font-size: 16px;">录音管理线程,这个线程管理录音线程的创建和销毁,对比项线程会通知这个管理线程需要哪些录音通道,然后创建对应的录音线程,计算线程通过这里获取所需要的录音功能线程,从中获取数据</font></div>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;align=center;fillColor=#d5e8d4;strokeColor=#82b366;" vertex="1" parent="1">
|
|
|
+ <mxGeometry x="-714" y="140" width="300" height="150" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="20" value="<font style="font-size: 16px;">录音线程只有声卡信息,</font><span style="font-size: 16px; background-color: transparent;"><font>和对比项无关</font></span><div><div><font style="font-size: 16px;"><br></font></div></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
|
+ <mxGeometry x="-294.38" y="50" width="300" height="50" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="22" value="<span style="color: rgb(78, 201, 176); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space: pre;">CompareItemThread</span><div style="text-align: left;">对比项线程</div><div style="text-align: left;">1、这个线程开启计算线程,</div><div style="text-align: left;">2、获取实时音量值,报警信息等,将其组合成数据通过MQTT发送出去</div><div style="text-align: left;">3、这里控制计算线程的检测时间段等功能</div>" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
|
+ <mxGeometry x="-620" y="560" width="225" height="130" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="25" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="j5mIEffdRgkVqhNrF_-w-1" target="PJICHrniSQ2v9oinf_Ty-21">
|
|
|
+ <mxGeometry relative="1" as="geometry">
|
|
|
+ <mxPoint x="-278.75" y="490" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-178.75" y="490" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="28" value="获取分离的<div>左右声道数据</div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="25">
|
|
|
+ <mxGeometry x="-0.0614" relative="1" as="geometry">
|
|
|
+ <mxPoint y="-40" as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="29" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="PJICHrniSQ2v9oinf_Ty-7" target="PJICHrniSQ2v9oinf_Ty-16">
|
|
|
+ <mxGeometry relative="1" as="geometry">
|
|
|
+ <mxPoint x="-80" y="440" as="sourcePoint"/>
|
|
|
+ <mxPoint x="20" y="440" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="30" value="获取计算完成的<div>音量值数据</div>" style="edgeLabel;resizable=0;html=1;;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="29">
|
|
|
+ <mxGeometry relative="1" as="geometry">
|
|
|
+ <mxPoint x="-2" y="10" as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="31" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="j5mIEffdRgkVqhNrF_-w-1" target="PJICHrniSQ2v9oinf_Ty-22">
|
|
|
+ <mxGeometry relative="1" as="geometry">
|
|
|
+ <mxPoint x="76" y="350" as="sourcePoint"/>
|
|
|
+ <mxPoint x="73" y="570" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="-140" y="510"/>
|
|
|
+ <mxPoint x="180" y="510"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="33" value="" style="endArrow=none;dashed=1;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="PJICHrniSQ2v9oinf_Ty-21" target="PJICHrniSQ2v9oinf_Ty-12">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-50" y="500" as="sourcePoint"/>
|
|
|
+ <mxPoint y="450" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="-100" y="400"/>
|
|
|
+ <mxPoint x="336" y="400"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="35" value="" style="endArrow=none;dashed=1;html=1;exitX=0.75;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="PJICHrniSQ2v9oinf_Ty-16" target="PJICHrniSQ2v9oinf_Ty-12">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="140" y="510" as="sourcePoint"/>
|
|
|
+ <mxPoint x="130" y="390" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="120" y="400"/>
|
|
|
+ <mxPoint x="336" y="400"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="37" value="" style="endArrow=none;dashed=1;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="PJICHrniSQ2v9oinf_Ty-22" target="PJICHrniSQ2v9oinf_Ty-12">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="40" y="560" as="sourcePoint"/>
|
|
|
+ <mxPoint x="340" y="340" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="336" y="490"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="38" value="开启或结束<div>报警录音</div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="1">
|
|
|
+ <mxGeometry x="336.2475525499344" y="359.9999856666538" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="39" value="获取wav文件地址" style="edgeLabel;resizable=0;html=1;;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="1">
|
|
|
+ <mxGeometry x="170.0031400018288" y="509.9997468700874" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="41" value="" style="endArrow=classic;startArrow=classic;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="22" target="PJICHrniSQ2v9oinf_Ty-21">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-430" y="740" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-170" y="750" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="-451" y="760"/>
|
|
|
+ <mxPoint x="-191" y="760"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="53" value="<span style="color: rgb(18, 18, 18); font-size: 12px; background-color: rgb(211, 213, 214);">获取噪音检测结果</span>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="41">
|
|
|
+ <mxGeometry x="0.8029" y="2" relative="1" as="geometry">
|
|
|
+ <mxPoint x="13" y="-3" as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="42" value="" style="endArrow=classic;startArrow=classic;html=1;exitX=0.75;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" edge="1" parent="1" source="22" target="PJICHrniSQ2v9oinf_Ty-16">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-390" y="850" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-340" y="800" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="-451" y="760"/>
|
|
|
+ <mxPoint x="63" y="760"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="57" value="<span style="color: rgb(18, 18, 18); font-size: 12px; background-color: rgb(211, 213, 214);">获取静音、过载、反相结果</span>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="42">
|
|
|
+ <mxGeometry x="0.893" y="-1" relative="1" as="geometry">
|
|
|
+ <mxPoint as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="43" value="" style="endArrow=classic;startArrow=classic;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="22" target="PJICHrniSQ2v9oinf_Ty-22">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="290" y="790" as="sourcePoint"/>
|
|
|
+ <mxPoint x="340" y="740" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="-451" y="760"/>
|
|
|
+ <mxPoint x="370" y="760"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="56" value="<span style="color: rgb(18, 18, 18); font-size: 12px; background-color: rgb(211, 213, 214);">获取一致性检测结果</span>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="43">
|
|
|
+ <mxGeometry x="0.9067" relative="1" as="geometry">
|
|
|
+ <mxPoint as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="50" value="" style="endArrow=classic;html=1;entryX=1;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;" edge="1" parent="1" source="PJICHrniSQ2v9oinf_Ty-7" target="22">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-510" y="510" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-460" y="460" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="51" value="获取实时计算的音量数据" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="50">
|
|
|
+ <mxGeometry x="0.3216" y="-2" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-63" y="40" as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="59" value="<div><div style="color: rgb(204, 204, 204); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; line-height: 22px; white-space: pre;"><span style="color: rgb(78, 201, 176);">ThreadCompareItemManager</span></div></div><div style="text-align: left;"><span style="background-color: transparent;">对比项管理线程,定时获取数据库中的对比项信息,管理对比项</span></div>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1">
|
|
|
+ <mxGeometry x="-670" y="820" width="267.5" height="120" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="62" value="MQTT" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;fontSize=24;fillColor=#dae8fc;strokeColor=#6c8ebf;gradientColor=#7ea6e0;" vertex="1" parent="1">
|
|
|
+ <mxGeometry x="-640" y="1030" width="120" height="80" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="63" value="" style="endArrow=classic;html=1;exitX=0;exitY=0.75;exitDx=0;exitDy=0;entryX=0.16;entryY=0.55;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="22" target="62">
|
|
|
+ <mxGeometry relative="1" as="geometry">
|
|
|
+ <mxPoint x="-290" y="590" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-770" y="1030" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="-750" y="660"/>
|
|
|
+ <mxPoint x="-750" y="880"/>
|
|
|
+ <mxPoint x="-750" y="1074"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="99" value="<span><font>对比项信息,设置信息保留</font></span>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="63">
|
|
|
+ <mxGeometry x="-0.7407" y="-1" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-13" y="52" as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="65" value="" style="endArrow=classic;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.16;entryY=0.55;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="59" target="62">
|
|
|
+ <mxGeometry relative="1" as="geometry">
|
|
|
+ <mxPoint x="-570" y="1010" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-470" y="1010" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="-750" y="880"/>
|
|
|
+ <mxPoint x="-750" y="1074"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="98" value="<span><font>音量包</font></span>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="65">
|
|
|
+ <mxGeometry x="-0.8299" y="-1" relative="1" as="geometry">
|
|
|
+ <mxPoint as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="67" value="<div style="color: rgb(204, 204, 204); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; line-height: 22px; white-space: pre;"><span style="color: rgb(78, 201, 176);">RTPOneRoadThread</span></div><div style="text-align: left;">RTP发送数据线程,这个线程也是一个录音线程,RTP服务会设置客户端信息到这里,有客户端信息就接收分派线程的数据然后通过UDP发送给客户端</div>" style="whiteSpace=wrap;html=1;rounded=1;fillColor=#d5e8d4;strokeColor=#82b366;align=center;" vertex="1" parent="1">
|
|
|
+ <mxGeometry x="230" y="80" width="192.5" height="110" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="68" value="" style="endArrow=classic;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="PJICHrniSQ2v9oinf_Ty-4" target="67">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="380" y="190" as="sourcePoint"/>
|
|
|
+ <mxPoint x="430" y="140" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="73" value="" style="group" vertex="1" connectable="0" parent="1">
|
|
|
+ <mxGeometry x="220" y="555" width="300" height="115" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="PJICHrniSQ2v9oinf_Ty-22" value="<div style="font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; line-height: 22px; white-space: pre;"><span style="font-family: Helvetica; font-size: 12px; text-align: left; white-space: normal;"><font>一致性检测线程,调用第三方动态库检测主通道和次通道的一致性</font></span></div>" style="shape=process;whiteSpace=wrap;html=1;backgroundOutline=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontColor=light-dark(#000000,#000000);" parent="73" vertex="1">
|
|
|
+ <mxGeometry width="300" height="115" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="70" value="<span style="font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space-collapse: preserve; background-color: light-dark(rgb(255, 255, 255), rgb(210, 210, 210));"><font style="color: light-dark(rgb(6, 112, 90), rgb(6, 112, 90));">ConsistencyCompareThread</font></span>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="73">
|
|
|
+ <mxGeometry x="35" width="230" height="30" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="74" value="" style="group;" vertex="1" connectable="0" parent="1">
|
|
|
+ <mxGeometry x="530" y="80" width="260" height="140" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="75" value="" style="group;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" connectable="0" parent="74">
|
|
|
+ <mxGeometry x="0.0015151515151519135" width="260" height="140" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="71" value="1、RTP服务,监听客户端的连接,将客户端信息发送给RTPOneRoadThread线程<div>2、线程需要定时接收客户端心跳包,超时就踢客户端下线</div>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;align=center;fillColor=#fff2cc;strokeColor=#d6b656;" vertex="1" parent="75">
|
|
|
+ <mxGeometry width="260" height="140" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="72" value="<div style="color: rgb(204, 204, 204); background-color: rgb(31, 31, 31); font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; line-height: 22px; white-space-collapse: preserve;"><span style="color: #4ec9b0;">RTPServer</span></div>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="75">
|
|
|
+ <mxGeometry x="80.75757575757576" width="100" height="40" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="76" value="" style="endArrow=classic;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="72" target="67">
|
|
|
+ <mxGeometry relative="1" as="geometry">
|
|
|
+ <mxPoint x="610" y="690" as="sourcePoint"/>
|
|
|
+ <mxPoint x="710" y="690" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="78" value="<font>客户端信息</font><div><font>或心跳包</font></div>" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="76">
|
|
|
+ <mxGeometry x="-0.0223" y="2" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-30" y="-3" as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="81" value="" style="endArrow=none;dashed=1;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="79" target="PJICHrniSQ2v9oinf_Ty-21">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-130" y="810" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-220" y="810" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="20" y="840"/>
|
|
|
+ <mxPoint x="-140" y="840"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="86" value="写入报警数据" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="81">
|
|
|
+ <mxGeometry x="-0.1269" y="-2" relative="1" as="geometry">
|
|
|
+ <mxPoint x="128" y="12" as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="83" value="" style="group" vertex="1" connectable="0" parent="1">
|
|
|
+ <mxGeometry x="-170" y="870" width="380" height="150" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="79" value="<div style="font-family: Consolas, &quot;Courier New&quot;, monospace; line-height: 22px; white-space: pre;"><div style="scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); font-family: Helvetica; white-space: normal;"><div style="text-align: left; scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); font-family: Consolas, &quot;Courier New&quot;, monospace; line-height: 22px; white-space: pre;"><span style="font-family: Helvetica; white-space: normal;"><font>1、写数据库线程,这个线程接收各个计算线程发送过来的报警信息,将其写入数据库,单独有这个线程是为了防止网络差导致计算线程阻塞</font></span><font><span style="color: rgb(192, 192, 192); font-family: Helvetica; white-space: normal; background-color: transparent;"></span></font></div><div style="scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); font-family: Consolas, &quot;Courier New&quot;, monospace; line-height: 22px; white-space: pre;"><span style="font-family: Helvetica; white-space: normal; background-color: transparent;"><font>2、这个线程也负责定期删除录音文件和报警音频文件,文件路径是从数据库获取到的,在这里获取文件路径比较方便</font></span></div></div></div>" style="shape=hexagon;perimeter=hexagonPerimeter2;whiteSpace=wrap;html=1;fixedSize=1;movable=1;resizable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;fillColor=#ffcd28;gradientColor=#ffa500;strokeColor=#d79b00;align=center;" vertex="1" parent="83">
|
|
|
+ <mxGeometry width="380" height="150" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="80" value="<span style="font-family: Consolas, &quot;Courier New&quot;, monospace; font-size: 16px; white-space-collapse: preserve; background-color: light-dark(rgb(210, 210, 210), rgb(210, 210, 210));"><font style="color: light-dark(rgb(6, 112, 90), rgb(6, 112, 90));">ThreadWriteDBManager</font></span>" style="text;html=1;align=center;verticalAlign=middle;resizable=1;points=[];autosize=1;strokeColor=none;fillColor=none;movable=1;rotatable=1;deletable=1;editable=1;locked=0;connectable=1;" vertex="1" parent="83">
|
|
|
+ <mxGeometry x="75" y="8" width="200" height="30" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="84" value="" style="endArrow=none;dashed=1;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="79" target="PJICHrniSQ2v9oinf_Ty-16">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="40" y="840" as="sourcePoint"/>
|
|
|
+ <mxPoint x="90" y="790" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="20" y="840"/>
|
|
|
+ <mxPoint x="120" y="840"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="87" value="" style="endArrow=none;dashed=1;html=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="79" target="PJICHrniSQ2v9oinf_Ty-22">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="280" y="850" as="sourcePoint"/>
|
|
|
+ <mxPoint x="330" y="800" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="20" y="840"/>
|
|
|
+ <mxPoint x="445" y="840"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="93" value="<font style="font-size: 14px;">1、绿色是录音线程,获取音频后稍加处理</font><div style=""><font style="font-size: 14px;">2、蓝色是计算线程,从录音线程获取处理好的数据进行计算</font></div><div style=""><font style="font-size: 14px;">3、这两种线程都有对应的管理线程,由他们控制创建和销毁</font></div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" vertex="1" parent="1">
|
|
|
+ <mxGeometry x="360" y="990" width="400" height="60" as="geometry"/>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="94" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;fillColor=#dae8fc;strokeColor=#6c8ebf;" edge="1" parent="1">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-690" y="730" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-690" y="730" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="-690" y="500"/>
|
|
|
+ <mxPoint x="540" y="490"/>
|
|
|
+ <mxPoint x="540" y="730"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="95" value="" style="endArrow=classic;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="1" source="PJICHrniSQ2v9oinf_Ty-12" target="79">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="530" y="294.9999999999998" as="sourcePoint"/>
|
|
|
+ <mxPoint x="450" y="970" as="targetPoint"/>
|
|
|
+ <Array as="points">
|
|
|
+ <mxPoint x="620" y="280"/>
|
|
|
+ <mxPoint x="620" y="945"/>
|
|
|
+ </Array>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="96" value="写入录音文件信息" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];" vertex="1" connectable="0" parent="95">
|
|
|
+ <mxGeometry x="-0.6136" relative="1" as="geometry">
|
|
|
+ <mxPoint as="offset"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="97" value="" style="shape=flexArrow;endArrow=classic;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="59">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-560" y="790" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-536" y="730" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ <mxCell id="100" value="" style="endArrow=classic;html=1;entryX=0.25;entryY=1;entryDx=0;entryDy=0;exitX=0.375;exitY=0;exitDx=0;exitDy=0;" edge="1" parent="1" source="59" target="22">
|
|
|
+ <mxGeometry width="50" height="50" relative="1" as="geometry">
|
|
|
+ <mxPoint x="-640" y="790" as="sourcePoint"/>
|
|
|
+ <mxPoint x="-590" y="740" as="targetPoint"/>
|
|
|
+ </mxGeometry>
|
|
|
+ </mxCell>
|
|
|
+ </root>
|
|
|
+ </mxGraphModel>
|
|
|
+ </diagram>
|
|
|
+</mxfile>
|