1. 一些小感想
現(xiàn)在剛剛從504所回來鸳惯,雖然累但是感覺到了前所未有的充實(shí)感捷兰。從12月份底開始到現(xiàn)在,從剛開始很簡單的LabVIEW上位機(jī)程序患蹂,到現(xiàn)在一個麻雀雖小,五臟俱全的完整的上位機(jī)程序砸紊,涉及到串口通信传于,Acess數(shù)據(jù)庫連接與使用,SQL語句醉顽,ActiveX技術(shù)沼溜,F(xiàn)TP文件傳輸協(xié)議,示波器控制游添,生產(chǎn)者消費(fèi)者模式的隊(duì)列數(shù)據(jù)結(jié)構(gòu)系草,動態(tài)調(diào)用技術(shù),數(shù)據(jù)采集唆涝,程序控制等技術(shù)****找都。但是呢,網(wǎng)上有一句話就是****軟件的開發(fā)周期絕對是預(yù)期計劃的至少兩倍時間廊酣,現(xiàn)在說實(shí)話我自己感覺程序還有很多地方需要進(jìn)行優(yōu)化檐嚣,完成這些優(yōu)化后這個程序還不期會出現(xiàn)什么BUG。
除了技術(shù)上學(xué)習(xí)到的東西啰扛,我覺得更令人興奮的是嚎京,這段時間在團(tuán)隊(duì)里我們協(xié)同工作一起完成項(xiàng)目的這個經(jīng)歷。首先是認(rèn)識了非常厲害的孟哥隐解,從化學(xué)專業(yè)轉(zhuǎn)來搞電鞍帝,然后做的非常精通。我們不論是在學(xué)校調(diào)試還是在所里調(diào)試的時候煞茫,遇到問題我們互相討論帕涌,我感覺我迅速拋棄了自己的那種疲憊的精神狀態(tài),就算是整整搞一整天我也絲毫不覺得累续徽。上周日蚓曼,周六晚上我和朋友出去吃飯喝酒,晚上打麻將到3點(diǎn)多钦扭,然后周日早上去研究所調(diào)試到快凌晨1點(diǎn)才回到宿舍纫版,我絲毫不困不累,我從來沒感覺到這種快感客情。1月份刷完了電視劇Strike Back其弊,Scott和Stonebridge以及Section 20的這么一個Team的合作癞己,特別感人肺腑,我想我想要的就是Team這么一個感覺梭伐。
之后接觸到了一些前輩老師痹雅,以及研究所的一些人,當(dāng)然不像我和孟哥那么熟悉糊识,但是我們一起在為這個事情付出的努力绩社,以及從他們身上學(xué)到的東西足以使我感到振奮并且讓我得到提高。
嗯赂苗,非常感謝愉耙!
2. LabVIEW與數(shù)據(jù)庫的那些事
首先呢,LabVIEW開發(fā)系統(tǒng)自帶有與數(shù)據(jù)庫進(jìn)行連接的庫哑梳,注意是連接,因?yàn)橹苯油ㄟ^LabVIEW是無法創(chuàng)建數(shù)據(jù)庫的绘盟,LabVIEW只自帶了和數(shù)據(jù)庫進(jìn)行連接的庫鸠真。但是通過ActiveX是可以創(chuàng)建數(shù)據(jù)庫的。
1). 具體介紹一下如何通過ActiveX(自動化引用句柄)來創(chuàng)建數(shù)據(jù)庫:
自動化引用句柄-與ActiveX函數(shù)配合使用龄毡。當(dāng)打開一個指向ActiveX服務(wù)器對象的引用吠卷,且需要將引用作為參數(shù)傳遞給另一個VI時,可使用該類引用句柄控件沦零。如需指定引用句柄的類型祭隔,可右鍵單擊控件,從快捷菜單中選擇選擇ActiveX類?瀏覽路操,打開從類型庫中選擇對象對話框疾渴,瀏覽可用的ActiveX服務(wù)器應(yīng)用程序。
首先在前面板上點(diǎn)擊右鍵屯仗,在引用句柄下選擇自動化引用句柄搞坝,放置在前面板上,在建立的圖標(biāo)上右擊魁袜,點(diǎn)擊選擇ActiveX類桩撮,自定義,進(jìn)入選擇對話框峰弹。如圖所示:

選擇如圖所示的ADOX._Catalog后店量,轉(zhuǎn)入程序框圖,編寫程序如圖所示:

該程序最關(guān)鍵的一步是設(shè)置合理的ConnectString鞠呈,這個ConnectString是代表數(shù)據(jù)庫的連接信息融师。這個連接信息是使用LabVIEW自帶庫函數(shù)操作數(shù)據(jù)庫最關(guān)鍵的一個信息了,因此集中放在下一節(jié)解釋蚁吝。
2). 如何使用LabVIEW自帶的Database庫函數(shù)操作數(shù)據(jù)庫
連接并使用數(shù)據(jù)庫的一個基本流程就是诬滩,open connection->Execute Query->Fetch Recordset Data->Free Object->Close connection.
如圖所示:

其中open connection函數(shù)涉及到連接數(shù)據(jù)庫一個關(guān)鍵的內(nèi)容就是設(shè)置合理的連接字符串霹粥,連接字符串包括Provider和Data Source,Provider一般是與連接的數(shù)據(jù)庫屬性有關(guān)的疼鸟,在這里我使用的是Microsoft的Acess因此連接字符串的Provider是:Provider=Microsoft.JET.OLEDB.4.0;然后DataSource是你將要連接的數(shù)據(jù)庫地址后控。將這兩個字符串連接起來,傳入open connection函數(shù)中的connection information端子上空镜。
Execute Query函數(shù)接受一個SQL語句的字符串浩淘,用于進(jìn)行數(shù)據(jù)庫操作。SQL語句語法等內(nèi)容請移步:SQL語句
其中Fetch Recordset是用于讀取數(shù)據(jù)的吴攒,這里面有另外一個核心技術(shù)张抄,就是將數(shù)據(jù)庫查詢出來的變體數(shù)據(jù)轉(zhuǎn)換至字符串?dāng)?shù)據(jù),下面將會介紹洼怔。
最后是Free Object和Close connection函數(shù)署惯,也就是釋放對象并且關(guān)閉連接。在這里我曾經(jīng)遇到一個問題镣隶,利用for循環(huán)進(jìn)行了多次的Execute Query之后調(diào)用Free Object和Close Connection會輸出504錯誤极谊,Open recordset object,由于vi也能正常實(shí)現(xiàn)功能安岂,所以這個也不能完全算是錯誤轻猖,但是如果錯誤隨著錯誤流輸出的話會影響以后程序的運(yùn)行,因此在Close connection函數(shù)后面加一個清楚錯誤函數(shù)域那,將該504錯誤清除咙边。
3). 關(guān)于Fetch Recrodset函數(shù)讀取出的變體數(shù)據(jù)操作方法
4). 如何使用LabSQL ADO Functions操作數(shù)據(jù)庫
先挖坑在這里,以后再填上