Форум: "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