проблема с COM портом

Ответить

Смайлики
:D :) :( :o :shock: :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:

BBCode ОТКЛЮЧЕН
Смайлики ВКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: проблема с COM портом

Re: проблема с COM портом

aka » Пт авг 30, 2013 10:36 pm

Если работает - пользуйся и не обращай внимания. Если не работает, то не судьба. Без железки передачу данных по сигнальным линиям ком-порта отладить не получается, а железки такие обычно размером со станок, никто не хочет нам их подарить для опытов :roll:

Re: проблема с COM портом

MAxVal » Пт авг 30, 2013 8:01 pm

Добрый день.
Помогите разобраться.

Сервер - Win 2008 Server R2 + WTware 5.1.43 (Физический com1 переименован в com11)

Клиент - обычный ПК с двумя com-портами. На com2 подключен фискальный регистратор "Мария-301 МТМ"

При загрузке через mstsc.exe - все работает.

При загрузке через WTware - при обращении к ФР выдает ошибку, а в логе имеем:
17-36-56-0840| [rdpdr-serial 1] Line control mode still unsupported, sorry.
17-36-57-0042| [rdpdr-serial 1] Please send this log to support@wtware.com.
17-36-57-0042| [rdpdr-serial 1] WordLength 8 Parity 2 StopBits 2.

Благодарю.

Re: проблема с COM портом

aka » Чт янв 17, 2013 1:58 pm

micha писал(а):Change port выдает AUX = \DosDevices\COM1
COM11 = Device\Serial0
GLOBALROOT - то есть ни фига не перенаправлено.
Да, не перенаправлено.

1. Попробуй перенаправить порт через обычный mstsc.exe. Если не перенаправит, значит надо копать сервер. Перенаправление еще можно в политиках запретить.

2. Лог терминала покажи. Может, ты не написал вошлебное слово serial=com1, или не там написал.

Последняя версия втвари называется 5.1.24. Или 5.0.7.

Re: проблема с COM портом

micha » Чт янв 17, 2013 11:09 am

aka писал(а):
KVIK писал(а):Тогда родные сервера с 9-го.
Отставить сбивать людей с толку. В методичке написано переименовать COM1 в COM11, значит в COM11. А самые умные будут грузить чугуний.
KVIK писал(а):А что? :roll: Самый постой, надежный и доступный способ.
Ну да, правильно. "Не знал. Отстал от жизни." (c)
Здравствуйте все.
Можно мне свои пять копеек в чужую тему впихнуть )))))
На бездисковой станции как мапить com? В свойствах rdp галочка снята с com.
Change port выдает AUX = \DosDevices\COM1
COM11 = Device\Serial0
GLOBALROOT - то есть ни фига не перенаправлено.
Хелп вообщем :roll:

P.S. На коме касса висит...

Re: проблема с COM портом

aka » Пт сен 14, 2012 12:36 pm

KVIK писал(а):Тогда родные сервера с 9-го.
Отставить сбивать людей с толку. В методичке написано переименовать COM1 в COM11, значит в COM11. А самые умные будут грузить чугуний.
KVIK писал(а):А что? :roll: Самый постой, надежный и доступный способ.
Ну да, правильно. "Не знал. Отстал от жизни." (c)

Re: проблема с COM портом

KVIK » Пт сен 14, 2012 12:23 pm

aka писал(а):
KVIK писал(а):надо родные комы сервака убрать от 5 и дальше (т.к. в втваре может быть 1-4)
1-8
:shock: Не знал. Отстал от жизни. :oops: Хотя использовал железяки максимум с 4-мя.
Тогда родные сервера с 9-го.
aka писал(а):
KVIK писал(а):Запусти гипертерминал. Замкни на коме 2-3 контакты и поклацай по клаве, сразу будет видно работает физически порт или нет.
:shock:
А что? :roll: Самый постой, надежный и доступный способ. У меня в сумке даже разъем валяется с замкнутыми контактами. Ещё проги есть которые и служебные контакты по такому принципу тестируют. (там ещё надо перемычек добавить). Так сразу видно работает порт физически или нет.

Re: проблема с COM портом

aka » Пт сен 14, 2012 8:19 am

365 писал(а):Установлено wtware 5.1.10
Столько букв написал, а свежую версию не поставил. Надо поставить.
365 писал(а):1) Можно ли со стороны сервера узнать/определить что COM порт клиента успешно проброшен на сервер и на какой порт?
Запустить командную строку в сессии, из нее change port. Ниоткуда кроме как из самой сессии узнать нельзя.
365 писал(а):2) проброс производится на 1 физический COM порт сервера или на некий виртуальный порт, которых может быть много, как это определить? Или просто проброс serial port клиента в сессии RDP?
На виртуальный порт в сессии RDP.
365 писал(а):4) в сетевом окружении со стороны сервера не видно терминальных клиентов, хотя clienthostname описан и отобразился в сервисах.
Да.
365 писал(а):На ping по IP ответ есть, по имени хоста тишина.
Если очень хочется, то можно рыть в сторону Dynamic DNS Update, связь DNS и DHCP. Будет работать, если работают майкрософтовые службы DNS и DHCP. Но вообще желание обращаться к терминалу по имени скорее всего неправильное. Не должно быть такой необходимости.
365 писал(а):Подключаю терминальный клиент №2 - подключаю фискальник на com5. В тест драйвера видно что фискальник на com5 с нужной мне скоростью, но создалось впечатление, что кто последний обратился к com порту того и тапки, так как после описания рабочего места в программе (имя клиента %servername% - %COM5%) перестал откликаться ФР на станции №1....
Неправильное впечатление. Проблема в чем-то другом. Сколько угодно клиентов можно сделать, и у каждого может быть свой проброшенный в сессии RDP COM1.
365 писал(а):В моем случае я описал "грабли". При подключении фискальника (ФР1) на COM1 к тонкому клиенту (TK1) я получил локальную работу ФР1 на ТК1 (могу сделать тестовый прогон печати, снять X-отчет и т.д.)
...
Далее. Подключаю ТК2, фискальник прописываю на COM5
Логинюсь новым (не тем, который работает на ТК1) пользователем, так?
365 писал(а):Лезу в программу, описываю рабочее место: "ФР №4321, расположен локально на %server_name% на COM5".
Проверяю работу ФР, получаю минутную паузу (первая фискализация), далее все отлично, но в таком случае ФР1 с портом COM1 на TK1 уже не работает.
Это не из-за терминального сервера, не из-за терминалов.
365 писал(а):Обращаюсь в настройки СУБД и вижу что имеет место быть только запись о COM5 на %server_name% (соответственно работоспособным остается только COM5 на втором тонком клиенте.)
Переназначаю порт опять для первого ТК, отваливается второй.
Вот тебе и проблема. Воюй со своей СУБД. Это совершенно точно НЕ служба терминалов удалила запись о COM1.
365 писал(а):PS лог с обоих ТК выложу уже завтра.
Не запускай СУБД. Запусти утилиту диагностики ФР, производитель ФР скажет где ее взять. Подключи оба ФР на COM1 двух разных терминалов. Убедись что из обоих сессий RDP видны подключенные к соответствующим терминалам ФРы. Дальше воюй с СУБД.
365 писал(а):Для общего понимания ситуации опишу специфику софта.
На клиенте работает в фоне некий драйвер, который слушает команды по TCP
При старте, драйвер записывает в СУБД имя клиента, порт, описание устройства на порту.
СУБД обращается по этим параметрам, вещает TCP команды со стороны сервера.
Поскольку нет сетевого обнаружения, имя клиента всегда одно и то же, то по имени %server_name%=%Port% не получается работать. Нет возможности прописать обращаться по IP.
Это не "специфика софта". Это "кривизна софта, написанного динозавропрограммистами, развитие которых остановилось на FoxPRO для MS-DOS". Такая схема никак не будет работать на терминальном сервере. Обратись к разработчикам СУБД. Не пугай их словом wtware. Просто скажи, что хочешь запускать СУБД на терминальном сервере, а на машины клиентов ничего нельзя ставить по требованию службы безопасности. Служба терминалов появилась в Windows NT в 1998 году, они должны о ней что-то слышать.
365 писал(а):1) дать возможность включения сетевого обнаружения, к примеру по параметру CLIENTHOSTNAME (от сервера можно обратиться к терминалу по имени клиента).
И что дальше? Ты на терминале (не на терминальном сервере, а на терминале, т.е. на клиенте) хочешь запустить драйвер?
365 писал(а):2) На сервере иметь возможность подключить порты клиентов как локальные COM порт. Полагаю, этого будет достаточно для использования 1 драйвера на сервере для настройки ФР.
Что такое "локальные COM порт" и как ты их собираешься отличать от "нелокальных COM порт"?
365 писал(а):Если со стороны сервера я смогу увидеть что com1 расположен на TK1, com2 расположен на TK2, то такая схема будет работоспособной.
Возьми листик бумаги и нарисуй, что такое "сторона сервера". Чем она отличается от "стороны клиента", "стороны сессии RDP" и всех остальных действующих сторон.
365 писал(а):Вариант обратиться к разработчику драйвера не предлагать, ибо не вариант.
Тогда не судьба. По твоему описанию я не вижу других вариантов. Описанная СУБД не способна работать на терминальном сервере, когда несколько пользователей одновременно работают на одном компьютере.

KVIK писал(а):надо родные комы сервака убрать от 5 и дальше (т.к. в втваре может быть 1-4)
1-8
KVIK писал(а):Запусти гипертерминал. Замкни на коме 2-3 контакты и поклацай по клаве, сразу будет видно работает физически порт или нет.
:shock:

проблема с COM портом

365 » Пт сен 14, 2012 7:30 am

Для общего понимания ситуации опишу специфику софта.

На клиенте работает в фоне некий драйвер, который слушает команды по TCP
При старте, драйвер записывает в СУБД имя клиента, порт, описание устройства на порту.
СУБД обращается по этим параметрам, вещает TCP команды со стороны сервера.
Поскольку нет сетевого обнаружения, имя клиента всегда одно и то же, то по имени %server_name%=%Port% не получается работать. Нет возможности прописать обращаться по IP.

На мой взгляд со стороны wtware может быть 2 решения:
1) дать возможность включения сетевого обнаружения, к примеру по параметру CLIENTHOSTNAME (от сервера можно обратиться к терминалу по имени клиента).
2) На сервере иметь возможность подключить порты клиентов как локальные COM порт. Полагаю, этого будет достаточно для использования 1 драйвера на сервере для настройки ФР.

Второй вариант к чему
Если со стороны сервера я смогу увидеть что com1 расположен на TK1, com2 расположен на TK2, то такая схема будет работоспособной.

Вариант обратиться к разработчику драйвера не предлагать, ибо не вариант.

PS
Тестируемая версия wtware может изменить ситуацию?

Re: проблема с COM портом

365 » Чт сен 13, 2012 8:09 pm

KVIK, спасибо за развернутый ответ.

Для однозначности я переименовал единственный физический COM1 сервера в COM11

а) Про удаленную диагностику я не зря спросил. Удаленное подразделение в прямом смысле является удаленным. Порой доступ имеется только к серверу, про компьютерную безграмотность говорить не буду (в большинстве своем наши сотрудники возрастной категории 50+ лет женского пола, "пощупали" ЭВМ только в этом же возрасте)...
Просить кого-то замыкать контакты смысла нет, ибо выключают комп вместо "Завершение работы" по кнопке POWER... :evil:

б) Есть специфика при настройке ПО, посему в сетевом окружении со стороны сервера должна быть видна информация типа %tc_name%=%COM-Number%

В моем случае я описал "грабли". При подключении фискальника (ФР1) на COM1 к тонкому клиенту (TK1) я получил локальную работу ФР1 на ТК1 (могу сделать тестовый прогон печати, снять X-отчет и т.д.)
Для привязки этого ФР1 на сервере терминалов я описать рабочее место должен как "Фискальник №1234, расположен на ТК1, уважаемая СУБД, получать и записывать данные ты будешь с COM1". При настройке wtware я имею запись следующего вида: "Фискальник №1234, расположен локально на %server_name% на COM1"
Проверяю работу фискальника, результат отличный.

Далее. Подключаю ТК2, фискальник прописываю на COM5
Лезу в программу, описываю рабочее место: "ФР №4321, расположен локально на %server_name% на COM5".
Проверяю работу ФР, получаю минутную паузу (первая фискализация), далее все отлично, но в таком случае ФР1 с портом COM1 на TK1 уже не работает.
Обращаюсь в настройки СУБД и вижу что имеет место быть только запись о COM5 на %server_name% (соответственно работоспособным остается только COM5 на втором тонком клиенте.)
Переназначаю порт опять для первого ТК, отваливается второй.

Вот воюю с вариантами.
PS лог с обоих ТК выложу уже завтра.

Re: проблема с COM портом

KVIK » Чт сен 13, 2012 2:58 pm

1) Можно ли со стороны сервера узнать/определить что COM порт клиента успешно проброшен на сервер и на какой порт?
в втваре comN бросается на comN. Для однозначности надо родные комы сервака убрать от 5 и дальше (т.к. в втваре может быть 1-4). Если порт появился значит пробросило.
Например - не работает некое устройство на COM порту - к терминалу не всегда можно подключиться, с сервера для диагностики.
Запусти гипертерминал. Замкни на коме 2-3 контакты и поклацай по клаве, сразу будет видно работает физически порт или нет.
2) проброс производится на 1 физический COM порт сервера или на некий виртуальный порт, которых может быть много, как это определить? Или просто проброс serial port клиента в сессии RDP?
в RDP
4) в сетевом окружении со стороны сервера не видно терминальных клиентов, хотя clienthostname описан и отобразился в сервисах.
А зачем его видеть? :shock:

проблема с COM портом

365 » Чт сен 13, 2012 10:13 am

Здравствуйте!

Имеется:
1) сервер терминалов на Win2008 std (SP2 32 bit) - последние обновления, UAC отключен, IP 192.168.0.1 (WORKGROUP)
Установлено wtware 5.1.10 (дефолтная установка, но без USBip), DHCP от Wtware
На материнской плате имеется 1 COM порт, который после установки ОС был переименован согласно инструкции в COM11
Завели пользователя для теста User1 c правами локального администратора.
2) тонкий клиент (материнка ASUS AT4NM10T-I имеет 2 COM порта, в BIOS'e видно 2 COM порта)
на COM1 подключен фискальный регистратор Штрих ФР-К-мини
В настройка клиента Wtware включен serial=com1
В Тест драйвера при запуске на клиенте видно что фискальник определился на COM1 со скоростью 4800

Вопрос:
1) Можно ли со стороны сервера узнать/определить что COM порт клиента успешно проброшен на сервер и на какой порт?
Например - не работает некое устройство на COM порту - к терминалу не всегда можно подключиться, с сервера для диагностики.
2) проброс производится на 1 физический COM порт сервера или на некий виртуальный порт, которых может быть много, как это определить? Или просто проброс serial port клиента в сессии RDP?
3) как увеличить скорость COM порта, хотя бы до 9600 (про 11500 молчу) или задать жестко (на 1 клиенте порт определяется 4800, на другом 11500)
с этим вопросом сам разобрался - средствами утилиты управления ФР
4) в сетевом окружении со стороны сервера не видно терминальных клиентов, хотя clienthostname описан и отобразился в сервисах.
На ping по IP ответ есть, по имени хоста тишина.
Отсюда возникает другая проблема.
Успешное подключение к терминальному клиенту №1 произошло, на com1 - фискальник, на com2 - табло покупателя
Подключаю терминальный клиент №2 - подключаю фискальник на com5. В тест драйвера видно что фискальник на com5 с нужной мне скоростью, но создалось впечатление, что кто последний обратился к com порту того и тапки, так как после описания рабочего места в программе (имя клиента %servername% - %COM5%) перестал откликаться ФР на станции №1....

Спасибо.

Вернуться к началу