- 下一站的同事 : 欸~你還要多久才可以過站?要不我先去尿尿?(流線式生產線,某一站停了,工件就無法到下一站)
- 設備工程師 : 你們港~塊~要量產了!!!!
- 設備工程師經理 : 不發一語的眼神怒視攻擊~~~
- 操作設備的阿姨 : 你這樣我很難用,你不能加OOXX#$%功能嗎?
- (最爽的)上一站的同事 : 你加油~我去尿尿了。(跑去納涼)
為了盡量減少面對這樣的壓力,並快速地增刪參數(改功能通常都會有參數變動),我寫了一些關於參數檔的通用程式,到目前為止,也應用在許多不同的設備上了。
以下將以範例方式介紹GeneralArgumentDialog相關功能 (下載範例)
1. 解壓縮範例後,打開TestGeneralArgumentDialog方案(base on vs2013 & .Net framework4),會看到如下圖,各類別說明如圖所示:
2. TestGeneralArgumentDialog是主要的測試專案(起始專案),另外一個就是參考的專案,如果要採用此參數檔案架構,可以直接引用此專案(GeneralArgumentDialog)或是build成dll來用。
3. 編譯完成後直接執行程式,可以看到如下圖的範例程式:
*分頁General Argument Tool Test: 直接存讀檔與ArgumentDialog操作演示
4. 經過泛型化的XML讀寫fun已經被簡化為以下:
1 2 3 4 | private void btnWriteToXml_Click(object sender , EventArgs e) { ArgumentBase.WriteToXml(Lib.GetUserDir() + @"\DataThree.xml" , dataThree); } |
1 2 3 4 | private void btnReadFromXml_Click(object sender , EventArgs e) { dataThree = ArgumentBase.ReadFromXml<DataThree>(Lib.GetUserDir() + @"\DataThree.xml"); } |
5. 透過ArgumentDialog操作/顯示屬性類別實體的操作 (觀察Class Instance即時修改資料)
code:
1 2 3 4 5 6 7 8 | private void btnShowDialogSave_Click(object sender , EventArgs e) { DataThree tmp = ArgumentBase.ShowDialog(dataThree , "Data Three" , 5 , dataThreeFilePath); if (tmp != null) { dataThree = tmp; } } |
------------------------------------------------------------------------------------------------------------
code:
1 2 3 4 5 6 7 8 | private void btnShowDialogSaveAs_Click(object sender , EventArgs e) { DataThree tmp = ArgumentBase.ShowDialog(dataThree , "Data Three" , 5 , ref dataThreeFilePath); if (tmp != null) { dataThree = tmp; } } |
code:
1 2 3 4 5 | private void btnShowDialogEditor_Click(object sender , EventArgs e) { //即時修改instance-不存檔 ArgumentBase.Show<DataThree>(dataThree , "Data Three" , 5); } |
------------------------------------------------------------------------------------------------------------
code:
1 2 3 4 5 | private void btnShowDialogViewer_Click(object sender , EventArgs e) { //純顯示 ArgumentBase.Viewer<DataThree>(dataThree , "Data Three" , 5); } |
........
......
....
.
恩.....
經過三小時才編好上述文章,這樣太累了,我決定偷懶用錄影的!!!
影片1: (範例程式)
影片2: (新增參數的方式)
結語:
本系列文章就到此結束了,看了一下紀錄,居然寫了一年多,好吧,就是偷懶的結果。不過也為了這次寫blog,把原有的程式碼做了整理,才發現有許多不合理處,現在也才知道,自己會寫是一回事,要寫成文章教學,又是另一回事。