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

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

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

Сообщений: 2901



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

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

Вот есть описание rs485:

http://www.gaw.ru/html.cgi/txt/interface/rs485/start.htm
Записан

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

2 pastor спасиб - гугл + опера рулят Подмигивающий Это была вторая ссылка Подмигивающий Я просто не в теме - 485 может ловить одиночные посылки или нет Подмигивающий
Записан
der
Гость
« Ответ #62 : Ноябрь 26, 2007, 15:03 »

2 Вячеслав
Вообще, может случиться, что АС3-М такой умный, что пропускает только последовательные данные, а подобные импульсы нет... Но тогда можно взять прибор без автоматического переключения направления. Я просто привёл пример девайса, преобразующего 0..5В в -12..+12В или сколько там. Естественно TxD Овна нужно подключать к служебной ноге порта, а не к RxD. Просто проблема преобразования напряжения является частью проблемы преобразования RS485-RS232.
Вообще проблема стандартная, и решений масса, например, микрухи-преобразователи напряжения.

P.S.:
2 pastor спасиб - гугл + опера рулят Подмигивающий Это была вторая ссылка Подмигивающий Я просто не в теме - 485 может ловить одиночные посылки или нет Подмигивающий
Сходил, но просветление не наступило... ?я чото п
Записан
Вячеслав
Гость
« Ответ #63 : Ноябрь 26, 2007, 15:28 »

2 der _лично мне_ проще взять мегу 8 с максиной с сделать нормальный переход с дискретки на rs/usb , и не изобретать многоразовые грабли Подмигивающий

2 all Интересно тема в итоге лидером по постам будет ?  Шокированный Шокированный Шокированный Подмигивающий
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



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

На винде из Builder C++ ловлю ивент компорта,
он реагирует на замыкание двух ножек..
Можна прикрутить реле, что при 5 вольт оно срабатывает и замыкает те ножки...
Тогда все будет работать отлично. Но как читать ивентом компорт на Линуксе ?
Простое читание занимает 3 секунды в проге.. и она зависает в это время.
Мне нужно по возможности самому разобратся с монетоприемником,
потому что таких апаратов будет штук 40.. а каждая платаа стоит 50$
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



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

Это интересно.. но я в асемблере не очень.. как это использовать ?  можно, кусок кода в пример?

Ассемблер тут ни при чём - я же сказал, два системных вызова: inb и outb.
Вот здесь есть пример подачи на порт прямоулольных импульсов: http://rt.wiki.kernel.org/index.php/Squarewave-example
Код включает переключение планировщика и приоритеты - это нужно выкинуть.
Соответственно, при помощи оставшегося кода и данной мной ссылки несложно сочинить что-нибудь своё с участием COM или LPT за недельку неупорного труда.

Как в сдесь разобратся ? Обясните пожалуйста как оно работает.
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



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

На винде из Builder C++ ловлю ивент компорта,
он реагирует на замыкание двух ножек..
Можна прикрутить реле, что при 5 вольт оно срабатывает и замыкает те ножки...
Тогда все будет работать отлично. Но как читать ивентом компорт на Линуксе ?

В данной реализации либы имхо невозможно отследить определённые эвенты. В винде это можно сделать, переделав немного либу и отслеживать следующие события, т.е. сделав либу для работы с портом в асинхронном режиме:

EV_BREAK   Состояние разрыва приемной линии
EV_CTS   Изменение состояния линии CTS
EV_DSR   Изменение состояния линии DSR
EV_ERR   Ошибка обрамления, перебега или четности
EV_RING   Входящий звонок на модем (сигнал на линии RI порта)
EV_RLSD   Изменение состояния линии RLSD (DCD)
EV_RXCHAR   Символ принят и помещен в приемный буфер
EV_RXFLAG   Принят символ заданый полем EvtChar структуры DCB использованой для настройки режимов работы порта
EV_TXEMPTY   Из буфера передачи передан последний символ

Простое читание занимает 3 секунды в проге.. и она зависает в это время.

Проблему с зависанием можно решить путяём добавления потока, в котором будет опрашивться порт

Мне нужно по возможности самому разобратся с монетоприемником,
потому что таких апаратов будет штук 40.. а каждая платаа стоит 50$

Можно купить этот девайс. С ним будет идти принципиалка. По принципиалке самому соорудить сколько нужно девайсов
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



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

Вот есть статейка, где рассмотрена работа с последовательными портами в линукс

http://linuxportal.ru/entry.php/2171_0_3_0_C/
Записан

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

На винде из Builder C++ ловлю ивент компорта,
он реагирует на замыкание двух ножек..
Можна прикрутить реле, что при 5 вольт оно срабатывает и замыкает те ножки...
Тогда все будет работать отлично. Но как читать ивентом компорт на Линуксе ?
Простое читание занимает 3 секунды в проге.. и она зависает в это время.
Мне нужно по возможности самому разобратся с монетоприемником,
потому что таких апаратов будет штук 40.. а каждая платаа стоит 50$
Тогда-уж проще максину присобачить(чего-нибудь типа max232 ) и релюх ненадо Подмигивающий
2 IGHOR , кинь в личку более подробно чего изобретаешь - постораюсь помочь ....
Записан
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



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

Вот есть статейка, где рассмотрена работа с последовательными портами в линукс

http://linuxportal.ru/entry.php/2171_0_3_0_C/

Хорошая стаття. нужно разобратся..

На винде из Builder C++ ловлю ивент компорта,
он реагирует на замыкание двух ножек..
Можна прикрутить реле, что при 5 вольт оно срабатывает и замыкает те ножки...
Тогда все будет работать отлично. Но как читать ивентом компорт на Линуксе ?
Простое читание занимает 3 секунды в проге.. и она зависает в это время.
Мне нужно по возможности самому разобратся с монетоприемником,
потому что таких апаратов будет штук 40.. а каждая платаа стоит 50$
Тогда-уж проще максину присобачить(чего-нибудь типа max232 ) и релюх ненадо Подмигивающий
2 IGHOR , кинь в личку более подробно чего изобретаешь - постораюсь помочь ....

что такое max232 ? и с чем его готовят ?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



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

что такое max232 ? и с чем его готовят ?

Прям как на ЛОРе повелось по ссылка не ходить Улыбающийся

Цитата: pastor
2 IGHOR: Можешь ознакомиться со стандартом RS232. Там также описана одна из микросхем преобразования интерфейса

http://www.gaw.ru/html.cgi/txt/interface/rs232/start.htm
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



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

Но всеравно не понимаю, max232 это просто усилитель сигнала COM ?
как его использовать в моем случяе ?
сколько оно стоит ?
Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



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

Но всеравно не понимаю, max232 это просто усилитель сигнала COM ?
как его использовать в моем случяе ?
сколько оно стоит ?

max232 это микруха, которая прежназначена для создания интерфейса RS-232. Она являеться чуть ли не мировым стандартом

2 IGHOR: Скажи честно, разве так тяжело глянуть в гугле? Скачай спецификацию на неё, почитай. Есть много железячный форумов. На этой микросхеме за 20 лет её существования собраны многие девайсы, принципиалки которых можно найти в инете. Должно буть что-то похожее. Это форум по Qt а не по электронике
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
IGHOR
Крякер
****
Offline Offline

Сообщений: 390



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

ОК, с темы не сбиваемся,
в итоге мне всеравно прийдется висеть на компорте.
в примере
 
есть такая строчка для асинхронного читания компорта
open(MODEMDEVICE, O_RDWR | O_NOCTTY | O_NONBLOCK);
чтобы мне не переписывать весь код компорта можно ли както чтото подобное использовать в qextserialport ?
в параметре его open() чтото задать ?
O_RDWR | O_NOCTTY | O_NONBLOCK там не катит..


Простое читание занимает 3 секунды в проге.. и она зависает в это время.

Проблему с зависанием можно решить путяём добавления потока, в котором будет опрашивться порт

а можно по подробнее ? как поток добавить ?
« Последнее редактирование: Ноябрь 27, 2007, 01:28 от IGHOR » Записан
pastor
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 2901



Просмотр профиля WWW
« Ответ #74 : Ноябрь 27, 2007, 02:02 »

чтобы мне не переписывать весь код компорта можно ли както чтото подобное использовать в qextserialport ?
в параметре его open() чтото задать ?
O_RDWR | O_NOCTTY | O_NONBLOCK там не катит..

Нет, так не пойдёт. В posix_qextserialport работа с портом идёт через QFile

а можно по подробнее ? как поток добавить ?

Смотри QThread и экзамплы связанные с QThread
Записан

Integrated Computer Solutions, Inc. (ICS)
http://www.ics.com/
Страниц: 1 ... 3 4 [5] 6   Вверх
  Печать  
 
Перейти в:  


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