Dubov 0 25 октября, 2018 Опубликовано 25 октября, 2018 · Жалоба Хочу получить данные с прибора ерез RS232. Через Putty все работает хорошо, посылаем 'ID' - в ответ получаем строку идентификации, посылаем 'QM' - получаем строку измерительных данных. В своей программе после посылки 'ID' я получаю '0', повторная посылка дает строку идентификации, но при посылке 'QM' получаю строку, полученную ранее, чтобы получить нужный ответ нужно отправить QM много раз. В чем может быть дело? Возможно нужно как-то очищать буфер? или еше что... как putty это делает? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 143 25 октября, 2018 Опубликовано 25 октября, 2018 · Жалоба 28 минут назад, Dubov сказал: В своей программе после посылки 'ID' я получаю '0', повторная посылка дает строку идентификации, но при посылке 'QM' получаю строку, полученную ранее, чтобы получить нужный ответ нужно отправить QM много раз. Возможно, ваша программа посылает неправильный перевод строки. Попробуйте поиграться с разными вариантами '\r','\n' P.S. "Неправильно" пишется слитно, исправил. Будьте внимательнее, особено в заголовке темы. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dubov 0 25 октября, 2018 Опубликовано 25 октября, 2018 · Жалоба спасибо за исправление. Я пробовал менять перевод строки - вообще ничего не работает. Так что перевод строки верный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 25 октября, 2018 Опубликовано 25 октября, 2018 · Жалоба 15 минут назад, Dubov сказал: Я пробовал менять перевод строки - вообще ничего не работает. Так что перевод строки верный. Гуглим "снифер COM-порта". Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 28 октября, 2018 Опубликовано 28 октября, 2018 · Жалоба On 10/25/2018 at 10:10 PM, Dubov said: Хочу получить данные с прибора ерез RS232. Через Putty все работает хорошо, . . . Проверьте, что из Вашей программы передается в прибор и с какими таймаутами. Сниффер - хороший вариант. Эконом-решение - это подключиться аппаратно (2 провода Tx GND) на Tx Вашего порта другим PC c тем же putty (или на том же PC если есть второй сериальный порт, желательно аппаратный). Если работаете из Win - смотрите API Win32 для COM-портов, настройки в структуре DCB. Тамже есть и команды управления буфером и потоком (CTS, RTS, DTR, DSR). ps - смотреть что передается по Tx надо в режиме просмотра терминала "HEX" psps - В Вашей программе скорее всего следует отключить (или наоборот, включить) управление потоком (CTS-RTS). Смотря как работает интерфейс опрашиваемого прибора. Если по 3 проводам - Tx-Rx-GND - то поток должен быть отключен (или использован нуль-модемный кабель с перемычками на CTS-RTS). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
xvr 12 29 октября, 2018 Опубликовано 29 октября, 2018 · Жалоба On 10/25/2018 at 10:10 PM, Dubov said: Через Putty все работает хорошо, посылаем 'ID' - в ответ получаем строку идентификации, посылаем 'QM' - получаем строку измерительных данных. А в putty ваши набираемые ID и QM видны? Т.е. прямо набираете на клавиатуре и видите на экране, что набираете? Если да (и в putty вы специально не включали локальное эхо), то ваша программа должна ждать на вход копию того, что она отправила, а за этой копией уже будет ответ. И принимать она (программа) должна постоянно - буфера не резиновые, могут переполнится (хотя для 3х символов вряд ли переполнятся) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jenya7 0 29 октября, 2018 Опубликовано 29 октября, 2018 · Жалоба Мне Putty не нравиться. Пользуюсь этим терминалом. termv19b.exe Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 190 29 октября, 2018 Опубликовано 29 октября, 2018 · Жалоба PuTTY очень неплохой терминал. Для большинства задач хватает, лично мне. Во всяком случае, если ПК-шное приложение, общающееся с железкой, должно быть красивым, делаю свою консоль с блэкджеком и с разноцветным текстом, шрифтами и пр. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 245 30 октября, 2018 Опубликовано 30 октября, 2018 · Жалоба 14 часов назад, Arlleex сказал: PuTTY очень неплохой терминал. Для большинства задач хватает, лично мне. Во всяком случае, если ПК-шное приложение, общающееся с железкой, должно быть красивым, делаю свою консоль с блэкджеком и с разноцветным текстом, шрифтами и пр. Поддерживаю. Putty - терминал с самой полной и корректной поддержкой ESC-последовательностей, Unicode и прочего, какой я только видел. И наименее глючный. Если-б ещё добавить: hex-режим, отправку шаблонов, Z-modem, версии под ведроид/яблокофон и ещё пару плюшек - вообще цены бы ему не было! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mikl74 0 30 октября, 2018 Опубликовано 30 октября, 2018 · Жалоба Можно к RX/TX логическим анализатором прицепиться. Заодно и таймауты увидеть. Возможно проблема с эхом (например Вы его ловите вместо ответа). Или с парсером. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SlavaV 0 5 ноября, 2018 Опубликовано 5 ноября, 2018 · Жалоба Нужно смотреть исходники, может Вы вообще ID отправляете в ASCII формате (как выше сказали сниффер хороший вариант, я пользуюсь Eltima он и тайм-метки показывает можно задержки посчитать) а очистить буфера можно: PurgeComm(hPort, PURGE_RXCLEAR | PURGE_TXCLEAR | PURGE_TXABORT | PURGE_RXABORT); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Zol 0 21 ноября, 2018 Опубликовано 21 ноября, 2018 · Жалоба В 28.10.2018 в 16:44, k155la3 сказал: Проверьте, что из Вашей программы передается в прибор и с какими таймаутами. Сниффер - хороший вариант. Эконом-решение - это подключиться аппаратно (2 провода Tx GND) на Tx Вашего порта другим PC c тем же putty (или на том же PC если есть второй сериальный порт, желательно аппаратный). Согласен. Один проводок подпаять на третий контакт(TX) передатчика (в нумерации разъема DB-9), второй - на пятый контакт (земляной) подпаять. Завести на комп с приемником/сниффером (на второй(RX) и пятый (земляной) контакты соответственно). Только не на горячую! Выводить на экране приемника, конечно, в HEX-виде - дабы ни один байтик не утёк. Но работа с осциллоскопом имеет свои прелести: на глазах и частота/скорость, и битики "парити", кои таковые включены.. А может, все-таки что-то с настройками? Если можно, посмотреть бы листинг прослушек с Putty и с проги. ЗЫ. Сам для приема юзаю Com Port Toolkit - в HEX-формате все как родное) PPS. Сейчас развелось море USB-to-COM адаптеров, так что дополнительный физический COM-порт не проблема Имхо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
toweroff 1 22 ноября, 2018 Опубликовано 22 ноября, 2018 · Жалоба Китайский анализатор за 300р с софтом от SaleaeLogic давно бы уже всё показал, ну чессслово... Да и вообще пригодится, ибо не только UART'ом мир полон Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться