Приём данных компьютером от контроллера, работа COM в Delphi

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
port_wine777
Открыл глаза
Сообщения: 61
Зарегистрирован: Пн окт 03, 2011 09:49:59

Приём данных компьютером от контроллера, работа COM в Delphi

Сообщение port_wine777 »

Здравствуйте. Тут встала у меня задача написать программу на Delphi для приема компьютером данных от контроллера atmega48. В общем проект такой, контроллер будет измерять множество аналоговых значений от датчиков температуры на элеваторе, эти значения будут временно храниться в памяти контроллера. Когда компьютер даст комманду контроллеру, передать ему измеренные значение от датчиков одной термоподвески (6 датчиков), по данному адресу, контроллер, в ответ на эту комманду, передаст измеренное значение + адреса датчиков в одной термоподвески+ данные для контроля правильности передачи, в общем контроллер передаст массив 12-14 байт. Передача будет происходить через преобразователь интерфейса UART -> USB (микросхема FT232RL). В общем сейчас столкнулся с проблемой приёма массива данных от контроллера. Для работы с COM портом в Delphi, я использую библиотеку comapi32.dll. Приём-то осуществляется, но у меня очень плохо организавана процедура приёма, хотелось бы сделать так чтобы при приеме компьютер был не сильно загружен и не и не выполнял лишних циклов, и была кокая-то обработка события, когда данные пришли на COM-порт. Помогите. Все проекты я прикрепляю сюда.
Вложения
archive.rar
Там мой проект
(248.96 КБ) 262 скачивания
Аватара пользователя
igor-x
Мудрый кот
Сообщения: 1817
Зарегистрирован: Пн ноя 29, 2010 15:58:43

Re: Приём данных компьютером от контроллера, работа COM в De

Сообщение igor-x »

аналогичную задачу решал на ComPort Library
Author information
Name: Dejan Crnila
Year of birth: 1978

Occupation: Student of computer and information science in University of Ljubljana
E-mail: dejancrn@yahoo.com
Home page: http://www2.arnes.si/~sopecrni
Home address: Dolenja vas 111, 3312 Prebold, SLOVENIA


Key features

· Platforms: Windows NT 4.0, Windows 2000, Windows 95, Windows 98
· Languages: Delphi 3, 4, 5, 6 and C++ Builder 3, 4, 5
· Components: TComPort, TComDataPacket, TComComboBox, TComRadioGroup, TComLed, TComTerminal
· Asynchronous or synchronous Read/Write operations
· Detailed flow control settings
· Read/Write operation timeouts
· Use of multithreading for monitoring port events
· Build terminal application without a line of code

· Source code included (cca 7000 lines)
· A Delphi context-sensitive help file
· and much more …

позволяет строить прием-передачу без всяких циклов ожидания флагов готовностей и прочего
orinoko

Re: Приём данных компьютером от контроллера, работа COM в De

Сообщение orinoko »

Могу ещё порекомендовать компонент TCommPortDriver
//----------
// UNIT : CPDrv.pas
// CONTENTS : TCommPortDriver component
// VERSION : 2.1
// TARGET : (Inprise's) Borland Delphi 4.0
// AUTHOR : Marco Cocco
// STATUS : Freeware
компилится как минммум до BDS2006, дальше не проверял. По поводу применения TComPort - у меня в своё время возникла с ним непобедимая проблема - при долговременной работе (0,5-2 суток) он где-то подвисал и приложение переставало работать, с предложенным мной таких вопросов не возникало
Ответить

Вернуться в «Интеграция с ПК»