Russian Qt Forum
Ноябрь 25, 2024, 05:09 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 3 [4] 5 6   Вниз
  Печать  
Автор Тема: ComPort+Монетоприемник  (Прочитано 53908 раз)
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #45 : Ноябрь 25, 2007, 23:58 »

/dev/ttyS0

или

/dev/ttyS1
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Вячеслав
Гость
« Ответ #46 : Ноябрь 26, 2007, 00:57 »

МАТЬ!!! не ttyS0 а /dev/ttyS0 !!!!
или запускать из /dev , но это для мазохистоффф
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #47 : Ноябрь 26, 2007, 01:19 »

/dev/ttyS0

или

/dev/ttyS1

результат тот самый.. Message=="CanNotOpen"
все компилится, не пойму в чем дело
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #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 Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #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 Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #50 : Ноябрь 26, 2007, 04:45 »

open(QIODevice::ReadOnly) заработало!!  Крутой
при обработке функции read(buf,100) думаэт 3 секунды.
мне нужно словить 50 милисекунд..
как это посадить на постоянное "висение" на ком порте ?
надо чтобы когда есть изменения на ком порте обрабатывалась моя функция , как это сделать ?
Записан
Вячеслав
Гость
« Ответ #51 : Ноябрь 26, 2007, 09:16 »

Щаз буду грязно ругаться ....  IGHOR ты русский язык понимаешь ? Ком не позволит тебе считать _дискретный_ сигнал через вход данных
1) ему надо минимум 7 _последовательных_ бит  старт-5 бит данных-стоп при раскладке 5n1
2) ком работает на биполярке  +-12 вольт по стандарту (+-6 минимум который я видел)

Или делай конвертор для управляющил линий кома DTR\DSR\RTS\CTS и читай от-туда инфу ( висеть в цикле с частотой опроса 100мсек - ВАХ) или думай Подмигивающий Второе вернее и проще ....
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



Просмотр профиля WWW
« Ответ #52 : Ноябрь 26, 2007, 11:20 »

Щаз буду грязно ругаться ....  IGHOR ты русский язык понимаешь ? Ком не позволит тебе считать _дискретный_ сигнал через вход данных
1) ему надо минимум 7 _последовательных_ бит  старт-5 бит данных-стоп при раскладке 5n1
2) ком работает на биполярке  +-12 вольт по стандарту (+-6 минимум который я видел)

Или делай конвертор для управляющил линий кома DTR\DSR\RTS\CTS и читай от-туда инфу ( висеть в цикле с частотой опроса 100мсек - ВАХ) или думай Подмигивающий Второе вернее и проще ....

Щас я буду грязно ругатся ... Вячеслав, видишь последний вопрос ?
Там русским языком написано "как это посадить на постоянное "висение" на ком порте ?"
мне нужно это, а дальше я буду сам решать как его использовать.
Прошу помочь просто прочитать нормально порт и посадить его на ивент для любих изменений на порте.
Тестировал на винде, при замыкание контактов компорта есть изменение и его можно отследить и на ивент посадить..
Но есть проблема, нужно это на линуксе. Потому помогите если можете, а если нет, зачем лишнее писать ?...
Записан
Вячеслав
Гость
« Ответ #53 : Ноябрь 26, 2007, 12:32 »

НУ так объясни - накуя тебе rs интерфейс ? Сядь на служебную линию и читай ее скока влезет ....
Ты-же не будешь в жизни использовать GSM телефон в DECT'овской сети мотивируя это тем что он что-то ловит ? И это из той-же серии - половина микросхем просто бред выдаст, а вторая - вообще работать откажеться - им нужно +-6 вольт хотя-бы .... Повесься на служебные ноги _предназначенные_ для дискретных сигналов и лови их спокойно ....
Записан
der
Гость
« Ответ #54 : Ноябрь 26, 2007, 12:47 »

open(QIODevice::ReadOnly) заработало!!  Крутой
при обработке функции read(buf,100) думаэт 3 секунды.
мне нужно словить 50 милисекунд..
как это посадить на постоянное "висение" на ком порте ?
надо чтобы когда есть изменения на ком порте обрабатывалась моя функция , как это сделать ?
Товарищ IGHOR, если Вы сформулируете свой вопрос так, чтобы он был понятен окружающим, окружающим будет легче Вас понять.

Чтение из последовательного порта и ожидание изменения его статуса - совсем разные вещи. Чтение одного байта из пяти бит(это минимум для байта) - это приём стартового бита, пяти информационных и стопового. Каждый бит имеет определённую длину, уж точно не 50мс - Вам же нужно не это.
Вам нужно узнать, что на такой-то ноге сейчас 1 или 0. С информационной ноги Вы это не снимите - только со служебной, причём DSR или CTS (поправьте если не прав, но на DTR и RTS можно только писать). Даёт ли эту информацию скачанный Вами класс - не знаю, т.к. не пользовался, но СИЛЬНО сомневаюсь. В любом случае всё это езда по асфальту на лыжах.

Я думаю, что с помощью Qt-класса последовательного порта Вы никогда не измерите длительность импульса, а в лучшем случае узнаете, что он был.

Раннее я предлагал Вам другой способ работы с портом, между прочим, очень простой и как нельзя подходящий для Вашего применения. Этим способом можно с какой-то точностью узнать длительность импульса на служебной ноге. Если точность не устроит - пишите модуль ядра.

IMHO
« Последнее редактирование: Ноябрь 26, 2007, 12:49 от der » Записан
Вячеслав
Гость
« Ответ #55 : Ноябрь 26, 2007, 13:20 »

2 der ты лучше подумай - ком жрет +-12 вольт по спецификации (+-6) по жизни - 0 для него _неопределенное_ состояние Подмигивающий И что он будет читать с него ? IMHO проще /dev/rand на чтение подцепить - результат будет один Подмигивающий
« Последнее редактирование: Ноябрь 26, 2007, 13:21 от Вячеслав » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #56 : Ноябрь 26, 2007, 13:44 »

2 IGHOR: Ты узнавал про тот девайс, который позволяет подкючить монетоприемник к компу? (я ссылку кидал де-то выше)
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
der
Гость
« Ответ #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 » Записан
Вячеслав
Гость
« Ответ #58 : Ноябрь 26, 2007, 14:14 »

2der На железку щаз гляну - ради интереса
По поводу плат - в курсах ( в столе штук 5 валяеться Подмигивающий ) Но 485 ведь тож последовательный ( или там можно дискреты ловить ? )
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #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   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.069 секунд. Запросов: 23.