Russian Qt Forum

Qt => Общие вопросы => Тема начата: Lonsdale.85 от Сентябрь 04, 2010, 15:24



Название: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 04, 2010, 15:24
Здрвствуйте, извините если такая тема уже была...
Хочу написать программу под windows xp/vista для работы с Com-portom на Qt creator...
Не подскажите где можнно соответствующую информацию почитать???
 
Заранее, большое спасибо)))))


Название: Re: работа с Com-портом
Отправлено: pastor от Сентябрь 04, 2010, 15:25
http://www.prog.org.ru/topic_9537_0.html


Название: Re: работа с Com-портом
Отправлено: Denjs от Сентябрь 04, 2010, 15:47
Есть ещё мои классы в OTPD (см подпись, сейчас OTPD идет в составе QDroid),
класс t_seriallink_otpd (каталог исходников OTPD/classes/hardware_comm).  там же есть демки - поиск подключенного принтера чеков в каталоге _support_software/find_serial_escpos_printer/ - как наиболее простой пример работы с компонентой.

Ещё есть "наиболее старейший" класс QextSerialPort (ссылки в инете найдете).

Если будете делать на моих компонентах - могу обновить исходники на сайте.

_______________
PS: софтина что вы будете делать - она у вас надеюсь GPL-ная?) а то все что тут перечислено - оно GPL-ное. вы же сорсы опубликуете?


Название: Re: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 04, 2010, 15:58
спасибо)))))


Название: Re: работа с Com-портом
Отправлено: pastor от Сентябрь 04, 2010, 16:00
QextSerialPort распространяется под New BSD лицензией.

ЗЫ: Нашел вот такой suggestion на баг трекере http://bugreports.qt.nokia.com/browse/QTBUG-9980 Но к соосаждению этот таск закрыли. Но каменты оставлять можно. Было бы весьма неплохо, если бы компонент по работе с последовательным портом входил бы в состав Qt.

2 kuzulis: В обсуждении обратили внимание и на твой компонент.  Жалуются что он под GPL. :)


Название: Re: работа с Com-портом
Отправлено: kuzulis от Сентябрь 04, 2010, 17:03
Цитировать
2 kuzulis: В обсуждении обратили внимание и на твой компонент.  Жалуются что он под GPL.

Ну я в курсе...  А что они хотят:  И рыбку съесть и н#х&й сесть?! Такого не бывает.


Название: Re: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 04, 2010, 17:25
а подойдёт если я буду просто использывать функции работы с файлом...ну типо открыть файл,  закрыть и т.д..???


Название: Re: работа с Com-портом
Отправлено: kuzulis от Сентябрь 04, 2010, 18:00
Цитировать
а подойдёт если я буду просто использывать функции работы с файлом...ну типо открыть файл,  закрыть и т.д..Непонимающий
о каких таких функциях речь? что под ними подразумеваете? Win32Api функции или классы Qt типа QFile?


Название: Re: работа с Com-портом
Отправлено: Denjs от Сентябрь 04, 2010, 18:38
а подойдёт если я буду просто использывать функции работы с файлом...ну типо открыть файл,  закрыть и т.д..???
1) да) но только вам надо будет изучать дополнительные структуры управления, для того, что бы настраивать скорость и другие параметры работы ком-порта.
2) вам надо будет изучить различия между синхронным и асинхронным режимами открытия и работы с файлом...
3) и, возможно, научиться работать с несколькими потоками программы (для удобства)... в одном потоке - крутить блокирующее чтение из файла - а в другом - выполнять операции основной программы... по крайней мере у меня только так оно стабильно заработало...

ну где-то так)
я например так и делал - открывал файл.


Название: Re: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 04, 2010, 18:39
я помню просто давно на Borlande 6 писал прогу для Com-порта... ну и там указывал стандартные: открыть файл, получал указатель "handle" и т.д....наверно Win32Api))))


Название: Re: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 04, 2010, 18:42
а подойдёт если я буду просто использывать функции работы с файлом...ну типо открыть файл,  закрыть и т.д..???
1) да) но только вам надо будет изучать дополнительные структуры управления, для того, что бы настраивать скорость и другие параметры работы ком-порта.
2) вам надо будет изучить различия между синхронным и асинхронным режимами открытия и работы с файлом...
3) и, возможно, научиться работать с несколькими потоками программы (для удобства)... в одном потоке - крутить блокирующее чтение из файла - а в другом - выполнять операции основной программы... по крайней мере у меня только так оно стабильно заработало...

ну я когда давно  на Borlande 6 прогу писал я это всё делал...все параметры вручную вбивал...скорости, режимы и т.д....вообщем можно идти таким путём)))) спасибо)))


Название: Re: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 06, 2010, 09:46
Может кто-нибудь сталкивался с этим?????
Пытаюсь открыть Com портю.
обьявляю переменную:

public:
HANDLE hport;
----------------------
а в ответ от компилятора получаю вот такую ошибку:
'HANDLE' does not name a type


Название: Re: работа с Com-портом
Отправлено: kuzulis от Сентябрь 06, 2010, 09:57
Код:
#include <qt_windows.h>
или
Код:
#include <windows.h>

и вообще, раз используете Win32Api - то это не имеет к Qt никакого отношения.


Название: Re: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 06, 2010, 10:09
спасибо))))
только теперь наткнулся на такую проблему:
пытаюсь открыть порт и пишу:

hport = CreateFile ( "COM3",
                           GENERIC_READ|GENERIC_WRITE,
                           0,
                           NULL,
                           OPEN_EXISTING,
                           FILE_ATTRIBUTE_NORMAL,
                           NULL
                        );

----------------------
а в ответ от компилятора получаю вот такую ошибку:

cannot convert 'const char*' to 'const WCHAR*' for argument '1' to 'void* CreateFileW(const WCHAR*, DWORD, DWORD, _SECURITY_ATTRIBUTES*, DWORD, DWORD, void*)'


Название: Re: работа с Com-портом
Отправлено: kuzulis от Сентябрь 06, 2010, 10:30
2 Lonsdale.85,

посмотрите уже исходники тех библиотек (для работы с портами) для Qt, ссылки на которые вам дали + поиск в гугле + поиск на этом форуме.
Ошибка банальнее некуда. Удачи.


Название: Re: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 06, 2010, 12:26
2 Lonsdale.85,

посмотрите уже исходники тех библиотек (для работы с портами) для Qt, ссылки на которые вам дали + поиск в гугле + поиск на этом форуме.
Ошибка банальнее некуда. Удачи.

правильно ли я понял что нужно было написать не "COM3", а L"COM3" ????


Название: Re: работа с Com-портом
Отправлено: kuzulis от Сентябрь 06, 2010, 13:00
Цитировать
правильно ли я понял что нужно было написать не "COM3", а L"COM3" Непонимающий?
Нет, смотрите исходники.
--
Даю подсказку: если вам влом что-то качать - то посмотрите исходники класса QFile, там тоже используется функция: CreateFile

http://qt.gitorious.org/qt/qt/blobs/4.7/src/corelib/io/qfsfileengine_win.cpp


Название: Re: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 06, 2010, 13:05
Цитировать
правильно ли я понял что нужно было написать не "COM3", а L"COM3" Непонимающий?
Нет, смотрите исходники.
--
Даю подсказку: если вам влом что-то качать - то посмотрите исходники класса QFile, там тоже используется функция: CreateFile

Да нет...не влом...я качал смотрел и тут на форуме смотрел....вроде было также как у меня...
а тут на каком-то форуме наткнулся на похожую ситуацию и там посоветовали поставить букву "L" впереди дескать:
"WCHAR - это двухбайтовый символ вроде бы, вот и строки нам нужны не обычные, а длинные (Long)
"
покрайней мере у меня заработало....сейчас посмотрб QFile


Название: Re: работа с Com-портом
Отправлено: Lonsdale.85 от Сентябрь 06, 2010, 19:50
всё спасибо. разобрался))))