crossplatform.ru

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

14 страниц V  « < 12 13 14  
Ответить в данную темуНачать новую тему
> QtSerialPort, Проблема сборки QtSerialPort под Windows
ahalaj
  опции профиля:
сообщение 28.10.2014, 17:20
Сообщение #131


Студент
*

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

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




Репутация:   1  


Да, скорее всего тут именно драйвер. Но главное ведь получилось, существование порта детектится.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
borune
  опции профиля:
сообщение 28.10.2014, 17:35
Сообщение #132


Участник
**

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

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




Репутация:   0  


Цитата(ahalaj @ 28.10.2014, 18:20) *
Да, скорее всего тут именно драйвер. Но главное ведь получилось, существование порта детектится.

да, а толку от этого..
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 28.10.2014, 23:12
Сообщение #133


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

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

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




Репутация:   7  


Цитата
Если порт есть, но к нему не подключен кабель, то этот порт нельзя открыть, и, соответственно, записать в него также ничего нельзя. Но это уже похоже на фишечку драйвера виртуального ком-порта, и ее никак не исправишь наверное...


Это значит что устройства (активного устройства типа "последовательный порт", или любого другого - неважно) НЕТ! И это никакая не фишечка драйвера. Это Windows ОС просто кеширует у-ва чтобы вновь не создавать симлинки при подключении этого-же устройства в этот-же USB порт (или просто того-же у-ва).

Вот, воткнул ты к примеру USB флешечку она определилась как диск Z, потом ты выдернул ее. Потом проенумеровал все USB mass-storage устройства которые когда-то были подключены к системе.. Нашел у-во которое было диском Z и попытался открыть.. И.. надеешься считать файлики из Z которого сейчас нету? Гы. :) Вместо флешки можешь попробовать любое USB у-во (да хоть Audio карту, хоть USB мышку, хоть черта лысого и прочее).

Кроме того никто не запрещает в диспетчере у-в отобразить "hidden" устройства и удалить их. Тогда не будет никаких таких у-в перечисляться.

Цитата
да, а толку от этого..


А я тебя же предупреждал что все это хрень, но куда уж мне.. Ты-же у нас спец. :)

Сообщение отредактировал kuzulis - 28.10.2014, 23:21
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
borune
  опции профиля:
сообщение 29.10.2014, 7:51
Сообщение #134


Участник
**

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

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




Репутация:   0  


Цитата(kuzulis @ 28.10.2014, 23:12) *
Цитата
Если порт есть, но к нему не подключен кабель, то этот порт нельзя открыть, и, соответственно, записать в него также ничего нельзя. Но это уже похоже на фишечку драйвера виртуального ком-порта, и ее никак не исправишь наверное...


Это значит что устройства (активного устройства типа "последовательный порт", или любого другого - неважно) НЕТ! И это никакая не фишечка драйвера. Это Windows ОС просто кеширует у-ва чтобы вновь не создавать симлинки при подключении этого-же устройства в этот-же USB порт (или просто того-же у-ва).


там вроде не все так просто. если подключить устройство кабелем к порту, при этом не включая самого устройства, то порт обнаруживается и открывается безо всяких проблем. Хотя по идее это то же самое, что просто воткнуть в порт пустой кабель..


Цитата(kuzulis @ 28.10.2014, 23:12) *
А я тебя же предупреждал что все это хрень, но куда уж мне.. Ты-же у нас спец.

я, кажется, принес свои извинения

Сообщение отредактировал borune - 29.10.2014, 7:52
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 29.10.2014, 11:47
Сообщение #135


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

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

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




Репутация:   7  


Цитата
там вроде не все так просто. если подключить устройство кабелем к порту, при этом не включая самого устройства, то порт обнаруживается и открывается безо всяких проблем. Хотя по идее это то же самое, что просто воткнуть в порт пустой кабель..


О каком порте речь? Об USB об SerialPort? Опять каша? :)

Если имеется ввиду это:

Цитата
PC (железный COM1) RS232 [ ] <-- кабель (RS232/TTL например DB9 и прочее) --> [ некий девайс ]


То у-во COM1 будет открываться в любом случае пока сам чип (который внутри PC не сгорел и фунциклирует).
RS232 - это "низкоуровневый" интерфейс, он не определяет, подключено что-то или нет к его Rx/Tx и прочим линиям.
Поэтому, подключен (или нет) некий девайс на том конце - без разницы - мы никогда это не узнаем пока не попробуем туда
что-нить отправить/принять. COM1 всегда будет активен в ОС вне зависимости от того воткнул ли кто-то что-то к нему через RS232 кабель.

Если имеется ввиду это:

Цитата
PC (вирт. COM1) USB[ ] <-- кабель (USB) --> [USB/Serial конвертер] <--- кабель (RS232/TTL например DB9 и прочее) --> [ некий девайс ]


То у-во COM1 будет открываться в любом случае пока подключен USB кабель к USB/Serial конвертеру и пока конвертер не сгорел.
Как только USB/Serial конвертер отключится - COM1 "исчезнет" из системы и станет hidden.
Далее, если подключить что-то к конвертеру кабелем RS232 (или не подключать) - нам без разницы, т.к. COM1 всегда откроется.мы никогда это не узнаем пока не попробуем туда
Но мы не может "программно" узнать что что-то подключено или нет на том конце RS232 пока что-нить не отправим/примем.

Сообщение отредактировал kuzulis - 29.10.2014, 11:50
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
borune
  опции профиля:
сообщение 29.10.2014, 12:23
Сообщение #136


Участник
**

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

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




Репутация:   0  


Имеется ввиду виртуальный порт. Конвертер USB/Serial находится в самом девайсе, поэтому, по идее, при выключенном девайсе конвертер тоже должен быть выключен. При этом порт в диспетчере виден и программно доступен. Не понятно почему.

Сообщение отредактировал borune - 29.10.2014, 12:27
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kuzulis
  опции профиля:
сообщение 29.10.2014, 14:27
Сообщение #137


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

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

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




Репутация:   7  


Цитата(borune @ 29.10.2014, 12:23) *
Не понятно почему.


Потому что по USB подается питание (5V) на USB/Serial конвертер и => все будет "работать" :).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
borune
  опции профиля:
сообщение 29.10.2014, 15:04
Сообщение #138


Участник
**

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

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




Репутация:   0  


Цитата(kuzulis @ 29.10.2014, 14:27) *
Потому что по USB подается питание (5V) на USB/Serial конвертер и => все будет "работать" :).

а ведь ты чертовски прав

Сообщение отредактировал borune - 29.10.2014, 15:16
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
casper17
  опции профиля:
сообщение 17.1.2015, 11:14
Сообщение #139


Новичок


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

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




Репутация:   0  


Добрый день. Подскажите пожалуйста почему у меня чтение с COM порта одного сообщения происходит за несколько раз? С Atmega8 отправляю данные массив unsigned char x[10]="";
    
            x[0]='p';
            x[1]='r';
            x[2]='i';
            x[3]='v';
            x[4]='e';
            x[5]='t';
            x[6]='1';
            x[7]='2';
            x[8]='3';
            x[9]='\0';
            uart_puts(x);
            _delay_ms(1000);

А принимает их за несколько раз
Раскрывающийся текст
void MainWindow::readData()
{
    qDebug() << "Razmer        : " << serial->bytesAvailable();
             data=serial->readAll();
             qDebug() << "Name        : " << data;
          ui->label->setText(data);
    qDebug() << "///////////////////";

Razmer        :  3
Name        :  "pri"
///////////////////
Razmer        :  4
Name        :  "vet1"
///////////////////
Razmer        :  2
Name        :  "23"
///////////////////
Razmer        :  2
Name        :  "pr"
///////////////////
Razmer        :  4
Name        :  "ivet"
///////////////////
Razmer        :  3
Name        :  "123"
///////////////////


Если попробовать цикл do while и добавлять к старому сообщению новое то
Раскрывающийся текст
serial = new QSerialPort(this);
    serial->setPortName("com4");
    if(serial->open(QIODevice::ReadWrite)){

        serial->setBaudRate(QSerialPort::Baud9600);
        serial->setDataBits(QSerialPort::Data8);
        serial->setParity(QSerialPort::NoParity);
        serial->setStopBits(QSerialPort::OneStop);
        serial->setFlowControl(QSerialPort::NoFlowControl);
        ui->label->setText("OK");
}
else
    {
        ui->label->setText("NO CONNECT");
    }
connect(serial, SIGNAL(readyRead()), this, SLOT(readData()));

void MainWindow::readData()
{
    qDebug() << "Razmer        : " << serial->bytesAvailable();
    do {
            data.append(serial->readAll());
             qDebug() << "Name        : " << data;
     } while (serial->waitForReadyRead(50));
    ui->label->setText(data);
    qDebug() << "///////////////////";
}

Razmer        :  2
Name        :  "pr"
///////////////////
Razmer        :  7
Name        :  "privet123"
///////////////////
Razmer        :  1
Name        :  "privet123p"
///////////////////
Razmer        :  8
Name        :  "privet123privet123"
///////////////////

Почему он не принимает сразу его целиком?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 17.1.2015, 12:37
Сообщение #140


Старейший участник
****

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

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




Репутация:   8  


Потому что в COM порте нет такого понятия "сообщение", он работает побайтово. Побайтово принимает и побайтово отправляет.
https://ru.wikipedia.org/wiki/Универсальный...риёмопередатчик
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

14 страниц V  « < 12 13 14
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




RSS Текстовая версия Сейчас: 28.3.2024, 22:24