Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.12.19;
Скачать: CL | DM;

Вниз

работа с 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 вся ветка

Текущий архив: 2010.12.19;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.009 c
2-1285421559
Первокурсница
2010-09-25 17:32
2010.12.19
Одна кнопка работает, другая нет (добавление записей в БД)


2-1285589072
harikolo
2010-09-27 16:04
2010.12.19
Чтение и запись данных в Interbase через Delphi


15-1283874133
И. Павел
2010-09-07 19:42
2010.12.19
В честь чего такой гугл сегодня?


15-1283525303
Marser
2010-09-03 18:48
2010.12.19
Спустя восемь лет


15-1283858470
palva
2010-09-07 15:21
2010.12.19
Автор Компьютерры