コード例 #1
0
        /// <summary>
        /// シリアルポートの一覧を更新する
        /// </summary>
        private void UpdateSerialPortList()
        {
            this.serialPortList = SerialPortUtility.GetSerialPortsAsDataTable();

            this.comboBoxSerialPortList.DataSource    = serialPortList;
            this.comboBoxSerialPortList.DisplayMember = "Caption";
            this.comboBoxSerialPortList.ValueMember   = "DeviceID";
        }
コード例 #2
0
        /// <summary>
        /// シリアルポートの一覧を取得する
        /// </summary>
        /// <returns>シリアルポートの一覧を表す連想配列。DeviceID をキーとして、説明を値とする。</returns>
        public static Dictionary <string, string> GetSerialPorts()
        {
            // Win32_SerialPort と Win32_PnPEntity で COM ポートを取得する
            var serialPortsFromWMISerialPort = SerialPortUtility.GetSerialPortsFromWMISerialPort();
            var serialPortsFromWMIPnPEntity  = SerialPortUtility.GetSerialPortsFromWMIPnPEntity();

            // 結果をマージし、ひとつの連想配列にまとめる
            foreach (var serialPort in serialPortsFromWMIPnPEntity)
            {
                serialPortsFromWMISerialPort[serialPort.Key] = serialPort.Value;
            }

            // マージ結果を連想配列で返す
            return(serialPortsFromWMISerialPort);
        }
コード例 #3
0
        /// <summary>
        /// シリアルポートの一覧をデータテーブルで取得する
        /// </summary>
        /// <returns>
        /// シリアルポートの一覧を表すデータテーブル。
        /// デバイスの識別子 (COM数字) を表す DeviceID カラムと、
        /// デバイスの詳細を表す Caption カラムが存在する。
        /// </returns>
        public static DataTable GetSerialPortsAsDataTable()
        {
            // データテーブルを生成する
            var portsDataTable = new DataTable();

            portsDataTable.Columns.Add("DeviceID", typeof(string));
            portsDataTable.Columns.Add("Caption", typeof(string));

            // ポート一覧を取得する
            var portsDictionary = SerialPortUtility.GetSerialPorts();

            // Dictionary からデータテーブルへ変換する
            foreach (var deviceId in portsDictionary.Keys)
            {
                var row = portsDataTable.NewRow();

                row["DeviceID"] = deviceId;
                row["Caption"]  = portsDictionary[deviceId];

                portsDataTable.Rows.Add(row);
            }

            return(portsDataTable);
        }