один COM-порт на два девайса

Тема в разделе "WASM.HARDWARE", создана пользователем RamMerLabs, 14 июн 2008.

  1. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    Доброго времени суток!
    столкнулся с проблемой (косвенно вызванной моей многострадальной материнкой) - на матери один COM-порт, к нему подключены 2 девайса, каждый из которых использует разные цепи (кроме GND, разумеется): один юзает DCD и RTS, второй - RxD, TxD и DTR. желательно обеспечить их одновременную работу, но софт этого не позволяет - если работает программа для обслуживания одного девайса, то работа проги для второго девайса невозможна, т.к. порт занят.
    можно ли обойти эту проблему?
    ЗЫ: второго COM-порта нет, на другие интерфейсы перейти пока что нет возможности.

    буду весьма признателен за любую информацию.
     
  2. satrau

    satrau Александр

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    229
    обойти проблемму можно покупкой pci2com. таких плат валом, стоят копейки. usb2com не рекомендую - глючат сильно.
     
  3. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    satrau
    к сожалению свободных PCI-слотов уже нет. все заняты... есть только USB и PCIe x1.
     
  4. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Хм.. как вариант написать драйвер, чтобы он сделал второй виртуальный порт и перехватывал обращения к первому, обеспечивая совместную работу. Я, правда, не знаю деталей программирования COM порта, но, имхо, раз оно использует разные пины, то можно будет организовать корректную обработку обоих виртуальных портов.
     
  5. Vov4ick

    Vov4ick Владимир

    Публикаций:
    0
    Регистрация:
    8 окт 2006
    Сообщения:
    581
    Адрес:
    МО
    Аппаратно ком-порт позволит одновременую такую работу, т.к. данные для передачи и сигналы управления соответствуют разным портам. Как один из вариантов, может попробовать поиграться с параметром dwShareMode функции CreadeFile при открытии ком-порта, либо её перехватить, если программы, использующие порт не самописные.
     
  6. RamMerLabs

    RamMerLabs Well-Known Member

    Публикаций:
    0
    Регистрация:
    11 сен 2006
    Сообщения:
    1.426
    Vov4ick
    я тож об этом подумывал, но решил подождать советов. одна из прог не моя, вторая - самописная, можно будет её переписать малёхо, и запускать сначала не мою, а потом самописную. буду пробовать, спасибо!