|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.06.2013, 17:27 | #1 |
Дружелюбный
Форумчанин
Регистрация: 23.02.2012
Сообщений: 692
|
Чтение COM порта
Здравствуйте!
Я разбираюсь с COM портами. Сделал инициализацию и запись. С последним не уверен, т.к. особо не на что отправить. Работаю я в Delphi XE3, как я понял к ней нету стабильных компонентов для работы с ком портами. Подскажите пожайлуста работающую функцию для чтений из порта. Я пробывал эту: Код:
То что я зделал в приложении. Осталась только функция для чтения. Помогите пожайлуста... -==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
|
30.06.2013, 23:19 | #2 |
Дружелюбный
Форумчанин
Регистрация: 23.02.2012
Сообщений: 692
|
Код:
Код:
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
|
01.07.2013, 20:31 | #3 |
Дружелюбный
Форумчанин
Регистрация: 23.02.2012
Сообщений: 692
|
Короче, частично разобрался. Данные принимаю, но к сожалению в кривой иероглафической форме.
Кто знает, что это за кодировка и как перевести на нормальный язык??? -==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
|
01.07.2013, 20:45 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
похоже на UTF8.
а может у вас там бинарные данные, а не тупо текст? Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.07.2013, 20:50 | #5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
vovken1997, скопируйте и в любом онлайн-декодере попробуйте определить. Тоже подозреваю, что utf8 вперемешку с бинарными данными
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
01.07.2013, 21:54 | #6 | |
Дружелюбный
Форумчанин
Регистрация: 23.02.2012
Сообщений: 692
|
Я общаюсь с платой Arduino UNO в которой запрограммирован код:
Код:
Не раскодируется, пример текста: Цитата:
-==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
Последний раз редактировалось vovken1997; 01.07.2013 в 22:02. |
|
01.07.2013, 22:55 | #7 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
вам нужен маркер начала пакета данных, у вас скорее всего теряется пару байт.
так же если у вас юникод делфи, то читать надо в ансистроки. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
01.07.2013, 23:07 | #8 | |
Дружелюбный
Форумчанин
Регистрация: 23.02.2012
Сообщений: 692
|
Вот такая у меня ситуация. С платой я ошибался, я отправлял цифры как строку, когда попробывал передать как цифры, к примеру передовал 54, то получил:
Цитата:
Как теперь сделать, чтоб принимать не циифры, а буквы? -==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
|
|
01.07.2013, 23:35 | #9 |
Дружелюбный
Форумчанин
Регистрация: 23.02.2012
Сообщений: 692
|
УРА!!!!!!!!!!
Вся информация отправленная с платы в нормальном виде приходит на компьютер, если забыть про то, что перед каждой строчкой знак "+", но его легко убрать. До платы вся информация идёт в ASCII кодировке. То есть отправили вы "0", прийдёт на плату "48" и т.д. Пример программы для Arduino UNO: Код:
Теперь, если плата подключена к компьютеру, можно открыть COM терминал, подключиться к порту на котором находиться плата, и отправив "1", к примеру, зажеч светодиод на 7-ом порту, а отправив "0", вы его потушите и т.д. В вложении исходник терминала, может кому пригодиться. -==ЛЮБОЕ ЗНАНИЕ ДОСТИГАЕТСЯ ТОЛЬКО СОБСТВЕННЫМИ УСИЛИЯМИ!!!==-
Последний раз редактировалось vovken1997; 02.07.2013 в 00:29. Причина: Всё получилось, вопросы заменены на исходники |
09.11.2013, 11:32 | #10 |
Новичок
Джуниор
Регистрация: 09.11.2013
Сообщений: 1
|
Я тоже работаю с делфи и ардуино, пробовал отправлять данные на ардуино с делфи через порт, спокойно отправляется, что цифры, что буквы. С платы в порт тоже отправить данные не проблема, но вот принять данные на дельфи, это уже проблема, не могу разобраться что к чему, язык ардуино знаю, но в дельфи не силен может кто поможет?
|
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение com-порта на java | danyamaster | Фриланс | 3 | 15.02.2013 14:09 |
Склейка шестнадцатиричных чисел, чтение с COM порта | vpn | Общие вопросы C/C++ | 2 | 05.02.2013 10:05 |
Чтение с COM-порта через HyperTerminal | rashid1988 | Общие вопросы Delphi | 9 | 20.04.2012 09:56 |
Чтение данных с COM порта 232 | Dimitr_88 | Общие вопросы C/C++ | 10 | 03.09.2010 10:39 |
чтение с COM-порта в отдельном потоке не получается | lexluter1988 | Общие вопросы .NET | 2 | 25.05.2010 20:40 |