98 lines
3.6 KiB
XML
98 lines
3.6 KiB
XML
<title>防雷计算-普通计算流程图与步骤说明</title>
|
||
<callout emoji="✅" background-color="light-green" border-color="green">
|
||
<p><b>结论:</b>普通计算是“建任务 → 启动任务 → 逐塔同步调用 DLL 计算 → 解析回写 → 标记完成”的串行流水线。</p>
|
||
<p>其中 DLL 调用在计算线程内同步等待返回,按杆塔逐个执行。</p>
|
||
</callout>
|
||
<h1>普通计算逻辑</h1>
|
||
<h2>流程图</h2>
|
||
<whiteboard type="mermaid">
|
||
flowchart TD
|
||
A[进入防雷计算页面] --> B[点击普通计算]
|
||
B --> C[填写参数并勾选包含杆塔]
|
||
C --> D{表单校验是否通过}
|
||
D -- 否 --> C1[提示错误并停留在表单]
|
||
D -- 是 --> E[构建TaskData mTypeCode=1]
|
||
E --> F[创建TaskDetail与ExTask]
|
||
F --> G[把任务回传主界面任务列表]
|
||
G --> H[用户点击开始]
|
||
H --> I[MyStart按类型分发到普通计算]
|
||
I --> J[写TaskOption.txt配置]
|
||
J --> K[逐ExTask逐杆塔拼接参数]
|
||
K --> L{是否规程法且全相装避雷器}
|
||
L -- 是 --> M[该塔结果记为 请换ATP方法]
|
||
L -- 否 --> N[同步调用DLL AllCall_CS]
|
||
N --> O[读取ResultTips并映射字段]
|
||
M --> P[回写杆塔结果与分级参数]
|
||
O --> P
|
||
P --> Q{是否还有下一杆塔}
|
||
Q -- 是 --> K
|
||
Q -- 否 --> R[置Finished1与Complete为1]
|
||
R --> S[结果可查看与导出]
|
||
</whiteboard>
|
||
<h2>图外步骤说明</h2>
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th background-color="light-gray">步骤</th>
|
||
<th background-color="light-gray">处理内容</th>
|
||
<th background-color="light-gray">关键数据/状态</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
<tr>
|
||
<td>1. 进入与发起</td>
|
||
<td>在“防雷计算”中进入“普通计算”对话框。</td>
|
||
<td>入口窗体:FormFangLeiJiSuan → Form_PuTongJiSuan</td>
|
||
</tr>
|
||
<tr>
|
||
<td>2. 表单校验</td>
|
||
<td>校验线路、任务名、方法选择、包含杆塔。</td>
|
||
<td>不通过则仅提示,不建任务</td>
|
||
</tr>
|
||
<tr>
|
||
<td>3. 任务组装</td>
|
||
<td>创建任务主数据并生成 ExTask,复制被勾选杆塔。</td>
|
||
<td>mTypeCode_Task=1,Finished1=0</td>
|
||
</tr>
|
||
<tr>
|
||
<td>4. 任务回传</td>
|
||
<td>把任务加入主界面任务列表并显示“开始/结果”按钮。</td>
|
||
<td>Add1TaskData + Add1TaskControl</td>
|
||
</tr>
|
||
<tr>
|
||
<td>5. 启动执行</td>
|
||
<td>点击开始后,后台线程调用 MyStart 并分发到普通计算。</td>
|
||
<td>MyStart_Finished1_PuTongJiSuan</td>
|
||
</tr>
|
||
<tr>
|
||
<td>6. 计算配置落盘</td>
|
||
<td>把方法索引、波形、闪络判据等写入 TaskOption.txt。</td>
|
||
<td>供 DLL 计算读取</td>
|
||
</tr>
|
||
<tr>
|
||
<td>7. 逐塔计算</td>
|
||
<td>逐杆塔拼参数;特殊分支下直接返回“请换ATP方法”,否则调用 DLL。</td>
|
||
<td>DLL: Invoke_CircuitLightningProtection_Base.dll</td>
|
||
</tr>
|
||
<tr>
|
||
<td>8. 结果解析回写</td>
|
||
<td>读取 ResultTips 映射字段,回写耐雷水平、跳闸率、风险等级等。</td>
|
||
<td>成功则普通计算结果=OK</td>
|
||
</tr>
|
||
<tr>
|
||
<td>9. 完成收口</td>
|
||
<td>全部杆塔处理后标记任务完成。</td>
|
||
<td>Finished1_PuTongJiSuan=1,Complete=1</td>
|
||
</tr>
|
||
<tr>
|
||
<td>10. 结果消费</td>
|
||
<td>可在结果窗口查看明细并导出 CSV/TXT。</td>
|
||
<td>展示/导出来自 TGanTaData 回写字段</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
<hr/>
|
||
<callout emoji="⚠️" background-color="light-yellow" border-color="yellow">
|
||
<p><b>注意:</b>DLL 调用为同步阻塞式,但运行在后台计算线程,不直接阻塞主界面 UI 线程。</p>
|
||
</callout>
|