2009年10月16日 星期五

My Scope

有通用訊號處理工具,當然也是要有"擷取訊號的工具"阿~~

我使用研華的USB-4761多功能資料擷取模組,
及它所提供的SDK開發了一套"示波器軟體",
目前就只有訊號顯示的功能,持續開發中....
先來看一下實際的擷取/顯示狀況!

2009年10月13日 星期二

General Signal Process Tool

從研究所到職場,都是在做影像/訊號處理相關的題目,
以影像處理而言,要開發一個檢測系統(軟體),
通常會使用現成的套裝軟體,如Matlab, NI Vision,
Matrox Inspector...等工具來進行前期的驗證測試,
等到確定初步的處理流程後,才會開始動手寫效率較高且專用的程式。
在此過程中,許多工程師會開始建立自己常用的影像處理/辨識函式庫,
達到Codes reuse的作用!!

我利用工作空閑的時間,著手開發一套
"通用型訊號處理軟體(General Signal Process Tool)",
目的就是將一些常用的功能,如基本數學運算, 時間域濾波,
多項式迴歸, 統計數值計算, AOI...等功能整理成函式庫(C++),
並寫一個簡易的UI,希望能輔助主系統的驗證與各種訊號處理的應用。
目前還在開發中....工作截圖如下:

工作週年紀念日

今天...就是今天....工作期滿一年囉!!
這一年到底做了什麼,成長了多少,浪費了多少時間?
的確值得紀錄一下。

工作上:
1. 負責的案子已拿到PO,希望能順利驗收與收款~
2. 新開發的案子是未接觸過的領域,要加緊腳步~

技能上:
1. 利用空閒時間,開發了一個通用版的訊號處理軟體,還再陸續加入功能與函式庫建立中...
2. 學到了許多Team work(與不同領域的同事)和如何與廠商或客戶應對

生活上:
1. 買了一棟位於桃園市的房子,希望能和琳一起奮鬥(為了兩年後的大事)!!
2. 沒有變瘦...

這個部落格希望能持續維持更新阿~~!!!

Ya~~九月也空空空~~

空空九月!!

2009年9月1日 星期二

2009年6月2日 星期二

BCB的 #pragma hdrstop ? 加速編譯速度的好幫手!

軟體工程師或程式設計師真的不好當! 會寫程式的人是滿山滿海, 但真正會欣賞程式是門美妙藝術的人, 我想就不多了...(我要慢慢地去欣賞它)

這個頭好像開得太大太遠了, 先拉回這篇文章的重點. 正所謂"工欲善其事, 必先利其器", 寫程式會遇到的一個問題就是編譯(Compiler)時間, 一開始程式碼少沒甚麼感覺, 一旦越寫越大(越寫越亂...XD)時, 就會令人都蘭國小. 要如何加速編譯速度呢?參考底下的文章吧!

http://edu.uuu.com.tw/article/010307a.htm

2009年5月19日 星期二

Application->ProcessMessages 測試(上)

台語有句話說: "有一好, 沒倆好!" , 古人亦有云: "魚與熊掌不可兼得" , 英文則是 "Trade-off"!
有失必有得在技術開發中是經常發生的難題, 該如何取捨總是讓工程師們抓破頭!!

設計一個UI軟體, 有時會遇到的"執行效率"與"使用者操作"的兩難, 在沒有想到用多執行緒來解決
同一時間進行兩(多)件事時, 這個Application->ProcessMessage函式或許能幫上一點忙.

UI最怕的是"軟體卡住"的窘境, 說白話點就是使用者無法操作軟體, 如按按鈕啦, 該更新的畫面沒有更新啦, 無法拖曳視窗啦...等, 最糟的情況為軟體當掉, 只有重新啟動才能解決, 不然就是UI正在等某一個運算, 那個該死的運算占用了CPU資源, 導致上述種種問題...(待續)

2009年4月27日 星期一

Multi-Thread 心得分享


Multi-Thread(多執行緒)是一個相當實用的程式技巧, 尤其在多核的CPU下更顯威力!

左圖為程式啟動時對應的CPU狀態, 中間圖為使用For迴圈進行計算之CPU狀態, 右圖為使用Multi-Thread進行計算之CPU狀態.

我們可以明顯地看出使用Multi-Thread能充分地利用多核心(此測試為4核心)的計算能力, 並且減少計算時間!!

2009年4月16日 星期四

是該更新一下Blog了...

一整個三月都沒有更新 blog,真是糟糕阿!!
這兩個月的確忙翻了,主要是開發的產品在客戶那邊測試及驗證,
大大小小的問題,軟硬體修修改改,也讓我"長大"了一些....

這兩個禮拜來,電話及Mail安靜多了,No news is good news !
系統穩定許多,總算能做一些預計要進行的事,但可能因為都在Coding,
沒有那種與客戶一來一往的戰鬥,所以下午的時間都會覺得易累,瞌睡蟲狂敲我的門,
XDXD....

買房子真不是一件小事,口袋裡的摳摳和說話的音量成正比,一些機車的服務中心 Sales
會不屑口袋沒$的人,"叫你們父母來看房子吧!!" "先不用談價錢的部分,看你們喜不喜歡先!"
真是&%*$#... 買房子或許要再緩一緩了,自己多存點錢,也不會給父母太大的壓力。

四點半了,該做一下事了...

2009年2月11日 星期三

分享記憶體優化及安裝 .net framework 經驗

一個程式設計師(程序員:大陸都降稱呼)最在意的事情,除了實現各項軟體功能外,再來就是要講求程式與執行檔 size, 執行效率, 記憶體使用...等,但天不從人願,其中的記憶體使用(也可以說軟體佔系統資源)總是最令人頭痛!!

以C/C ++開發程式而言,當然就是allocate/free以及new/delete要妥善使用了,但若"確定"排除這些問題的話,系統資源仍隨著時間一直長大,一直長大...那就不好玩囉!!然而,一條好的時間對記憶體使用曲線,初期應該最低,陸續上升後到達一個值後保持穩定,頂多有些抖動(可能是同時進行其他軟體操作)。如下圖所示 (使用BCB自行開發的記憶體監控程式)


在此介紹一個"記憶體優化軟體",叫做Minimem,可對於超過某一記憶體使用閾值的軟體進行即時優化(保持在一定範圍內)。相關下載及操作請參考這位大大
<Minimem 1.2.2 下載>

由於Minimem安裝前電腦需具有 .net framework(有些軟體是以 .net framework進行開發的),但在安裝 .net framework時,往往需要網路連線,也就是下載M$的 .net framework安裝檔並執行它之後,一定要透過網路連結到伺服器才能下載完整的元件,但對於沒有網路環境的電腦該如何安裝呢?(客戶端電腦),此時就需要可攜式(Portable)或稱為可轉散發(Redistributable)套件進行安裝。

可轉散發(Redistributable)套件即包含了以 .net framework開發的應用程式所需要的所有元件,不需要透過網路連結就能在電腦上進行完整安裝。
<MS .Net Framwork 3.0 Redistributable Package 下載>

順便介紹一個可以偵測電腦上安裝了何種版本 .net framework的綠色軟體,叫做Framework Detector,可另外參考這位大大



Note: 批次檔啟動時最小化

將寫好的*.bat建立捷徑到桌面後,
滑鼠右鍵點選該捷徑圖示,
內容/捷徑頁面,修改執行的方式,選擇"最小化"
最後確定!!

2009年2月5日 星期四

二月份早餐...終於吃到~

久違了...公司早餐!

自從天氣變冷後,起床時間也越來越晚,真是糟糕透了!
到公司停好車都已經快8:30,只能到便利商店換東西,
但20元的"扣大"不太夠用,通常都還要再貼個20~30元...

今天總是讓我早到,多美的蘿蔔糕阿,搭配著熱呼呼的豆漿,
充滿朝氣的一天...

2009年1月17日 星期六

BCB note - Char & AnsiString Transformation

As title!
In string operation, we usually transform char to AnsiString data type for BCB objects such as Edit, StringGrid, Memo and Label etc. Besides, AnsiString transform to char data type is also used for traditional file read/write. The codes could be written below (Success testing in BCB):

// AnsiString To Char
AnsiString as = "test";
char *chr;
chr = as.c_str();

// Char To AnsiString
char *chr="test";
AnsiString as;
as = StrPas(chr);