Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2010.12.19;
Скачать: [xml.tar.bz2];

Вниз

работа с com-портом   Найти похожие ветки 

 
M_Corvinus ©   (2009-05-21 14:42) [0]

есть программка
вот ее соединение с портом (portmon)

2 0.00004945 ntvdm.exe IRP_MJ_CREATE Serial0 SUCCESS Options: Open
3 0.00000279 ntvdm.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
4 0.00000196 ntvdm.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
5 0.00000168 ntvdm.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
6 0.00000168 ntvdm.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
7 0.00000168 ntvdm.exe IOCTL_SERIAL_GET_BAUD_RATE Serial0 SUCCESS
8 0.00000168 ntvdm.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
9 0.00000168 ntvdm.exe IOCTL_SERIAL_GET_CHARS Serial0 SUCCESS
10 0.00000168 ntvdm.exe IOCTL_SERIAL_GET_HANDFLOW Serial0 SUCCESS
11 0.00000810 ntvdm.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 1200
12 0.00000419 ntvdm.exe IOCTL_SERIAL_CLR_RTS Serial0 SUCCESS
13 0.00000419 ntvdm.exe IOCTL_SERIAL_CLR_DTR Serial0 SUCCESS
14 0.00000307 ntvdm.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 7
15 0.00000196 ntvdm.exe IOCTL_SERIAL_SET_CHAR Serial0 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
16 0.00000810 ntvdm.exe IOCTL_SERIAL_SET_HANDFLOW Serial0 SUCCESS Shake:0 Replace:0 XonLimit:2048 XoffLimit:512
17 0.00000196 ntvdm.exe IOCTL_SERIAL_LSRMST_INSERT Serial0 SUCCESS Char: ffffffff
18 0.00000447 ntvdm.exe IOCTL_SERIAL_SET_QUEUE_SIZE Serial0 SUCCESS InSize: 8192 OutSize: 100
19 0.00000168 ntvdm.exe IOCTL_SERIAL_GET_TIMEOUTS Serial0 SUCCESS
20 0.00000196 ntvdm.exe IOCTL_SERIAL_SET_TIMEOUTS Serial0 SUCCESS RI:-1 RM:0 RC:0 WM:0 WC:0
21 0.00000419 ntvdm.exe IOCTL_SERIAL_SET_DTR Serial0 SUCCESS
22 0.00000419 ntvdm.exe IOCTL_SERIAL_CLR_RTS Serial0 SUCCESS
23 0.00000447 ntvdm.exe IOCTL_SERIAL_CLR_RTS Serial0 SUCCESS
24 0.00000168 ntvdm.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
25 0.00000335 ntvdm.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 5
26 0.00000168 ntvdm.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial0 SUCCESS
27 0.00000307 ntvdm.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial0 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
28 0.00000782 ntvdm.exe IOCTL_SERIAL_SET_BAUD_RATE Serial0 SUCCESS Rate: 9600
29 0.00000754 ntvdm.exe IOCTL_SERIAL_GET_MODEMSTATUS Serial0 SUCCESS
30 0.00000531 ntvdm.exe IOCTL_SERIAL_SET_WAIT_MASK Serial0 SUCCESS Mask: RXCHAR CTS DSR RLSD ERR RING
31 0.00000000 ntvdm.exe IOCTL_SERIAL_WAIT_ON_MASK Serial0

меня интересует строка:

IOCTL_SERIAL_LSRMST_INSERT Serial0 SUCCESS Char: ffffffff

что это значит, и как это повторить на Delphi?
или можно обойтись и без этой строки?

все остальное работает

заранее благодарен за ответ


 
Сергей М. ©   (2009-05-21 15:30) [1]

http://msdn.microsoft.com/en-us/library/aa363403(VS.85).aspx


 
M_Corvinus ©   (2009-05-21 15:50) [2]

я пробовал использовать эту функцию
вот что delphi думает по поводу IOCTL_SERIAL_LSRMST_INSERT

[Error] ComPort.pas(188): Undeclared identifier: "IOCTL_SERIAL_LSRMST_INSERT"


 
Сергей М. ©   (2009-05-21 15:58) [3]

Так а ты что, лезешь в порт через DEVICE_IO_CONTROL ?
А чем не подходят обычные файловые методы доступа к этому ресурсу ?


 
M_Corvinus ©   (2009-05-21 16:14) [4]

Вот что я нашел:

Управляющий код IOCTL_SERIAL_LSRMST_INSERT разрешает или запрещает помещение значений состояния линии и состояния модема в обычный поток данных, который прикладная программа получает через посредство функции ReadFile.

Я работаю с портом через обычные функции.
И у меня уже есть работающие программы для com-порта

Для данного устройства есть прога в комплекте, но она малофункциональная
Я хочу написать похожую

я перехватывал команды которые прога посылает на устройство и столкнулся с этой строкой
всё остальное мне знакомо и я знаю как его настроить
Меня интересует, зачем ЭТА строка в инициализации порта.

не будет ли проблем с устройством, которое подключено к порту, если я пропущу этот момент.


 
Сергей М. ©   (2009-05-21 16:16) [5]

http://msdn.microsoft.com/en-us/library/ms904001.aspx
http://source.winehq.org/source/include/ddk/ntddser.h


 
Сергей М. ©   (2009-05-21 16:19) [6]


> не будет ли проблем с устройством, которое подключено к
> порту, если я пропущу этот момент.


Т.е. ты пишешь приложение для работы с произвольным устройством, не обязательно являющимся модемом ?

Обрати внимание


> разрешает или запрещает помещение значений состояния линии
> и состояния модема


 
M_Corvinus ©   (2009-05-21 16:30) [7]

это эмбосер, если знаеш, что это такое

я потому и спрашиваю про эту строку, потому что это далеко не модем :)
он принимает команды от тестовой версии программы, но мне интересно не возникнет ли проблема при дальнейшем использовании.

а если вдруг возникнет, то как повторить эту строку  на delphi


 
Сергей М. ©   (2009-05-21 16:39) [8]


> это далеко не модем


Не модем.
Но подключается или не подключается он к линии состояния устройства COM-порта - это ты должен выяснить сам. Судя по приведенному тобой протоколу похоже что подключается. Если подключается и ты желаешь контролировать состояние устройства через файловый поток, получаемый при при вызовах ReadFile, то подача команды IOCTL_SERIAL_LSRMST_INSERT действительно необходима.

Константа IOCTL_SERIAL_LSRMST_INSERT расчитывается как показано в [5]



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2010.12.19;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
2-1285489618
Igorishe
2010-09-26 12:26
2010.12.19
сеансы


4-1242801996
Miracle
2009-05-20 10:46
2010.12.19
Запрет доступа к съёмным носителям с помощью SetNamedSecurityInfo


2-1285157997
Den
2010-09-22 16:19
2010.12.19
Подскажите как построить запрос


15-1283977772
Юрий
2010-09-09 00:29
2010.12.19
С днем рождения ! 9 сентября 2010 четверг


15-1283891373
Юрий
2010-09-08 00:29
2010.12.19
С днем рождения ! 8 сентября 2010 среда





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский