- 分享
- 0
- 人气
- 0
- 主题
- 46
- 帖子
- 3604
- UID
- 123250
- 积分
- 6456
- 阅读权限
- 23
- 注册时间
- 2008-2-7
- 最后登录
- 2017-5-1
- 在线时间
- 5029 小时
|
本帖最后由 宅男-兜着走 于 2010-9-24 09:30 PM 编辑
宅男-兜着走
要你的帮忙
VB or C# 怎样用serial on LED
就学on的comand就可以了!
帮帮忙
绿病毒 发表于 2010-9-24 05:31 PM
hello 病毒, 我来了。
- // class led controller.
- public enum SignalType
- {
- DataTerminalReady,
- RequestToSend
- }
- public class LedController
- {
- SerialPort comPort;
- public SerialPort ComPort
- {
- get { return comPort; }
- set { comPort = value; }
- }
- public void SignalCommand(SignalType type, bool isEnable)
- {
- switch (type)
- {
- case SignalType.DataTerminalReady:
- comPort.DtrEnable = isEnable;
- break;
- case SignalType.RequestToSend:
- comPort.RtsEnable = isEnable;
- break;
- }
- }
- public void ClosePort()
- {
- comPort.Close();
- }
- public void OpenPort()
- {
- try
- {
- comPort.Open();
- }
- catch (System.IO.IOException)
- {
- MessageBox.Show("Com port not found or unable to open");
- }
- }
- public LedController(string portName)
- {
- comPort = new SerialPort(portName);
-
- }
- }
复制代码
- // client 端的 Code
- LedController controller = new LedController("COM1");
- controller.Open();
- controller. SignalCommand(SignalType.DataTerminalReady, true); // DTR Signal 就会Send 出去, 注: 不是Digital Signal, 是 Electric Signal
- controller.Close():
复制代码 同样的, 如果你要 RTS signal 的话, 就 controller. SignalCommand(SignalType.ReadyToSend, true);
那么这个 Signal 就会send 出去了。
注意, 是send 永久的, 直到你send 关掉的指令, 才会熄掉那个 Signal。
例子 controller. SignalCommand(SignalType.ReadyToSend, false);
或者 直接关掉 Comport 应该是没问题的了。
以上的例子都是 DTR, RTS 这两个 Electric signal。
或者你不要 on led, 你手指放下去, 如果中电到的话, 那么你就成功了!! |
|