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

Вниз

автоматическое считывание с com порта   Найти похожие ветки 

 
Denis_kas   (2010-11-21 14:27) [0]

Господа программисты. Как и при помощи чего можно считать информацию с ком порта автоматически (т.е. не по кнопке, а именно по приходу информации в порт).
Задача в следующем.
Имеется 2 компа соединенных через ком порты. Требуется сделать так, что бы по приходу 1 пакета информации в порт, принимающая сторона тутже выдала квитанцию о принятии.

На данный момент все происходит по кнопке "принять", "отправить" и естественно ни о какой квитанции речи быть не может..


 
Германн ©   (2010-11-21 15:18) [1]


> Как и при помощи чего можно считать информацию с ком порта
> автоматически


> На данный момент все происходит по кнопке "принять"

А как именно?


 
Denis_kas   (2010-11-21 15:22) [2]

Как именно принимаю:

procedure Tmain.Button3Click(Sender: TObject);
var
...
begin

...
  result := Read_Device(hCOM, o, Length(Input_Buffer), Input_Buffer);

  if (result <> 0) then begin
       Application.MessageBox("Ошибка чтения порта", "Ошибка", MB_OK);
  end;
...
  end;


А что требуется, вроде понятно описал.. или нет?


 
Германн ©   (2010-11-21 15:24) [3]


> Read_Device

Не знаю такую функцию WinAPI.

> А что требуется, вроде понятно описал

Понятно.


 
Вариант   (2010-11-22 05:44) [4]


> Denis_kas   (21.11.10 14:27)

Варианты:
1)
Изучить работу с портами через Windows API - в чем помогут книга Павла Агурова
"Последовательные интерфейсы ПК. Практика программирования"
или статьи по теме на различных сайтах + MSDN (функции SetCommMask, WaitCommEvent, ReadFile и еще приличный список функций)
2)
Установить какой-либо нормальный компонент работы с портом и изучить работу с ним

Первое даст больше в  личном плане для дальнейшей работы под Windows и не только с портом.


 
MBo ©   (2010-11-22 05:44) [5]

Последовательный порт извещает систему об изменениях своего состояния.
Если самому писать всё взаимодействие с портом, то появление данных в порту поможет обнаружить функция WaitCommEvent с EV_RXCHAR в маске.

Есть так же море готовых компонентов, у которых обычно есть событие вроде OnRXChar (например, ComPort автора Dejan Crnila)


 
tesseract ©   (2010-11-25 11:30) [6]

Открывать порт в отдельном потоке в OVERLAPPED режиме и ставить маску  EV_RXCHAR или просто считывать по байту в GetOverlappedResult.



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

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

Наверх




Память: 0.48 MB
Время: 0.005 c
4-1290338878
Denis_kas
2010-11-21 14:27
2019.01.06
автоматическое считывание с com порта


4-1290642303
delphi_forever
2010-11-25 02:45
2019.01.06
глобальный hook на клаву


2-1476366771
JohnKorsh
2016-10-13 16:52
2019.01.06
COM порт и BlueTooth


15-1476267406
Игорь Шевченко
2016-10-12 13:16
2019.01.06
Советую


15-1476048601
Юрий
2016-10-10 00:30
2019.01.06
С днем рождения ! 10 октября 2016 понедельник