Saltar al contenido

¿Cómo Arduino IDE ‘Obtiene información de la placa’?

Esta inquietud se puede resolver de diferentes maneras, pero en este caso te dejamos la que para nosotros es la resolución más completa.

Solución:

Mirando el código fuente del IDE de Arduino en github, parece que llaman a un ejecutable (listComPorts.exe). Así que supongo que no puedes obtener esa información a través de la serie.

Aquí hay una aplicación C# que usa WMI que puede obtener port, vid y pid:

namespace PortTest

    class Program
    
        // Helper function to handle regex search
        static string regex(string pattern, string text)
        
            Regex re = new Regex(pattern);
            Match m = re.Match(text);
            if (m.Success)
            
                return m.Value;
            
            else
            
                return null;
            
        

        static void Main(string[] args)
        
            // Use WMI to get info
            ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\CIMV2",
                "SELECT * FROM Win32_PnPEntity WHERE ClassGuid="4d36e978-e325-11ce-bfc1-08002be10318"");

            // Search all serial ports
            foreach (ManagementObject queryObj in searcher.Get())
            
                // Parse the data
                if (null != queryObj["Name"])
                
                    Console.WriteLine("Port = " + regex(@"((COMd+))", queryObj["Name"].ToString()));
                
                //PNPDeviceID = USBVID_1A86&PID_75235&1A63D808&0&2
                if (null != queryObj["PNPDeviceID"])
                
                    Console.WriteLine("VID = " + regex("VID_([0-9a-fA-F]+)", queryObj["PNPDeviceID"].ToString()));
                    Console.WriteLine("PID = " + regex("PID_([0-9a-fA-F]+)", queryObj["PNPDeviceID"].ToString()));
                
            
            Console.WriteLine("Done");
            int c = Console.Read();
        
    

A partir de ahí, parece que busca en una base de datos en línea para obtener más información. Ver: getBoardWithMatchingVidPidFromCloud() función.

valoraciones y reseñas

Recuerda que puedes recomendar este artículo si te fue útil.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *