|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Июн 12, 2003 19:04:23 Собрал ИК-девайс, состоящий из ИК-приемника, кондера, диода, и двуч резисторов.Винда ОПРЕДЕЛИЛА его(!!!) как S200!!!!!!! Кто ей сказал, что мое творение так и называется? Как вообще Винда спрашивает всяческие девайсы как их зовут и кто они такие? (В данном случае речь о СОМ-порте) |
|
|
Дата: Июн 13, 2003 06:59:22 Чаво? |
|
|
Дата: Июн 13, 2003 11:24:12 · Поправил: hGoblin Мне интересен формат запроса по COM, когда Win ищет устройства ("Найдено неизвестное устройство","Найден факс-модем Rockwell Ext...",etc"). Каким языком оные девайсы сообщают свои имена, Винда ведь находит и те что ей не могут быть известны? Я искал в Инете, но проблема формулировки вопроса в поиске делает свое темное дело :( , неужели никто не задумывался ? |
|
|
Дата: Июн 14, 2003 14:44:12 Да, вот еще, нашел ссылку на сайт, откуда эта схема (IR-device) взялась, если кого заинтересовало, сходите: http://winlirc.sourceforge.net/-WinLIRC-портированная под Win Linux IR Control http://www.lirc.org/receivers.html-Описание Lirc и схемы девайсов |
|
|
Дата: Июн 14, 2003 17:32:20 Ответить не смогу, но меня интересует на какие контакты + земля и выход с приёмника. У меня соответственно 7 5 и 1. И вопрос кто зает как получить из Win98, что приходит на СОМ. ReadFile считывает 0 байт. invoke CreateFile,ComName,GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMA L,0 mov [pt],eax invoke ReadFile,[pt],_rt,nsim,sim,0 |
|
|
Дата: Июн 14, 2003 19:19:14 · Поправил: Quantum invoke CreateFile,OFFSET ComName,GENERIC_READ,0,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0 mov pt,eax invoke SetCommState,eax,OFFSET newDCB invoke SetCommTimeouts,pt,OFFSET newTimeOuts Далее SetCommMask + WaitCommEvent или ReadFile... |
|
|
Дата: Июн 15, 2003 05:13:41 кто зает как получить из Win98, что приходит на СОМ Можно чрез сокеты - так имхо проще и надежней |
|
|
Дата: Июн 15, 2003 17:07:06 hGoblin Подробней можно? А тоя почитал про Socket-ы так на сколько я понял, там обращение идёт к протоколам типа TCP/IP. А о получении информации о состояния бита DCD вроде не заметил. |
|
|
Дата: Июн 15, 2003 17:43:18 · Поправил: hGoblin Почитай Iczelion' овскую статью Asmsockguide по этому поводу.(На его сайте, если не найдешь, могу скинуть на мыло) Я еще сам до конца не разобрался с сокетами, но точно могу сказать, что все эти состояния там абстрагированы до предела. В общем все выглядит примерно так: .data wsadata WSADATA <> .code invoke WSAStartup, 101h,addr wsadata invoke socket,AF_INET,SOCK_STREAM(!),0 invoke bind.... invoke listen.... invoke closesocket.... invoke WSACleanup.... Все это есть в SDK, кстати можно изучить сырец WinLIRCa(120k, лежит там же, где и LIRC - он портирован из Linuxa, поэтому, как и на Родине работает с сокетами(server.cpp)) |
|
|
Дата: Июн 16, 2003 00:20:57 hGoblin Посмотрел исходник WinLIRCa. На сколько я смог понять server.cpp предназначен для связи с интернетом для чего не разобрал, а файл driver.cpp инициализирует порт СОМ и ожидает событий по линии RLSD (receive-line-signal-detect), что с моим НЕ знанием английского может сойти за сигнал обнаружения несущей. Именно на него согласно имеющихся схем подключения и должен бы приходить выход с рессивера. Я подключел его к RD и ReadFile читает какието значения, но похоже это какая-то ерунда. Каждый пульт дает одно своё значение для любой кнопки. |
|
|
Дата: Июн 16, 2003 05:26:41 · Поправил: Quantum Я подключел его к RD и ReadFile читает какието значения, но похоже это какая-то ерунда. А вы настроили UART? (BaudRate, чётность, StopBits и т.д.) Гляньте описание SetCommState и SetCommTimeouts ЗЫ: Я против использования WinSock для чтения / записи физических портов. |
|
|
Дата: Июн 16, 2003 07:33:58 · Поправил: hGoblin Quantum Да, похоже облом. LIRC юзает сокеты не для Инета, а для связи с программами-клиентами (которые могут быть как на локальном компе, так и на удаленном - LIRCу это неинтересно). Обидно даже. А с пульта должны идти пакеты импульсов друг за другом. ReadFile ловит только какие-то судороги при нажатии кнопки. Все параметры порта тусовал как мог - результат один. Пойду перечитывать исходники LIRCа - он же работает |
|
|
Дата: Июн 16, 2003 09:20:21 Надо было сырец читать и мозгами думать!!!Никто не обещал, что RTS выставят в 1.Сижу как идиот,и читаю обесточенный ИК-приемник...Ж:\ Все, ухожу в монастырь,только дочитаю свою тыкалку... .data dcb DCB <> ... .code invoke CreateFile, addr hPort, GENERIC_READ or GENERIC_WRITE, 0,0,OPEN_EXISTING, 0, NULL mov dcb.BaudRate,0 mov dcb.fDtrControl,DTR_CONTROL_ENABLE mov dcb.fRtsControl,RTS_CONTROL_ENABLE mov dcb.fBinary,1 invoke SetCommState, addr hPort,addr dcb invoke SetCommMask, addr hPort, EV_RLSD getc: invoke GetCommModemStatus,addr hPort,addr status mov eax,[status] cmp eax,MS_RLSD_ON jz OK jmp getc OK: обрабатываем status, (у меня выходит какая-то фигня в больших количествах, зато четко по нажатию кнопки пульта!!!) |
|
|
Дата: Июн 16, 2003 17:53:44 Смотрел исходники WINLirc-а не могу понять вот, что в процедуре ThreadProc время получается двумя способами time и QueryPerformanceCounter но используется только значение полученное из time. Вопрос почему? При чем отсутствуют провероки типа если высокочастотного таймера нет используем обычный, а если есть то высокочастотный. И ещё вопрос в каких единицах возвращается значение из QueryPerformanceCounter? |
|
|
Дата: Июн 16, 2003 18:17:26 >в каких единицах возвращается значение из QueryPerformanceCounter? В SDK написано - в тиках. (а QueryPerformanceFrequency говорит сколько оных тиков в секунду) А что это - высокочастотный таймер? |