Russian Qt Forum
Ноябрь 25, 2024, 02:30
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
ComPort+Монетоприемник
Страниц:
1
2
3
[
4
]
5
6
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: ComPort+Монетоприемник (Прочитано 53838 раз)
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: ComPort+Монетоприемник
«
Ответ #45 :
Ноябрь 25, 2007, 23:58 »
/dev/ttyS0
или
/dev/ttyS1
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Вячеслав
Гость
Re: ComPort+Монетоприемник
«
Ответ #46 :
Ноябрь 26, 2007, 00:57 »
МАТЬ!!! не ttyS0 а /dev/ttyS0 !!!!
или запускать из /dev , но это для мазохистоффф
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: ComPort+Монетоприемник
«
Ответ #47 :
Ноябрь 26, 2007, 01:19 »
/dev/ttyS0
или
/dev/ttyS1
результат тот самый.. Message=="CanNotOpen"
все компилится, не пойму в чем дело
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: ComPort+Монетоприемник
«
Ответ #48 :
Ноябрь 26, 2007, 01:39 »
Я выложыл исходник
http://www.ighor.info/downloadua/COMTest.tar.bz2
компильните кто может
компилилось на Linux, QT 4.3.2
нужно просто компорт открыть..
«
Последнее редактирование: Ноябрь 26, 2007, 01:41 от IGHOR
»
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: ComPort+Монетоприемник
«
Ответ #49 :
Ноябрь 26, 2007, 01:54 »
Ты дебажил либу или нет?? По коду все можно понять что происходит!
Вобщем пробуй передать в open() один из флагов QIODevice::OpenMode:
QIODevice::ReadOnly
QIODevice::WriteOnly
QIODevice::ReadWrite
По умолчанию передаеться QIODevice::NotOpen. Для интереса мож глянуть, что выполняеться по этой ветке
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
IGHOR
Крякер
Offline
Сообщений: 390
Re: ComPort+Монетоприемник
«
Ответ #50 :
Ноябрь 26, 2007, 04:45 »
open(QIODevice::ReadOnly) заработало!!
при обработке функции read(buf,100) думаэт 3 секунды.
мне нужно словить 50 милисекунд..
как это посадить на постоянное "висение" на ком порте ?
надо чтобы когда есть изменения на ком порте обрабатывалась моя функция , как это сделать ?
Записан
Вячеслав
Гость
Re: ComPort+Монетоприемник
«
Ответ #51 :
Ноябрь 26, 2007, 09:16 »
Щаз буду грязно ругаться .... IGHOR ты русский язык понимаешь ? Ком не позволит тебе считать _дискретный_ сигнал через вход данных
1) ему надо минимум 7 _последовательных_ бит старт-5 бит данных-стоп при раскладке 5n1
2) ком работает на биполярке +-12 вольт по стандарту (+-6 минимум который я видел)
Или делай конвертор для управляющил линий кома DTR\DSR\RTS\CTS и читай от-туда инфу ( висеть в цикле с частотой опроса 100мсек - ВАХ) или думай
Второе вернее и проще ....
Записан
IGHOR
Крякер
Offline
Сообщений: 390
Re: ComPort+Монетоприемник
«
Ответ #52 :
Ноябрь 26, 2007, 11:20 »
Цитата: Вячеслав от Ноябрь 26, 2007, 09:16
Щаз буду грязно ругаться .... IGHOR ты русский язык понимаешь ? Ком не позволит тебе считать _дискретный_ сигнал через вход данных
1) ему надо минимум 7 _последовательных_ бит старт-5 бит данных-стоп при раскладке 5n1
2) ком работает на биполярке +-12 вольт по стандарту (+-6 минимум который я видел)
Или делай конвертор для управляющил линий кома DTR\DSR\RTS\CTS и читай от-туда инфу ( висеть в цикле с частотой опроса 100мсек - ВАХ) или думай
Второе вернее и проще ....
Щас я буду грязно ругатся ... Вячеслав, видишь последний вопрос ?
Там русским языком написано "как это посадить на постоянное "висение" на ком порте ?"
мне нужно это, а дальше я буду сам решать как его использовать.
Прошу помочь просто прочитать нормально порт и посадить его на ивент для любих изменений на порте.
Тестировал на винде, при замыкание контактов компорта есть изменение и его можно отследить и на ивент посадить..
Но есть проблема, нужно это на линуксе. Потому помогите если можете, а если нет, зачем лишнее писать ?...
Записан
Вячеслав
Гость
Re: ComPort+Монетоприемник
«
Ответ #53 :
Ноябрь 26, 2007, 12:32 »
НУ так объясни - накуя тебе rs интерфейс ? Сядь на служебную линию и читай ее скока влезет ....
Ты-же не будешь в жизни использовать GSM телефон в DECT'овской сети мотивируя это тем что он что-то ловит ? И это из той-же серии - половина микросхем просто бред выдаст, а вторая - вообще работать откажеться - им нужно +-6 вольт хотя-бы .... Повесься на служебные ноги _предназначенные_ для дискретных сигналов и лови их спокойно ....
Записан
der
Гость
Re: ComPort+Монетоприемник
«
Ответ #54 :
Ноябрь 26, 2007, 12:47 »
Цитата: IGHOR от Ноябрь 26, 2007, 04:45
open(QIODevice::ReadOnly) заработало!!
при обработке функции read(buf,100) думаэт 3 секунды.
мне нужно словить 50 милисекунд..
как это посадить на постоянное "висение" на ком порте ?
надо чтобы когда есть изменения на ком порте обрабатывалась моя функция , как это сделать ?
Товарищ IGHOR, если Вы сформулируете свой вопрос так, чтобы он был понятен окружающим, окружающим будет легче Вас понять.
Чтение из последовательного порта и ожидание изменения его статуса - совсем разные вещи. Чтение одного байта из пяти бит(это минимум для байта) - это приём стартового бита, пяти информационных и стопового. Каждый бит имеет определённую длину, уж точно не 50мс - Вам же нужно не это.
Вам нужно узнать, что на такой-то ноге
сейчас
1 или 0. С информационной ноги Вы это не снимите - только со служебной, причём DSR или CTS (
поправьте если не прав, но на DTR и RTS можно только писать
). Даёт ли эту информацию скачанный Вами класс - не знаю, т.к. не пользовался, но СИЛЬНО сомневаюсь. В любом случае всё это езда по асфальту на лыжах.
Я думаю, что с помощью Qt-класса последовательного порта Вы никогда не измерите длительность импульса, а в лучшем случае узнаете, что он был.
Раннее я предлагал Вам другой способ работы с портом, между прочим, очень простой и как нельзя подходящий для Вашего применения. Этим способом можно
с какой-то точностью
узнать длительность импульса на служебной ноге. Если точность не устроит - пишите модуль ядра.
IMHO
«
Последнее редактирование: Ноябрь 26, 2007, 12:49 от der
»
Записан
Вячеслав
Гость
Re: ComPort+Монетоприемник
«
Ответ #55 :
Ноябрь 26, 2007, 13:20 »
2 der ты лучше подумай - ком жрет +-12 вольт по спецификации (+-6) по жизни - 0 для него _неопределенное_ состояние
И что он будет читать с него ? IMHO проще /dev/rand на чтение подцепить - результат будет один
«
Последнее редактирование: Ноябрь 26, 2007, 13:21 от Вячеслав
»
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: ComPort+Монетоприемник
«
Ответ #56 :
Ноябрь 26, 2007, 13:44 »
2 IGHOR: Ты узнавал про тот девайс, который позволяет подкючить монетоприемник к компу? (я ссылку кидал де-то выше)
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
der
Гость
Re: ComPort+Монетоприемник
«
Ответ #57 :
Ноябрь 26, 2007, 14:08 »
2 Вячеслав
Есть такая хрень
http://www.owen.ru/device/56848065
- я такой пользуюсь, только без "-М". Прекрасно работает. Думаю, АС3 можно приобрести за 1500-1700р. Это намного дешевле, чем делать самому. Если дойдёт до заказа - вполне можно приобрести. Кроме того, некоторые современные панельные рабочие станции имеют com-порт, который умеет работать и как RS232, и как RS485.
P.S.: А вообще, если бы IGHOR нам сообщил польше информации о своём проекте, нам было бы легче о нём рассуждать
«
Последнее редактирование: Ноябрь 26, 2007, 14:10 от der
»
Записан
Вячеслав
Гость
Re: ComPort+Монетоприемник
«
Ответ #58 :
Ноябрь 26, 2007, 14:14 »
2der На железку щаз гляну - ради интереса
По поводу плат - в курсах ( в столе штук 5 валяеться
) Но 485 ведь тож последовательный ( или там можно дискреты ловить ? )
Записан
pastor
Administrator
Джедай : наставник для всех
Offline
Сообщений: 2901
Re: ComPort+Монетоприемник
«
Ответ #59 :
Ноябрь 26, 2007, 14:43 »
2 IGHOR: Можешь ознакомиться со стандартом RS232. Там также описана одна из микросхем преобразования интерфейса
http://www.gaw.ru/html.cgi/txt/interface/rs232/start.htm
Записан
Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц:
1
2
3
[
4
]
5
6
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...