hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..

Можно ли в ProcessStartInfo в методе Arguments использовать шаблоны имен?

Добрый вечер. Мне нужно через программу на c# получить имена com портов, используя утилиту ls. Вот пример:
textBox.Clear();
            ProcessStartInfo psi = new ProcessStartInfo();
            psi.FileName = "/bin/ls";
            psi.UseShellExecute = false;
            psi.Arguments = "/dev/tt*";
           // psi.Arguments = textBox1.Text;
            psi.RedirectStandardOutput = true;
            Process p = Process.Start(psi);
            textBox.Text += (p.StandardOutput.ReadToEnd() + Environment.NewLine);
            p.WaitForExit();
            p.Close();

если в psi.Arguments передать "/dev/", то получаю полный список устройств, но если передаю "/dev/ttyUSB*", то получаю пустой список. Вангую, что список имен это фича bash, наверное. Так как мне получить список /dev/ttyUSB0,/dev/ttyUSB1,/dev/tty2 и т.д.(если такие конечно имеются).
PS: Может grep как-то присобачить?
PS1: Хотя можно же стандартными средствами mono парсить список на наличие ttyUSB*...
  • Вопрос задан
  • 109 просмотров
Пригласить эксперта
Ответы на вопрос 1
@MechanID
Админ хостинг провайдера
Если ком порт на плате (не через юсб переходник) то обычно это будет /dev/ttyS*
Также в логе dmesg будут строчки при запуске ОС чтото вроде:
[ 0.860340] 00:02: ttyS0 at I/O 0x3f8 (irq = 4, base_baud = 115200) is a 16550A
[ 0.880928] 00:03: ttyS1 at I/O 0x2f8 (irq = 3, base_baud = 115200) is a 16550A
[ 0.901518] 00:05: ttyS2 at I/O 0x3e8 (irq = 5, base_baud = 115200) is a 16550A
Если же Юсб переходник то да должно быть /dev/ttyUSB*
и соответственные записи в логе dmesg:
[ 6.968929] usb 3-3: FTDI USB Serial Device converter now attached to ttyUSB0

про ls и grep
команды "ls /dev/ttyUSB*" должно быть достаточно чтобы получить все ttyUSB
если же шелла нет то попробуйте "ls /dev/|grep ttyUSB"
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы