Files
fl-knowledge/lark_doc_normal_calc.xml

97 lines
3.6 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<title>防雷计算-普通计算流程图与步骤说明</title>
<callout emoji="✅" background-color="light-green" border-color="green">
<p><b>结论:</b>普通计算是“建任务 → 启动任务 → 逐塔同步调用 DLL 计算 → 解析回写 → 标记完成”的串行流水线。</p>
<p>其中 DLL 调用在计算线程内同步等待返回,按杆塔逐个执行。</p>
</callout>
<h1>一、流程图(普通计算)</h1>
<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>
<h1>二、图外步骤说明</h1>
<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=1Finished1=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=1Complete=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>