Непонимаю!, Почему не работает механизм сигналов/слотов? |
Здравствуйте, гость ( Вход | Регистрация )
Непонимаю!, Почему не работает механизм сигналов/слотов? |
posi4 |
19.6.2009, 14:12
Сообщение
#1
|
Студент Группа: Участник Сообщений: 52 Регистрация: 24.4.2009 Пользователь №: 707 Спасибо сказали: 0 раз(а) Репутация: 0 |
Пишу в QtCreatore, вот такая вот функция main
вот сам класс:
И теперь кто-нибудь подскажите, почему у меня не получается ничего получить в файл? Подозреваю что сигнал/слот не работают? Если же просто методом воспользоваться, данные читаются и записываются в файл! |
|
|
igor_bogomolov |
19.6.2009, 14:38
Сообщение
#2
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Попробуй так.
|
|
|
posi4 |
22.6.2009, 11:11
Сообщение
#3
|
Студент Группа: Участник Сообщений: 52 Регистрация: 24.4.2009 Пользователь №: 707 Спасибо сказали: 0 раз(а) Репутация: 0 |
Попробуй так.
Да теперь работает, но почему-то файл записывается нулевого размера! =0 Прикол в том что когда идёшь дебагом всё нормально, т.е. сколько получил по порту столько и записалось и так и должно быть по моему мнению. Но когда просто запускаешь на выполнение, файл получается!!! НО нулевой! Это что баг Creatora или я чего-то не знаю?? |
|
|
igor_bogomolov |
22.6.2009, 11:49
Сообщение
#4
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Да теперь работает, но почему-то файл записывается нулевого размера! =0 Creator здесь ни причем. У меня у самого была подобная проблема (кстати, и задача почти такая же стояла). Но связано это было с неправильной работой с самим прибором, и настройкой порта. У меня устройство USB, правда, но работаю с ним через USB_COM, так что разницы нет. Могу поделиться исходничками, мне не жалко. Там нет ничего секретного. Вот как у меня осуществлялась инициализация порта Раскрывающийся текст
|
|
|
AD |
22.6.2009, 12:19
Сообщение
#5
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Извините, что вмешиваюсь. А где вы взяли QextSerialPort? В документации по Qt 4.3.2 я его не нашел, потому работаю напрямую с Windows-средствами...
|
|
|
igor_bogomolov |
22.6.2009, 12:27
Сообщение
#6
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Извините, что вмешиваюсь. А где вы взяли QextSerialPort? В документации по Qt 4.3.2 я его не нашел, потому работаю напрямую с Windows-средствами... QextSerialPortЭто сторонняя библиотека. Для тех кто использюет WinAPI, для работы с портом, предлогаю ссылочку. Лучшее что я смог найти по теме http://www.book-ua.org/FILES/electrotech/2...electr01813.pdf |
|
|
AD |
22.6.2009, 12:55
Сообщение
#7
|
Профессионал Группа: Участник Сообщений: 2003 Регистрация: 4.2.2008 Из: S-Petersburg Пользователь №: 84 Спасибо сказали: 70 раз(а) Репутация: 17 |
Скачал, скомпилировал. А есть возможность просмотра документации по QextSerialPort в Ассистенте? Если есть, как настроить?
|
|
|
igor_bogomolov |
22.6.2009, 13:04
Сообщение
#8
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
AD, ты стал обладателем 10000 сообщения в разделе Qt.
Документация собирается Doxygen-ом. В нем есть возможность создовать и qch. Но сам я этого никогда не делал. Смотри оф. документацию. |
|
|
posi4 |
22.6.2009, 13:21
Сообщение
#9
|
Студент Группа: Участник Сообщений: 52 Регистрация: 24.4.2009 Пользователь №: 707 Спасибо сказали: 0 раз(а) Репутация: 0 |
Цитата Но связано это было с неправильной работой с самим прибором, и настройкой порта. И всё таки не понимаю как это связано, ведь в режиме дебага всё нормально!?! Настройки портов идентичные. У меня подозрение, что то непонятное происходит в момент открытия и записи в файл. И вот ещё что! Другая функция, которая уже пишет в порт: не буду приводить код, суть проста - пишу в порт port->write(bytear); , где bytear - QByteArray из восьми элементов, получаю на другом конце 20 байт! Как такое может быть? |
|
|
igor_bogomolov |
22.6.2009, 13:31
Сообщение
#10
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
Настройки не совсем одинаковые. У меня
Цитата port->setFlowControl(FLOW_HARDWARE); При больших скоростях, лучше пользоваться этой настройкой.получаю на другом конце 20 байт! Как такое может быть? Запросто. В буфере уже есть какой то мусор. Поэтому при создании порта я делаюЦитата port->readAll(); , чтобы очистить буфер. Смотри еще раз мой код.P.S. Я для отладки делал себе перемычку. P.P.S. Когда сомневаешmся всегда есть возможность посмотреть прием\передачу через терминал. |
|
|
Текстовая версия | Сейчас: 23.4.2024, 23:45 |