|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
COM-порт и эмулятор
Пользуюсь эмулятором http://www.aggsoft.ru/com-port-emulator.htm
При ВЫключенном эмуляторе в переменную RD_hCOM возвращается handle порта Код:
RD_hCOM:=createfile (('COM3'), generic_read or generic_write, 0, nil, open_existing, FILE_FLAG_OVERLAPPED{0}, 0); При включенном эмуляторе в переменную RD_hCOM возвращается значение INVALID_HANDLE_VALUE. Пробовал другой эмулятор - то же самое. Пробовал поставить виртуальные COM-порты - то же самое. Пробовал пользоваться готовыми библиотеками компонентов ComPort Library. На "TComPort.Open;" при включенном эмуляторе выходит ошибка "Unable to open com port (Error: 5)" Пробовал сделать через обычный текстовый файл (отчаившись ): Код:
var f:TExtFile; s:string; i:Integer; begin i:=0; while (s='')and(i<10) do begin AssignFile(f, 'Com3'); Reset(f); read(f, s); inc(i); sleep(500); CloseFile(f); end; edit1.text:=s; end; При включенном эмуляторе выходит ошибка "File access denied." Скачал программу которая работает с COM-портами, при включенном эмуляторе также не получается открыть порт Может как-то операционкой блокируется или еще что? Кто-то сталкивался с подобным? |
#2
|
||||
|
||||
Попробовал программу, прям заинтересовался. По факту оказалось что она открывает порт и что-то туда пишет (что писать указываешь на второй вкладке). Обидно. Я тож сперва подумал, что программа эмулирует порт находящийся снаружи.
Посмотрел еще на сайте. Наверное стоит попробовать такой алгоритм: взять их Virtual Null Modem объединить пару портов, на один натравить эмулятор, вторым работать из своего софта. Таким образом получим в своей программе то что летит из эмулятора. Некоторые программисты настолько ленивы, что сразу пишут рабочий код. Если вас наказали ни за что - радуйтесь: вы ни в чем не виноваты. Последний раз редактировалось Aristarh Dark, 26.08.2015 в 09:32. |