如何访问设备并向其发送数据?

时间:2012-08-14 14:38:55

标签: device serial-port c#

我已经设法在visual C#express中识别驱动器和串行端口,但我仍然无法访问特定设备(RepRap打印机)。我想发送一个字符串数组,但首先我需要找到它,我该怎么做?我正在使用Windows 7。

获取驱动器:

using System.Linq;
using System.IO;
using System;

    class Program
    {
            static void Main(string[] args)
            {
                var drives = DriveInfo.GetDrives();
               DriveInfo[] allDrives = DriveInfo.GetDrives();
                     foreach(DriveInfo dv in drives)          
                     {              
                            Console.WriteLine("drive Name:{0}", dv.Name);      
                     }    
                    Console.ReadLine();
            }
        }

获取串口:

using System;
using System.IO.Ports;

namespace SerialPortExample
{
    class SerialPortExample
    {
        public static void Main()
        {
            string[] ports = SerialPort.GetPortNames();
            Console.WriteLine("The following serial ports were found:");
            foreach (string port in ports)
            {
                Console.WriteLine(port);
            }
            Console.ReadLine();
        }
    }
}

非常感谢提前!

1 个答案:

答案 0 :(得分:1)

我建议您先检查这两个问题和答案:

Get the device name connected to the serial port
这个解释了为什么它很难,但提供了一些关于如何询问Windows它对设备有什么了解的线索

Getting Serial Port Information
这是一堆进一步的代码示例。

一般情况下,您可能希望通过NAME找到设备,系统分配给它 - 您可以知道名称及其类似“reprap#1”等等。我只是猜测。最好要求扫描所有COM设备名称并将其显示给用户,以便他可以选择合适的名称。

如果您想自动检测,您可以尝试通过一些较低级别的细节(如drivername等)检测它们,但通常最好将其留给用户。