Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual Studio C#USB 4中继板控制器_C#_Visual Studio 2012_Usb - Fatal编程技术网

Visual Studio C#USB 4中继板控制器

Visual Studio C#USB 4中继板控制器,c#,visual-studio-2012,usb,C#,Visual Studio 2012,Usb,我想做的是创建一个简单的Windows窗体应用程序来控制一个中继板来打开和关闭一些灯。没什么大不了的,这是个私人项目。这是指向我拥有的中继板的链接: 现在我的问题是如何向继电器发送命令,并通过USB从继电器接收一些命令。继电器板带有一个驱动器。这些板支持下面的命令。那我怎么发送呢 通过我的windows窗体将它们发送到董事会 根据用户手册:它与Windows和Apple OS X以及各种Linux版本兼容,并显示为USB CDC(通信设备类)设备,创建虚拟串行(COM)端口,允许通过支持串行通信

我想做的是创建一个简单的Windows窗体应用程序来控制一个中继板来打开和关闭一些灯。没什么大不了的,这是个私人项目。这是指向我拥有的中继板的链接:

现在我的问题是如何向继电器发送命令,并通过USB从继电器接收一些命令。继电器板带有一个驱动器。这些板支持下面的命令。那我怎么发送呢 通过我的windows窗体将它们发送到董事会

根据用户手册:它与Windows和Apple OS X以及各种Linux版本兼容,并显示为USB CDC(通信设备类)设备,创建虚拟串行(COM)端口,允许通过支持串行通信的任何编程语言轻松与主板通信(VB、VB.NET、C、C、C++、Perl、java等),一组易于使用的命令可用于所有继电器、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

查看说明书,驱动程序为您提供串行端口访问(但没有直接的USB api),因此您必须打开到中继板的串行端口

首先(如果您还没有),请按照手册中“与控制器通信”下的说明进行操作,并使用超级终端之类的工具确保您可以与电路板“对话”

然后看一下这些来自C#的简单串行通信示例:

您应该使用


如果您已经看到该类的文档,并且在使用该类时遇到问题,请详细说明您遇到的问题。

安装驱动程序后插入设备。打开设备管理器,您现在可以看到电路板制造商提供的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();
                }
            }
        }
    }
}

我使用Putty与它通信。它确实有效。我缺少的是System.IO.Ports,以便与端口通信。谢谢。