Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как определить к какому COM порту подключен сканер штрих кодов? / 25 сообщений из 27, страница 1 из 2
28.06.2005, 16:01:10
    #33138707
LAVix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
Здравствуйте, все!
Подскажите, как можно определить к какому порту подключен сканер штрих кодов. Для работы с ним использую microsoft communication control 6.0.
Проблема состоит в том, что необходимо информировать юзеря о том, что к выбранному им порту подрублен сканер или нет.
Заранее, спасибо!
...
Рейтинг: 0 / 0
28.06.2005, 16:10:30
    #33138729
ГенГрум
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
Я со сканером не работа там есть какая-либо команда по ответу на которую ты определишь что это сканер? И по хорошему ты должет пробежится по 4 портам и опросить все.После чего дать выбор каким сканером пользоваться если их несколько или ничего не спрашивать если он один. Зачем продавцу знать куда подключен сканер?
...
Рейтинг: 0 / 0
28.06.2005, 16:14:37
    #33138739
LAVix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
ГенГрум,
именно так я и делаю. Циклю все порты, а остановиться мне надо если порты кончились или нашелся порт с подключенным сканером. В том то и проблема, что я не знаю как определить подключен к данному порту сканер или нет. Кстати, сканер всегда подключен только один. Марка сканера Metrologic MS6220 RS232/LTPN.
...
Рейтинг: 0 / 0
28.06.2005, 16:27:59
    #33138773
ГенГрум
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
Давай определимся ты можешь узнать есть ли сканер на данном порту?
...
Рейтинг: 0 / 0
28.06.2005, 16:30:51
    #33138786
ГенГрум
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
И почитай тут
...
Рейтинг: 0 / 0
28.06.2005, 16:31:37
    #33138792
LAVix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
Нет, я могу только определить, что COM порт с таким то номером есть на данном компьютере. А, что к нему еще подцеплен сканер - вот это и есть моя проблема.
...
Рейтинг: 0 / 0
28.06.2005, 16:33:33
    #33138799
ГенГрум
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
...
Рейтинг: 0 / 0
28.06.2005, 16:40:13
    #33138816
LAVix
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
Спасибо за ссылки, только все это я уже видел. К сожалению та информация мне не помогла.
...
Рейтинг: 0 / 0
28.06.2005, 17:03:37
    #33138873
ГенГрум
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
дока по сканеру у тебя есть?
...
Рейтинг: 0 / 0
28.06.2005, 17:20:54
    #33138917
Петров Андрей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
Работал со сканером. Сначала заморачивался с определением порта а потом подумал - зачем? Просто зафиксировал и все.

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

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

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

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

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

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

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
29.06.2005, 22:17:53
    #33141558
luser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
Соврал чуток. Не поздним, а ранним на этапе разработки сигнального сокласса в СOM EXE.
...
Рейтинг: 0 / 0
30.06.2005, 03:52:08
    #33141703
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
Hi luser!

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

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
30.06.2005, 09:49:20
    #33141876
luser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить к какому COM порту подключен сканер штрих кодов?
Не. Я вообще 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
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Как определить к какому COM порту подключен сканер штрих кодов? / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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