Получить имя устройства, подключенного к последовательному порту - PullRequest
16 голосов
/ 21 декабря 2010

Я ищу, как получить имя устройства материала, подключенного к последовательному порту.

У меня есть два разных типа материала, которые могут соединяться с ним.

Первый: принтер (только получает данные и ничего не отправляет обратно) Второй: баланс (только отправляет данные и ничего не получает)

Как я могу различить эти два типа материала?

Спасибо.

Ответы [ 4 ]

12 голосов
/ 16 мая 2011

попробуйте это:

        ManagementObjectCollection ManObjReturn;
        ManagementObjectSearcher ManObjSearch;
        ManObjSearch = new ManagementObjectSearcher("Select * from Win32_SerialPort");
        ManObjReturn = ManObjSearch.Get();

        foreach (ManagementObject ManObj in ManObjReturn)
        {
            //int s = ManObj.Properties.Count;
            //foreach (PropertyData d in ManObj.Properties)
            //{
            //    MessageBox.Show(d.Name);
            //}
            MessageBox.Show(ManObj["DeviceID"].ToString());
            MessageBox.Show(ManObj["PNPDeviceID"].ToString());
               MessageBox.Show(ManObj["Name"].ToString());
               MessageBox.Show(ManObj["Caption"].ToString());
               MessageBox.Show(ManObj["Description"].ToString());
               MessageBox.Show(ManObj["ProviderType"].ToString());
               MessageBox.Show(ManObj["Status"].ToString());

        }
10 голосов
/ 21 декабря 2010

Не существует универсального способа идентификации устройств с последовательным портом (UART RS232).

Если на устройствах нет специальных команд, которые вы можете отправить на устройство, и чтобы оно отвечало идентифицирующей информацией, вы ничего не можете сделать.

Обычно приложение, которое использует последовательный порт, будет иметь стандартный экран настроек, который пользователь будет использовать для настройки последовательного порта, к которому подключено устройство, настройки порта для таких вещей, как скорость передачи, биты четности, стоповые биты и биты данных. Если несколько устройств могут быть подключены к одному и тому же порту, оператор будет нести ответственность за выбор правильной конфигурации для целевого устройства перед установкой связи с устройством.

В этом преимущество новых технологий, таких как USB и т. Д., Где идентификация устройства встроена в стандарт.

0 голосов
/ 16 августа 2018
Class1 UD = new Class1();
{
string strUserAgent = Request.UserAgent.ToLower();
        if (strUserAgent != null)
        {
            string Browser = Request.Browser.Browser;
            string a = Request.Browser.MobileDeviceManufacturer;
            string b = Request.Browser.MobileDeviceModel;
            string c = Request.Browser.Platform;
            string d = Request.Browser.Type;
            string e = Request.Browser.Version;

            UD.Browser = Browser;
            UD.MobileDeviceModel = b;
            UD.MobileDeviceManufacturer = a; 
            UD.Platform2 = c;
            UD.Type = d;
            UD.Version2 = e; 




            if (Request.Browser.IsMobileDevice == true || strUserAgent.Contains("iphone") ||
                     strUserAgent.Contains("blackberry") || strUserAgent.Contains("mobile") ||
                     strUserAgent.Contains("windows ce") || strUserAgent.Contains("opera mini") ||
                     strUserAgent.Contains("palm"))
            {
                UD.deviceType = "Request from Mobile Device";
            }
            else
            {
                UD.deviceType = "Request from Computer";
            }

        }
}
0 голосов
/ 16 апреля 2014
static void Main(string[] args)
{
    ManagementObjectCollection ManObjReturn;
    ManagementObjectSearcher ManObjSearch;
    ManObjSearch = new ManagementObjectSearcher("Select * from **Win32_ParallelPort**");
    ManObjReturn = ManObjSearch.Get();

    foreach (ManagementObject ManObj in ManObjReturn)
    {
        //int s = ManObj.Properties.Count;
        //foreach (PropertyData d in ManObj.Properties)
        //{
        //    MessageBox.Show(d.Name);
        //}
        Console.WriteLine(ManObj["DeviceID"].ToString());
        Console.WriteLine(ManObj["PNPDeviceID"].ToString());
        Console.WriteLine(ManObj["Name"].ToString());
        Console.WriteLine(ManObj["Caption"].ToString());
        Console.WriteLine(ManObj["Description"].ToString());
        Console.WriteLine(ManObj["ProviderType"].ToString());
        Console.WriteLine(ManObj["Status"].ToString());

    }

}

http://www.seeques.com/20766280/the-port-name-is-illegal-or-couldnt-be-connected-to-the-device.html

имя порта недопустимо, как это сообщение об ошибке ... fio.!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...