原创 C#基於任務的異步模式開發教程

任務一般是一些比較耗時的操作(IO或者複雜計算),如果在主線程運行,將影響程序的流暢性。所以,我們一般會新建線程處理任務。.NET4開始引進了Task,它對Thread做了大量方便易用的封裝。我們將詳細講述Task的使用方法,以及各種多線

原创 多邊形擴展或收縮算法

如下圖所示,黑色多邊形是原多邊形,綠色多邊形是擴展多邊形,紅色多邊形是收縮多邊形。算法要實現的效果就是這樣。 首先,我們用一個點的數組表示多邊形,形如Point[] points。接下來是數學公式的推導,我們用向量法解決這個問題。 對於

原创 已知三角形頂點座標,求其外接圓的公式

三角形的外接圓,就是其圓心到三個頂點的距離都相等。設三角形的座標爲(x1,y1),(x2,y2),(x3,y3),圓心座標爲(x,y),那麼它們滿足以下方程組: (x-x1)^2+(y-y1)^2=(x-x2)^2+(y-y2)^2 (x

原创 基於OpenCvSharp的數字圖像處理 - 模糊、平滑、去噪

創建項目  |  文件與顯示  |  像素操作  |  圖像彩色類型轉換  |  模糊、平滑、去噪  |  銳化、邊緣檢測  |  二值化  |  形態學  |  位置變換  |  直方圖  |  霍夫變換  |  圖像優化  |  圖像

原创 基於OpenCvSharp的數字圖像處理 - 文件與顯示

創建項目  |  文件與顯示  |  像素操作  |  圖像彩色類型轉換  |  模糊、平滑、去噪  |  銳化、邊緣檢測  |  二值化  |  形態學  |  位置變換  |  直方圖  |  霍夫變換  |  圖像優化  |  圖像

原创 .NET開發WebSocket服務端

服務端: 1、新建一個ASP.NET Core Web應用程序。 2、NuGet安裝Microsoft.AspNetCore.WebSockets包。 3、在Startup類的Configue函數裏輸入以下代碼: app.UseWebS

原创 基於OpenCvSharp的數字圖像處理 - 像素操作

創建項目  |  文件與顯示  |  像素操作  |  圖像彩色類型轉換  |  模糊、平滑、去噪  |  銳化、邊緣檢測  |  二值化  |  形態學  |  位置變換  |  直方圖  |  霍夫變換  |  圖像優化  |  圖像

原创 工控系統設計(四)數據庫設計

四、數據庫設計 4.1 數據庫選用 考慮SQL Server、MySQL、SQLite這三款數據庫。 SQL Server和MySQL從性能來說,沒有實質性的差別。SQL Server是收費軟件,如果使用免費版,會有一些限制(例如數據庫大

原创 Cordova/Vue/Framework7使用HTML開發APP

首先需要下載模板文件。 在使用之前,我們需要先安裝好node.js、cnpm、cordova、JDK8(注意一定是8)、Android SDK。   安裝scss: cnpm install node-sass --save-dev cn

原创 跨平臺SCADA系統(組態軟件)開發6

六、服務端實現 6.1 概述 本章所說的服務端,是“儀器-工控機-服務器-客戶端”架構中的服務端,並不實現採集功能(採集功能已在前面的章節講述)。我們要實現的服務端是有高實時性的,當數據發生改變時,迅速地推送給客戶端。同時,客戶端上的反控

原创 跨平臺SCADA系統(組態軟件)開發2

二、數據模型 整個SCADA系統,其功能其實是對數據流動的控制,如下圖所示: (1)採集模塊是系統的入口,所有數據來自採集模塊。 (2)採集到的數據是實時變化的,而數據庫可能要求1分鐘或1小時存放一條數據,這時候需要對數據進行採樣。 (

原创 跨平臺SCADA系統(組態軟件)開發4

四、數據採集 採集功能是整個系統最核心的功能,完成了這一功能,其他部分便水到渠成。數據採集的需求包括: (1)儀器各種各樣,通信協議五花八門。 (2)軟件開發完成以後,能夠讓不懂代碼的人配置最終產品。 (3)使用多種鏈路,有些儀器共用一條

原创 跨平臺SCADA系統(組態軟件)開發1

一、系統概述 我在上年做了一些工控軟件開發的介紹(可參考我之前發過的博文),解決了兩個主要問題: 1、無需修改代碼,簡單配置,即可支持幾十上百種不同通訊協議的儀器。 2、開發了類似組態軟件的功能,像畫圖軟件一樣編輯一個流程圖,圖像元素能夠

原创 跨平臺SCADA系統(組態軟件)開發5

五、支持Web的組態軟件 事實上,整個組態功能就是在Web上開發的,而桌面軟件上顯示的組態界面,其實是加載瀏覽器內核完成的。 瀏覽器下的組態圖編輯界面: 桌面軟件中的組態圖編輯界面: 桌面軟件中的組態圖運行界面: /***** 1、

原创 跨平臺SCADA系統(組態軟件)開發3

三、模塊化開發 我們在第一章中提到,SCADA系統可能應用於不同的部署框架中,包括“儀器-工控機”、“儀器-工控機-服務器-客戶端”和“儀器-服務器-客戶端”。爲了應對這種情況,有兩種開發模式: 1、開發一個大的系統,然後通過配置項啓用或