Skip to content

yellow-radio/SQL_DEMO

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Industrial Inspection Simulation & Monitoring System (工業視覺檢測模擬與監控系統)

本專案實作了一套跨語言的工業檢測解決方案,包含 Python 端的數據生成模擬器C# .NET 端的實時監控看板。系統透過共享資料庫架構實作異質系統間的數據對接,並針對獨立發布環境進行了深度優化。


核心技術點

1. 跨進程數據交互與異質對接 (Cross-Process Communication)

系統採用 SQLite 作為輕量化中間層,實作 Python 生成端與 C# 監控端之解耦:

  • WAL 模式應用:啟用 Write-Ahead Logging 模式,確保 Python 端在高頻率寫入時,C# 端仍能進行非阻塞式讀取,解決多進程存取衝突。
  • 路徑動態定標:兩端程式均實作動態路徑獲取邏輯(AppDomain.CurrentDomain.BaseDirectorysys.executable),確保在獨立發布環境下資料庫路徑的絕對一致性。

2. Dapper ORM 映射與高效讀取

監控端捨棄傳統的 ADO.NET 繁瑣寫法,採用 Dapper 微型 ORM:

  • 物件映射 (Object Mapping):實作 InspectionLog 模型,將資料庫資料列自動映射為 C# 類別實例,簡化開發邏輯。
  • 統計聚合查詢:透過 SQL 預處理(如 SUM(CASE ...))實作良率統計,將計算壓力置於資料庫端,降低 UI 執行緒運算負擔。

3. 即時監控與 UI 刷新機制

實作高頻率輪詢(Polling)看板,呈現系統生產數據:

  • 狀態指紋識別:透過比對資料庫最新 Id 變動,實作 DataGridView 的智慧刷新,避免不必要的資料重啟動導致的 UI 閃爍與效能損耗。
  • 雙緩衝優化 (Double Buffering):針對大批量數據展示開啟雙緩衝技術,解決視窗縮放與數據滾動時的渲染殘影。

4. 獨立發布與環境封裝 (Self-Contained Deployment)

針對部署環境進行深度優化,確保跨平台運作的穩定性:

  • 自包含封裝 [Self-contained]:整合 .NET 執行環境至單一執行檔,移除對目標電腦 .NET 環境的依賴。
  • 原生庫提取 [Native DLL Extraction]:解決 SQLite 原生組件在單一檔案發布模式下無法載入的問題(Dll was not found),實作自動解壓載入邏輯。

專案功能架構

功能模組 技術實現 說明
數據生成器 (Simulator) Python / SQLite3 模擬工業相機檢測邏輯,定時產出分類結果與信心度數值。
數據存取層 (DAO) C# / Dapper 封裝 using 連線區塊,確保資料庫連線生命週期之確定性釋放。
統計面板 (Statistics) SQL Aggregation 實作良率計算公式:$$Yield = \frac{Pass\ Count}{Total\ Count}$$。
異常追蹤 (History) DataGridView 實作最新異常紀錄的自動回溯與清單展示。

檔案說明

  • log_generation_script.py:資料生成核心,包含 SQL 寫入邏輯與環境路徑判斷。
  • DataAccessObject.cs:資料服務層,負責與 SQLite 進行通訊並產出 Dapper 對映物件。
  • Form1.cs:UI 介面控制邏輯,負責 Timer 驅動之數據流刷新與異常捕捉。

About

本專案為基於 C# .NET WinForms 與 Python 開發的跨語言檢測監控系統。開發目標在於實作異質系統間的即時數據對接,透過 ANSI SQL (SQLite) 與 Dapper ORM 達成高頻率檢測數據的持久化與視覺化看板。

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors