我想做的是创建一个简单的Windows窗体应用程序来控制继电器板,以打开和关闭一些灯。没什么大不了的,这是个私人项目。这是我拥有的中继板的链接:http://www.canakit.com/catalog/product/view/id/627/s/4-port-usb-relay-controller/。
现在我的问题是如何向中继发送命令,并通过USB接收其中的一些命令。接力板上有个司机。董事会支持以下命令。那我该如何通过我的窗户表格把它们寄到黑板上。
用户手册:它兼容Windows和Apple以及各种Linux版本,并以USB (Communications )设备的形式出现,它创建了一个虚拟串行(COM)端口,允许通过任何支持串行通信的编程语言(VB、VB.NET、C#、C、C++、Perl、C++等)轻松地与板进行通信。一套完整的易于使用的命令可用于所有继电器、I/O通道和传感器的完全控制。
支持的命令:
RELx.ON
RELx.OFF
RELx.TOGGLE
RELx.GET
RELS.ON
RELS.OFF
RELS.GET
CHx.ON
CHx.OFF
CHx.TOGGLE
CHx.GET
CHx.SETMODE
CHx.GETANALOG
CHx.GETTEMP
CHS.ON
CHS.OFF
CHS.GET
CHS.SETTEMPRES发布于 2017-01-24 08:09:43
一旦安装了驱动程序,就插入设备。打开设备管理器,您现在应该看到板制造商给出的COM端口。您可以在文档中提供COM端口、波特率、奇偶校验等。现在您可以用下面的代码创建一个c#控制台应用程序了,我已经制作了一个示例,在间隔3秒之后发出一个RELx.ON和一个RELx.OFF:
using System;
using System.IO.Ports;
namespace RelayConsole
{
class Program
{
public static SerialPort port = new SerialPort("COM5", 9600, Parity.None, 8, StopBits.One);
/* Replace COM5 with your COM port, 9600 with baud rate of your board, parity and bits as well as per your device documentation */
static void Main(string[] args)
{
SerialProgram();
}
static void SerialProgram()
{
try
{
port.Open();
port.Write("RELx.ON"); /* You can pass any command as per your documentation in port.Write */
System.Threading.Thread.Sleep(3000);
port.Write("RELx.OFF");
Environment.Exit(0);
}
catch (Exception ex)
{
if(ex is System.IO.IOException)
{
Console.WriteLine("Port Exception: " + ex.ToString());
Console.ReadLine();
}
else
{
Console.WriteLine("General Exception: " + ex.ToString());
Console.ReadLine();
}
}
}
}
}发布于 2014-02-24 23:25:53
查看说明手册,驱动程序允许您访问串口(但没有直接的USB ),因此您必须打开一个到中继板的串行端口。
首先(如果您还没有),按照下的说明,在手册中与Controller通信,并使用类似HyperTerminal的东西来确保您可以与董事会“交谈”。
然后看一下来自C#的简单串行通信的这些示例:
http://csharp.simpleserial.com/
-.NET.aspx
发布于 2014-02-25 01:18:51
您应该使用System.IO.Ports.SerialPort类。
如果您已经看到了该类的文档,并且在使用该类时遇到问题,请详细说明您遇到了哪些问题。
https://stackoverflow.com/questions/22001013
复制相似问题