crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

44 страниц V  « < 18 19 20 21 22 > »   
Ответить в данную темуНачать новую тему
> QSerialDevice - Библиотека для работы с COM-портами
kuzulis
  опции профиля:
сообщение 9.1.2011, 13:21
Сообщение #191


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Цитата
Строки коммутатор воспринимает, а вот управляющие символы в String отправить не получается, коммутатор воспринимает их как строку и все.

Ну так смекнуть нужно и формировать данные в виде QByteArray и слать их устройству.
...
QString s("моя команда или хз что там")
QByteArray data;
data.append(s);
data.append('\r');
port.write(data);
...


Это же элементарно, Ватсон (с)

Сообщение отредактировал kuzulis - 9.1.2011, 13:23
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 9.1.2011, 13:33
Сообщение #192


фрилансер
******

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Цитата(Litkevich Yuriy @ 9.1.2011, 7:41) *
\rn

вообще-то так:
\r\n
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Sasha07
  опции профиля:
сообщение 9.1.2011, 16:52
Сообщение #193


Новичок


Группа: Новичок
Сообщений: 6
Регистрация: 7.1.2011
Пользователь №: 2330

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата
Это же элементарно, Ватсон (с)

:rolleyes: , благодарю - работает.
Еще раз спасибо за библиотеку!
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 9.1.2011, 18:57
Сообщение #194


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(Алексей1153 @ 9.1.2011, 15:33) *
вообще-то так:
\r\n
да, ты прав
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good835
  опции профиля:
сообщение 11.1.2011, 19:32
Сообщение #195


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 5.8.2010
Пользователь №: 1933

Спасибо сказали: 0 раз(а)




Репутация:   0  


Добрый день!
Работаю с некоторой железкой, которая работает в режиме С Управлением потоком. Обновил библиотеку из репозитария, появилось несколько вопросов:
1. Теперь после открытия порта IsOpenCorrectrly = MyDevice->open(AbstractSerial::ReadWrite) железка говорит, что RTS установлен, раньше такого не было
2. После успешного открытия порта и установки параметров пытаюсь установить RTS
порт сконфигурирован как (MyDevice->setFlowControl(AbstractSerial::FlowControlOff);
MyDevice->setRts(true) возвращает false?
Если же порт был сконфигурирован без управления потоком (MyDevice->setFlowControl(AbstractSerial::FlowControlOff), то RTS - успешно устанавливается
и ПРОГРАММА УСПЕШНО работает, так, как будто управление потоком установлено.
Спасибо.



Цитата(good835 @ 11.1.2011, 19:22) *
Добрый день!
Работаю с некоторой железкой, которая работает в режиме С Управлением потоком. Обновил библиотеку из репозитария, появилось несколько вопросов:
1. Теперь после открытия порта IsOpenCorrectrly = MyDevice->open(AbstractSerial::ReadWrite) железка говорит, что RTS установлен, раньше такого не было
2. После успешного открытия порта и установки параметров пытаюсь установить RTS
порт сконфигурирован как (MyDevice->setFlowControl(AbstractSerial::FlowControlOff);
MyDevice->setRts(true) возвращает false?
Если же порт был сконфигурирован без управления потоком (MyDevice->setFlowControl(AbstractSerial::FlowControlOff), то RTS - успешно устанавливается
Спасибо.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 11.1.2011, 20:56
Сообщение #196


Активный участник
***

Группа: Участник
Сообщений: 393
Регистрация: 29.6.2009
Пользователь №: 862

Спасибо сказали: 36 раз(а)




Репутация:   7  


Вообще-то я не тестировал связь с управлением потоком. (Тестировал только без, т.к. влом было паять нуль-модемный кабель с подключением всех 9-ти пинов).
Так что проверить не смогу, имею только GND, RX, TX :)

Что за ОС?

Цитата
1. Теперь после открытия порта IsOpenCorrectrly = MyDevice->open(AbstractSerial::ReadWrite) железка говорит, что RTS установлен, раньше такого не было

Насчет установки RTS и DTR - то да, при открытии порта они устанавливаются (по крайней мере в винде)!
Просто в Винде (а я подозреваю, что вы в ней кодите) ранее метод lineStatus() не мог определять состояния линий DTR и RTS.
Эта фича (определение статуса этих линий) появилась буквально неделю назад. Если я правильно понял.

Я думаю (на днях) добавить в метод открытия порта еще возможность указания желаемого состояния линий DTR, RTS порта.
То, что происходит сейчас - хз что, я копипастил эти методы из QextSerialPort особо не проверяя их.

В общем, нужно разобраться. Попробуйте поиграться при открытии с флагами из DCB (для винды):
Цитата
...
fDtrControl
...
fRtsControl
...


и напишите что вышло и с какими комбинациями для разных режимов контроля потока.

Цитата
2. После успешного открытия порта и установки параметров пытаюсь установить RTS
порт сконфигурирован как (MyDevice->setFlowControl(AbstractSerial::FlowControlOff);
MyDevice->setRts(true) возвращает false?
Если же порт был сконфигурирован без управления потоком (MyDevice->setFlowControl(AbstractSerial::FlowControlOff), то RTS - успешно устанавливается
и ПРОГРАММА УСПЕШНО работает, так, как будто управление потоком установлено.


По идее, если установлен аппаратный контроль управления потоком - то setRts и не должен работать, т.к. всю работу делает драйвер, хотя ХЗ.
В общем, нужно упорно разбираться еще. :)

ЗЫ: Я тут пишу тестовое GUI приложение (с кнопочками, терминалом и т.п.) в котором можно будет опробовать все краеугольные моменты, думаю, завтра к вечеру (по мск.) выложу в Git. Вот тогда и начну вникать, а пока что, пробуйте сами понять в чем проблема.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good835
  опции профиля:
сообщение 12.1.2011, 12:46
Сообщение #197


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 5.8.2010
Пользователь №: 1933

Спасибо сказали: 0 раз(а)




Репутация:   0  


Продолжаю разобираться с работой порта в режиме упаравления потоком

fRtsControl - пробовал в двух вариантах RTS_CONTROL_ENABLE (это то что нужно моему приложению) и RTS_CONTROL_HANDSHAKE
в обоих вариантах - RTS устанавливается либо при открытии порта (по моему читается предыдущая конфигурация порта DCB, так как порт еще не конфигурился)
либо при конфигурировании setFlowControl(AbstractSerial::FlowControlOff)
при этом
1. функция setRTS(true) - возвращает false - но возможно это и правильно, так как RTS уже активен
2. функция lineStatus() - говорит что RTS - не установлен ??? вот это не понятно

если открыть порт без управления потоком, то связка setRTS(true) + lineStatus() - отрабатывает нормально
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
good835
  опции профиля:
сообщение 12.1.2011, 14:06
Сообщение #198


Студент
*

Группа: Новичок
Сообщений: 14
Регистрация: 5.8.2010
Пользователь №: 1933

Спасибо сказали: 0 раз(а)




Репутация:   0  


небольшое дополнение
возможно вызов lineStatus() - должен быть с некоторый таймаутом после открытия и конфигурирования порта
если смотреть после открытия - то RTS - не установлен
если через паузу (не таймером просто некоторые задачки еще выполняются перед записью) - то RTS установлен
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
silver47
  опции профиля:
сообщение 8.2.2011, 12:37
Сообщение #199


Активный участник
***

Группа: Участник
Сообщений: 356
Регистрация: 1.4.2010
Пользователь №: 1584

Спасибо сказали: 40 раз(а)




Репутация:   6  


Доброго времени суток.
У меня такая проблема появилась. Заметил, что читаю из порта максимум 4096 байт. Чтение происходит таким образом:
QByteArray data(port->readAll());

Где я ошибся? Спасибо.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 8.2.2011, 14:03
Сообщение #200


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


дак наверное буфер порта имеет только 4к, смотри в настройках драйвера устройства
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

44 страниц V  « < 18 19 20 21 22 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


10 чел. читают эту тему (гостей: 10, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 5:00