powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как определить к какому COM порту подключен сканер штрих кодов?
27 сообщений из 27, показаны все 2 страниц
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138707
LAVix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, все!
Подскажите, как можно определить к какому порту подключен сканер штрих кодов. Для работы с ним использую microsoft communication control 6.0.
Проблема состоит в том, что необходимо информировать юзеря о том, что к выбранному им порту подрублен сканер или нет.
Заранее, спасибо!
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138729
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я со сканером не работа там есть какая-либо команда по ответу на которую ты определишь что это сканер? И по хорошему ты должет пробежится по 4 портам и опросить все.После чего дать выбор каким сканером пользоваться если их несколько или ничего не спрашивать если он один. Зачем продавцу знать куда подключен сканер?
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138739
LAVix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГенГрум,
именно так я и делаю. Циклю все порты, а остановиться мне надо если порты кончились или нашелся порт с подключенным сканером. В том то и проблема, что я не знаю как определить подключен к данному порту сканер или нет. Кстати, сканер всегда подключен только один. Марка сканера Metrologic MS6220 RS232/LTPN.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138773
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давай определимся ты можешь узнать есть ли сканер на данном порту?
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138786
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И почитай тут
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138792
LAVix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нет, я могу только определить, что COM порт с таким то номером есть на данном компьютере. А, что к нему еще подцеплен сканер - вот это и есть моя проблема.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138799
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138816
LAVix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ссылки, только все это я уже видел. К сожалению та информация мне не помогла.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138873
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
дока по сканеру у тебя есть?
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138917
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работал со сканером. Сначала заморачивался с определением порта а потом подумал - зачем? Просто зафиксировал и все.

ЗЫ Команды на ответ от сканера в доке не было...
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33138943
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что и команды типа какой штрих код сейчас или about тоже нет? Ну хоть что-то ты получить с него можешь?
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33139055
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Петров Андрей
эт точно просто лепишь его на com1 например и все
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33139299
luser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что там состояние на DTR, CRS и и другое состояние сигналов линий интерфейса RS-232 MS Com Control отследить не позволяет что ли ? Иначе как бы можно было рулить не то что сканером, а модемом через этот контрол. :) Не отзывов нужно ждать от посылок,а смотреть что на линиях сигналов. Уж если оборудование подключено, то это будет одно состоние, если нет - другое.
Вотыкни монитор COM - портов и сам увидишь, какие у тебя сигналы на порту с подключенным сканером, а какие с неподключенным.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33140281
LAVix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ГенГрум, Доки на сканер нет, вернее есть, но чистое описалово Юзверя.

А насчет, идеи про сигналы с порта буду смотреть.
Спасибо всем откликнувшимся!
И еще кто нибудь знает где взять описалово MCC 6.0?
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33140505
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
http://helpsite.narod.ru

VB->OCX->MSCOMM32
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33140521
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА что там состояние на DTR, CRS и и другое состояние сигналов линий интерфейса RS-232 MS Com Control отследить не позволяет что ли ? Иначе как бы можно было рулить не то что сканером, а модемом через этот контрол. :) Не отзывов нужно ждать от посылок,а смотреть что на линиях сигналов. Уж если оборудование подключено, то это будет одно состоние, если нет - другое.
Вотыкни монитор COM - портов и сам увидишь, какие у тебя сигналы на порту с подключенным сканером, а какие с неподключенным.

А поподробнее... Как это делается например в С++?
Кстати помоему не CRS а CTS = Clear To Send. Насколько я помню распайку этих проводков может вообще не быть. Обязательно должны быть чтение/запись (2,3) и земля (7) помоему (9 контактный разъем)
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33140963
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Глянь тут на форуме. Интересный поход. А я пользовался для ком порта ActiveX MsComm32. Кидаешь его на форму а внутри все что надо. Правда потом перешел на Dll C. Попользуйся поиском.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33140993
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПравда потом перешел на Dll C

Ну так а почему перешел то? Чем MsComm не устраивал?
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33141105
Фотография ГенГрум
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скоростью. Опрос счетчиков + построение графа раз в секунду. Граф переделать не мог - пришлось переделать прием.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33141123
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм. Аналогичная задача у меня. Добился скорости опроса в 50 мс. Т.е. нужно читать порядка 18 датчиков в секунду. Наверное у Вас их было больше. Хотя в этом случае все зависит от прибора а не от способа считывания ИМХО.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33141128
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ааа все понял. Это график тормозил... Извиняюсь... :-)
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33141555
luser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА поподробнее... Как это делается например в С++?

Для начала нужно знать вот это:

EV_BREAK Состояние разрыва приемной линии
EV_CTS Изменение состояния линии CTS
EV_DSR Изменение состояния линии DSR
EV_ERR Ошибка обрамления, перебега или четности
EV_RING Входящий звонок на модем (сигнал на линии RI порта)
EV_RLSD Изменение состояния линии RLSD (DCD)
EV_RXCHAR Символ принят и помещен в приемный буфер
EV_RXFLAG Принят символ заданый полем EvtChar структуры DCB использованой для настройки режимов работы порта
EV_TXEMPTY Из буфера передачи передан последний символ


потом создаем поток и крутим в нем в цикле опрос с перекртым вводом-выводом, примерно так :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
DWORD dwEvtMask;
OVERLAPPED osWaiting={ 0 };
OVERLAPPED osReader ={ 0 };
BOOL bSuccess =TRUE;
DWORD dwBytesTransferred= 0 ;
DWORD dwBytesRead= 0 ;

osWaiting.Offset     =  0 ; 
osWaiting.Offset     =  0 ; 
osWaiting.hEvent = ::CreateEvent(NULL, TRUE, FALSE, NULL);

osReader.Offset     =  0 ; 
osReader.Offset     =  0 ; 
osReader.hEvent = ::CreateEvent(NULL, TRUE, FALSE, NULL);

COMSTAT ComStat;
LPDWORD lpErrors = 0 ;
DWORD cbInQue;
bFlagRun =  TRUE;

 while(bFlagRun)
	 {
		 if (!(WaitCommEvent(hCom, &dwEvtMask, &osWaiting)))
			 if (WaitForSingleObject(osWaiting.hEvent, INFINITE)==WAIT_OBJECT_0) 
				 GetOverlappedResult(hCom, &osWaiting, &dwBytesTransferred, TRUE);

	if (dwEvtMask&EV_RXCHAR)  {код обработки события}
	
	if (dwEvtMask&EV_RXFLAG)  {код обработки события}
	
	if (dwEvtMask&EV_RXFLAG) 	{код обработки события}

            if (dwEvtMask&EV_CTS) 	{код обработки события}
Ну и так далее.

P.S Все это я давно запихнул в FLL и повесил через IDispatch на СOM сервер написанный на фоксе. Потом поздним связываение завязал на Implements
класса и получил полную асинхронную работу устройств(от 4 до 48) на портах (разных) с событийной обработкой в фоксе.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33141558
luser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Соврал чуток. Не поздним, а ранним на этапе разработки сигнального сокласса в СOM EXE.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33141703
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi luser!

Т.е. тебе удалось заставить нормально работать события в ActiveX контроле помещённом на форму? А инициируешь опрос ты каким-то методом этого контрола или как?
IMHO тут как раз проявляется кривость фоксовой реализации COM-контроллера - если дёрнуть метод контрола, а он в процессе своей работы попытается генерить события, то фоксовые обработчики скорее всего будут молчать (т.е. просто игнорироваться). А вот как раз в случае с поздним связыванием (и как следствие НЕ использованием OleControl) всё работает как и задумывалось...

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33141876
luser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не. Я вообще Active-X не пользуюсь. Делаю так:
1) Получаю все порты в системе;
2) Открываю порт, и получаю IID класса из COM написанного на фоксе.
Тут следует заметить, что в COM валяеться 2 класса. Собственно сам класс
методы которого при событии будут выполняться и САLLBACK сокласс выполнение методов которого вызовет выполнение методов класса(твоего) уже в приложении.

#import "asyncsqlsvr.exe" rename_namespace("SRVAsync")
using namespace SRVAsync;

IStream* pStream; -> это для маршалинга, чтобы в потоке не потерять
ссылку на IDispatch класса.

extern const IID IID_AsyncQuery ={0x795B6314, 0x7E2C, 0x40A3,
{0xAC, 0x4C, 0x37, 0x04, 0x30, 0xEC ,0xDE, 0xA9}}; -> а это можно посмотреть через OLE View или в файле
asyncsqlsvr.tlh который создастся после выполнения дириктивы #import

Вот совственно и все. Все что нужно, это знать iDispatch класса.
Это получаем This.iDispath = Sys(3095, ваш созданный объект или ссылка на интерфейс)

В принципе, все.
Инициализируем порт, сохраняем IDispath в потоке маршалинга, запускаем поток опроса портов, восстанавливаем из потока маршилинга IDispath приведенный к объекту и дергаем его методы:

CoInitialize(0);
IasyuncqueryPtr IApp;
CoGetInterfaceAndReleaseStream(pStream, IID_AsyncQuery, (void**) &IApp);
SetEvent (hTStart);
IApp ->RunCmdAsync(); -> вот это вызов метода класса COM EXE
CoUninitialize();
return 0;

Может расплавчато, но думаю, что общая идея ясна. Если нужно попдробней, можно и поподробней.
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33142693
Петров Андрей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин ну все равно я не понял. Ты говоришь про работу с модемом - у него все каналы задействованы. А при работе с другими устройствами могут быть не все. Впринципе тот же MsComm делает примерно тоже самое и для реакции на события там есть спец. метод OnComm.
А вот то что твой класс работает в паралельном потоке это зашибись.

ЗЫ Хорошо все таки знать С++ :-)
...
Рейтинг: 0 / 0
Как определить к какому COM порту подключен сканер штрих кодов?
    #33144047
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi luser!

А, так ты "наоборот" сделал... Т.е. пользуешь VFP COM класс из С++ проги, ну тогда понятно :)

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
27 сообщений из 27, показаны все 2 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как определить к какому COM порту подключен сканер штрих кодов?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]