Re: [問題] 關於利用C#來存取RS232

看板C_Sharp作者 (我操你媽的426)時間15年前 (2008/12/03 00:39), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《flyinsky1984 (滷蛋)》之銘言: : 想請問版上的高手C#可以控制RS232的存取嗎? 在 .net framework2.0 以後就有一個SerialPort namespace 支援 RS232的存取了,不過 我看msdn 上面的說法 好像是要在registry裡面有紀錄的 PORT 才能夠被抓到,不知道能不能抓到虛擬的 COM port? 或是開啟虛擬的com port 至於 .net framework 2.0以前的話,並沒有這個namespace, 這時候你就可以使用Pinvoke的方式直接呼叫 win32 api來使用。 這時候你需要參考vc++部分的說明,裡面最神奇的是會用到一個叫做 DCB的結構,當你使用vc++寫的時候,DCB裡面的資料會自動的被初始, 但是 如果你用 C#的話,似乎要自己去維護這個DCB的資料, 並且需要自己初始化,當然聽起來好像很複雜,其實,M$已經有sample 放在網路上了,你可以找找看。 : 我想用C#將RS232傳回的數值存入資料庫(Access), : 運算之後再把值利用RS232傳回。 : 請問我該怎麼做會比較好? : 謝謝。 如果你想要存取資料庫,可以先看看整個ADO.NET的部份, ADO.NET是.net framework裡面有關於存取資料庫的一個模型 裡面有一些namespace是用來操作資料庫的。 至於你該怎麼作,並沒有固定的作法吧,完全看你要如何去實現這 些功能。 如果依照你提到的功能,大概會像下面的過程吧 com port來的資料--->你寫的程式--->資料存到資料庫(Access) 取出資料庫(Access)的資料--->你寫的程式--->送到com port -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.216.115.34

12/03 21:56, , 1F
Btw, 基本上那時我都用GetCommState(),DCB沒必要自己填.
12/03 21:56, 1F
文章代碼(AID): #19DMI-T3 (C_Sharp)
文章代碼(AID): #19DMI-T3 (C_Sharp)