作者psliurt (我操你妈的426)
看板C_Sharp
标题Re: [问题] 关於利用C#来存取RS232
时间Wed Dec 3 00:39:25 2008
※ 引述《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
1F:推 leicheong:Btw, 基本上那时我都用GetCommState(),DCB没必要自己填. 12/03 21:56