| | |
| | | ```mermaid |
| | | graph TD |
| | | Start([Start initkscan]) --> DisableCB[ScanDuplexCB.Enabled := False] |
| | | DisableCB --> CheckConfig{Scanner.IsConfigured?} |
| | | flowchart TD |
| | | Start([開始]) --> DisableUI[將雙面掃描勾選框設為停用] |
| | | DisableUI --> CheckConfig{掃描器是否已設定?} |
| | | |
| | | CheckConfig -- Yes --> TryOpen[try] |
| | | CheckConfig -- 是 --> TryOpen[嘗試開啟掃描來源 (OpenSource)] |
| | | CheckConfig -- 否 --> End([結束]) |
| | | |
| | | subgraph Try_Detect |
| | | TryOpen --> OpenSrc[Scanner.OpenSource] |
| | | OpenSrc --> CheckDuplex{Scanner.DuplexCap > 0?} |
| | | CheckDuplex -- Yes --> EnableCB[ScanDuplexCB.Enabled := True] |
| | | CheckDuplex -- No --> CatchErr |
| | | EnableCB --> CatchErr{發生異常?} |
| | | CatchErr -- Yes --> DataLoadErr[DataLoading False, True] --> ExitInit |
| | | end |
| | | TryOpen --> CheckDuplex{硬體是否支援雙面?} |
| | | CheckDuplex -- 是 (DuplexCap > 0) --> EnableUI[啟用雙面掃描勾選框] |
| | | CheckDuplex -- 否 --> CloseSource[關閉掃描來源] |
| | | |
| | | Try_Detect --> CloseSrc[Scanner.CloseSource] |
| | | CheckConfig -- No --> EndInit |
| | | CloseSrc --> EndInit |
| | | EndInit([End]) |
| | | EnableUI --> CloseSource |
| | | CloseSource --> End |
| | | |
| | | TryOpen -- 異常 --> StopLoading[呼叫 DataLoading 停止載入提示] --> End |
| | | ``` |