|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
26.07.2019, 20:48 | #1 |
Пользователь
Регистрация: 24.04.2012
Сообщений: 68
|
Читать comport
Здравствуйте, дорогие программисты.
Сегодня начал изучать comport, arduino (ардуино это другой вопрос) С ардуино посылаются данные (цыфры). я хочу читать порт, через делфи. Записывать через определенное время в файл. и данные из файла отправлять на веб-сервер. далее отображать в виде графика на сайте. Все пункты мне подсильны, кроме чтения com порта. (пользовался и гуглом и форумом) Подскажите пожалуйста, почему я не могу вывести прочтенные данные из com port в memo. Выходит пустота. api и прочее я бросил. скачал компонент afcomport . Терминал показывает, что приходят данные, а афкомпорт не пишет их в мемо. Бросил самому что-то делать. Загуглил решение, думал, сейчас все заработает, но нет.. Код:
Последний раз редактировалось Вадим Мошев; 26.07.2019 в 22:53. |
26.07.2019, 21:10 | #2 |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Да чё там делать то?
ReadString читает строку до появления пары символов NL=#$13#$10. Если ваша arduino их не отправляет, то вы ничего и не считаете. Какой таймаут у компонента? Плюс вопрос какая версия Delphi у вас? Строки бывают ANSI,Unicode, Utf8 в каком формате у вас строке передаются и в каком читаются?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . Последний раз редактировалось Pavia; 26.07.2019 в 21:16. |
26.07.2019, 21:18 | #3 | |
Пользователь
Регистрация: 24.04.2012
Сообщений: 68
|
Цитата:
1. тайм аут у компонента я не нашел, что такое. (скорость 9600). А ардуино delay(500); 2. Делфи 7 ) Я что-то не указал в самом ардуино? (формат отправляемых данных или в самой делфе не указал что-то? |
|
26.07.2019, 22:45 | #4 | |
Лис
Старожил
Регистрация: 18.09.2015
Сообщений: 2,409
|
Цитата:
Тогда путь такой. 1 проверяем провода. GND ком портов должна быть соединена для выравнивания потенциала. Что-бы 0 у компа был равен 0 у микроконтролёра. TX, RX должны быть соединены крест-накрест TX->RX RX->TX Запускаем любой терминал: WindowsTerminal, Putty, Terminal 1.9b Лучше последнюю программу из списка. Пробуем передавать и читать данные. Если данные приходят и не бьются не пропадают. Значит с железом всё нормально. Если данные не доходят или бьются то проблема аппаратная. Контакт плохой. Собственно далее пробуйте в своей программе читать группу байт. Если всё ок можно переходить к строкам. Тут навечки думают что если они напишут writestring то readstring сработает. Это не так, так как без символов <конец строки> процессор не знает когда остановиться и будет читать до отказа.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
У дзен программиста программа делает то что он хотел, а не то что он написал . |
|
27.07.2019, 01:51 | #5 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
Бредовое решение. Событие TAfComPort.OnDataRecived вызывается когда в буфере СОМ-порта появляется некоторое количество байт. Как правило это 4 или 8, но возможны и другие варианты. В любом случае количество принятых СОМ-портом байт указано в параметре Count. В обработчике этого события нужно просто принять эти байты процедурой/функцией типа Read или ReadBuffer или что там в этом компоненте как называется. Но ни в коем случае не ReadString!
ReadString процедура синхронная. Она не должна использоваться в асинхронном обработчике. Последний раз редактировалось northener; 27.07.2019 в 01:58. |
27.07.2019, 18:34 | #6 | |
Пользователь
Регистрация: 24.04.2012
Сообщений: 68
|
Цитата:
Код:
|
|
28.07.2019, 01:33 | #7 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,872
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Delphi 7 ComPort library | sarsen | Помощь студентам | 2 | 04.12.2016 21:08 |
ComPort Library | tarakan1983 | Компоненты Delphi | 11 | 21.07.2016 22:39 |
Установка comport на ХЕ | IliaIT | Компоненты Delphi | 7 | 22.10.2015 16:47 |
ComPort | fedor6124 | Общие вопросы Delphi | 0 | 28.10.2011 21:22 |