|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.10.2012, 17:52 | #1 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
QExtSerialPort, работа с битом RTS
Исходные данные:
COM - порт, реализующий RS-485, с аппаратным контролем потока. Qt в связке с библиотекой QExtSerialPort. Чтение данных, приходящих из порта, идет на ура. Функция записи в порт не пишет ничего, причем именно для RS-485. Если порт будет реализовывать RS-232 или RS-422, все шикарно работает. Исходник функции отправки (по заданию вызывается по завершению приема сообщения): Код:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
16.10.2012, 19:29 | #2 | |
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
И вообще: Код:
1- проконтролируйте саму передачу на TX (пин 3) - RS-232 2- проконтролируйте установку RTS и единичного уровня на 2-3 ноге драйвера ADM485/ST-485, т.е. убедитесь, что в вашем конверторе реализуется не обратная логика по RTS в ноль, а прямая 3- проконтролируйте передачу на A-B RS-485-го интерфейса ...осциллом или внешним терминалом
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
|
17.10.2012, 05:27 | #3 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
От замены true на false ничего не меняется, проверял. Если поставить софтварный контроль за передачей - в порт идет какая-то ересь вместо нужных данных.
Есть софт, работающий с данным портом, причем успешно. Для передачи используются те же функции, что и в QExtSerialPort, а именно: Код:
Функция write, возвращает в качестве количества записанных данных - 0. Возможен вариант, что бит просто не успевает установиться? Случай, что передача от меня накладывается на другую - исключаем, т.к. даже когда я в канале один, данные все равно не передаются.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
17.10.2012, 07:57 | #4 | ||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
1- используйте WinAPI функции напрямую, раз обертка не срабатывает 2- проверяйте сниффером Portmon, что идет в порт со стандартного ПО и вашего, так вы отследите на каком этапе вы делаете ошибку Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
||
17.10.2012, 09:41 | #5 |
Старожил
Регистрация: 13.07.2012
Сообщений: 6,331
|
А что должно изменится? Если мне не изменяет память, RTS это Request To Send, то биш требоивание к девайсу чтоб слал данные (ну, или разрешение). Для того, чтоб знать надо ли нам слать или нет надо смотреть на CTS (Clear To Send)
|
17.10.2012, 11:24 | #6 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Итак. Работающий код выглядит следующим образом:
Код:
Код:
Код:
В чем глобальная ошибка? Может быть я передаю в функцию не то, что надо?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) Последний раз редактировалось Vanta11a; 17.10.2012 в 11:27. |
17.10.2012, 11:31 | #7 | ||||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
В моем конверторе логика управления прямая. Впрочем, что не мешает задавать нужное направление через WinAPI: Цитата:
Цитата:
1- вы не указали схему подключенного оборудования 2- вы не указали, чем отслеживаете, осциллографом, сниффером, вторым терминалом на шине RS-485, может вы смотрите через Modbus-терминал ...а так, передачу вы не проверили, по крайней мере нам ничего об этом неизвестно. Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation Последний раз редактировалось raxp; 17.10.2012 в 11:44. |
||||
17.10.2012, 11:40 | #8 | |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Цитата:
И portmon не получится использовать, т.к. Win7 x64, которую тоже поменять нельзя. На данный момент нашел(?) альтернативу, но взлетит или нет - вопрос. Итак, на данный момент имеется: ПК с железным портом RS485 (менять нельзя). Каким вывертом реализован RS485 на ПК - неизвестно. Блок, которым надо управлять - тоже с железным RS485. Конвертер ADAM RS485/RS232, подключенный в шину между блоком и ПК, отдающий данные на HyperTerminal. Из проблем: ПК менять нельзя. Блок менять нельзя. Ставить конвертер между блоком и ПК - нельзя. Остается только долбить код. Прием работает изумительно, отправка - никак. Я бы понял, если бы не работало все, а так...
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) Последний раз редактировалось Vanta11a; 17.10.2012 в 12:09. |
|
17.10.2012, 12:11 | #9 | ||
Старожил
Регистрация: 29.09.2009
Сообщений: 9,713
|
Цитата:
Цитата:
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation |
||
17.10.2012, 12:19 | #10 |
Lawful Evil
Участник клуба
Регистрация: 13.05.2008
Сообщений: 1,208
|
Итак. Главный тезис руководства: в железе ничего не менять. То есть работать с тем, что есть. В понятие "железо" включается как используемый ПК, так и версия ОС.
Есть программа, которая с грехом пополам, но работает. И по образу и подобию которой надо делать новую. Различия с моей имеют вид одной строки. В работающем варианте: Код:
Код:
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c) |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как сделать RTS? | Vadim_U | Свободное общение | 18 | 27.07.2010 00:05 |
Задача. Работа с псевдослучайными последовательностями (ПСП). Работа с цветом. | 0101 | Помощь студентам | 3 | 17.12.2009 23:57 |
Работа с webbrowser - Фреймы, работа с конкретным феймом в фрейме | NewDelphi | Фриланс | 2 | 08.10.2009 11:00 |
Многопользовательская RTS+RPG | SaintlyHawk | Фриланс | 1 | 13.02.2009 22:13 |