Модераторы: Akella, bartram

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Эмулятор вместор принтера 
:(
    Опции темы
JusTalionis
Дата 25.7.2008, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 0
Всего: 17



Предварительные результаты надеюсь получить где-то в течение недели. После чего можно будет говорить более предметно, как будет порт работать на выбранных режимах.
Если что - пишите мне в личку.

PM MAIL   Вверх
JusTalionis
Дата 28.7.2008, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 0
Всего: 17



Уважаемый Zerstroer, ситуация складывается так, что без Вашего непосредственного участия не обойтись.

Посмотрите пожалуйста, какова РЕАЛЬНО длительность импульса строба, который выдает ваше устройство принтеру?
Это можно посмотреть осциллографом на ножке 1 разъема LPT,  который 25-контактный на компе (а не на принтере. На принтере другая нумерация). Общим проводом ("земля") являются все контакты с 18-го по 25-й. Желательно использовать при измерении именно один из них, а не шасси прибора.

Интересует длительность пребывания сигнала на ножке 1 в состоянии "0" во время нормальной печати на принтер.
Ожидается, что очень короткие "инверсные" (то есть от +5v до 0v) импульсы могут присутствовать периодическими пачками.
Интересует именно длительность единичного импульса, насколько она мала. Если миллисекунды - это одно, а если микросекунды - сааааавсем другое...

Ориентируясь на вашу информацию, я буду думать, как именно можно отловить приход такого импульса. Пожалуйста отпишите подробно, что Вы там увидели.


PM MAIL   Вверх
Zerstroer
Дата 29.7.2008, 06:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



К сожалению, я не имею доступа к промышленному компьютеру, для которого, собственно говоря, все и делается. Импульс снять не смогу. 
Располагаю только теоретической информацией по интерфейсу Centronix.  Именно такой интерфейс (36 контактов) пром. компьютер и использует.
Я так понял, что возникла проблема с интервалом отлова импульса строба? 

Это сообщение отредактировал(а) Zerstroer - 29.7.2008, 06:24


--------------------
In silico
PM MAIL ICQ   Вверх
JusTalionis
Дата 29.7.2008, 09:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 0
Всего: 17



Эти данные мне известны. Собственно, они-то и создают проблему, так как из них следует, что строб имеет длительность 500 наносекунд. Тут даже и прерывание не факт что поможет.
Но это минимально дозволенная его длительность. Скорее всего, ваш технологический компьютер формирует гораздо более длинный (потому что такой короткий программно сформировать непросто). Поэтому я и запросил реальные данные с устройства.
Если же ориентироваться именно на эту длительность строба и присутствия данных, то ловить такие придется только аппаратно, то есть ставить микросхему "регистр-защелка", которая будет хранить данные, пока компьютер их не прочитает из нее.

Поэтому гораздо лучше все же реальную длительность измерить. Что, электронщиков там нет что ли, которые могли бы разобрать разъем и померить? Или орг проблемы с руководством?

PM MAIL   Вверх
Zerstroer
Дата 29.7.2008, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Проблемы и в том и в другом. Электронщиков там нет, т.к. это бетонный завод. И операторам компьютера строго настрого запрещено, кого либо пускать ближе чем к принтеру. 
А какова минимальная длительность строба, которую можно отловить  программно? 
От чего должна зависеть эта длительность? От машины с которой ведется печать?
Из моего впечатления об этом компьютере я могу предположить, что длительность должна совпадать с длительностью печати с обычного PC на матричный принтер.


Это сообщение отредактировал(а) Zerstroer - 29.7.2008, 09:38


--------------------
In silico
PM MAIL ICQ   Вверх
JusTalionis
Дата 29.7.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 0
Всего: 17



Длительность строба со скоростью печати не соотносится. Скорость печати зависит от частоты следования этих импульсов. Если эти импульсы повторяются редко, то скорость печати будет маленькой, но сами они могут оставаться очень короткими, тем не менее.

Какой импульс можно надежно отловить? Это зависит от того какой компьютер и под какой системой.
Виндовс - очень медленная, в этом смысле, система. Она производит много не относящихся к делу операций, и на них уходит время.
Наибольшую скорость дает ДОС, потому что ничего не забирает для себя. Весь ресурс компьютера предоставляется программе.
Если писать программу без изысков, просто проверкой состояния порта, то компьютер должен совершить следующее:

прочитать данные с порта LPT
Сравнить их с образцом
Если не совпадает - строба нет, продолжать;
прочитать порт клавиатуры
сравнить с образцом
Если ни одна клавиша не нажата, вернуться на начало (повторение цикла)

(Опрос клавиатуры к LPT не относится, но это необходимо: а вдруг ваше устройство перестало передавать данные? - тогда комп, без обращения к клавиатуре, завис бы.)
Я сделал практическую проверку, набросав такую программку на ассемблере. Оказалось, что вращение подобного цикла на машине 1 Ггц занимает примерно 8 мкс, на более медленной машине, соответственно, будет больше.
Следовательно, чтобы строб надежно ловился этим методом, он не должен быть короче 10 мкс по крайней мере (иначе проскочит между проверками).
Применив оптимизацию кода, скорость можно несколько увеличить, но не в 20 раз, это ясно.

Добавлено через 10 минут и 43 секунды
ЗЫ: если доступ хотя бы к принтеру есть,  то нет проблемы померить ипульс на этом конце кабеля. На стороне принтера строб также приходит на 1-й контакт, "земля": 19..30.

PM MAIL   Вверх
JusTalionis
Дата 29.7.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 0
Всего: 17



но мерить надо во время работы принтера. На отключенном разъеме никаких импульсов не будет, потому что возникнет состояние ошибки, обрыва.

PM MAIL   Вверх
JusTalionis
Дата 29.7.2008, 23:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 0
Всего: 17



 smile Сегодня мне удалось запустить механзм прерывания и я отладил тестовую утилитку.
Распайка кабеля для нее (и для остальных, если она заработает) такова:

--->
-------------
1 - 10
2 - 15
3 - 13
4 - 12
5 - 11
6 - 1
7 - 14
8 - 16
9 - 17
10 - 2
11 - 3
12 - 4
13 - 5
15 - 6
18..25 - 18..25
---------------
эта распайка - для двух 25-контактных разъемов (как на компьютере, а не как на принтере)
Слева порт-источник, справа - приемник.
Выводы с 18 по 25 - "земля", могут быть соединены друг с другом.
Неуказанные контакты оставить свободными; не подключены никуда.

Утилита, приложенная к этому сообщению, предназначена только для проверки "механизма", она не имеет совершенно никакого сервиса. Принимаемые символы она просто кидает на экран без какой-либо обработки. Нажатие любой клавиши закрывает программу.
Утилита- для работы под настоящей ДОС, а не в сеансе под Виндовс.
Работает только с портом LPT1.
Если компьютер современный, и периферия может настраиваться в BIOS, то порту должен быть установлен режим Bi-Dir и прерывание (irq) 7.
С иными параметрами работать не будет.

Пожалуйста проверьте; не факт, что заработает, потому что проверялась только на сигналах, задаваемых в ручную.
Чтобы проверить с реальным источником-портом нужен второй компьютер, и это у меня будет не раньше, чем закончится мой отпуск  smile

ЗЫ
Данная версия содержала ошибки, и за это удалена. См. пост ниже, к которому приложена исправленная версия, проверенная в реальных условиях.
 



Это сообщение отредактировал(а) JusTalionis - 28.8.2008, 17:31
PM MAIL   Вверх
Zerstroer
Дата 30.7.2008, 07:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Произведу проверку утилиты и кабеля в кратчайшие сроки!


--------------------
In silico
PM MAIL ICQ   Вверх
Zerstroer
Дата 22.8.2008, 07:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Что ж кратчайшие сроки затянулись. Но скоро проверка будет произведена!
С подключением новых ресурсов с моей стороны стало возможно использование варианта с микросхемой.

Это сообщение отредактировал(а) Zerstroer - 22.8.2008, 07:40


--------------------
In silico
PM MAIL ICQ   Вверх
JusTalionis
Дата 22.8.2008, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 0
Всего: 17



Хотелось бы конечно, чтоб заработало просто по кабелю. Микросхема - это какой ни есть, а все-таки "огород".
Будем надеяться на лучшее.

PM MAIL   Вверх
mihanik
Дата 23.8.2008, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


-=Белый Медведь=-
****


Профиль
Группа: Комодератор
Сообщений: 4054
Регистрация: 24.4.2006
Где: г. Тверь

Репутация: нет
Всего: 109



Жаль, что невозможно использовать ставшую уже стандартной  утилитку, которая перехватывает печать из программ DOS, запущенных в сеансе Windows XP... :-(

Так многие старые программы научил работать на виндовых принтерах и получать текст в файле, вместо бумаги...




--------------------
Программистами не рождаются, - это родовая травма...
user posted imageuser posted image
PM MAIL WWW ICQ   Вверх
Zerstroer
Дата 27.8.2008, 10:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 285
Регистрация: 8.8.2007
Где: Алма-Ата

Репутация: нет
Всего: 3



Произвел проверку первой версии утилиты.
К сожалению результат отрицательный.
Утилиту запустил из под живого и настоящего MS-DOS 6.22 + NortonCommander 5.0
На печать отправил из того же Norton Commandera 5.0 через встроенный редактор F4. 
Реагирования на принимающей стороне не было.
Полученный результат тоже результат!

Из за сомнений по поводу возможности собственной ошибки вопрос: каким образом можно проверить функциональность LPT порта на принимающей машине? Как задать сигналы вручную (как вы проделали без передающей машины)?
Кабель я прозвоню.




Это сообщение отредактировал(а) Zerstroer - 27.8.2008, 10:25


--------------------
In silico
PM MAIL ICQ   Вверх
JusTalionis
Дата 27.8.2008, 18:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 0
Всего: 17



Можно проверить следующим образом.

1. Контакт 10 порта LPT1 (принимающая машина, здесь и далее) через резистор 1 кОм соединить с +5v. +5 можно взять с контакта 5 того же порта. Я просто втыкал резистор длинными ножками в соответствующие дырочки разъема.

2. Контакты 1, 11, 12, 13, 14, 15, 16, 17 - соединить с "землей" выборочно - в произвольной комбинации (это имитация "данных") Но можно все оставить свободными.

3. Контакт 10, не отключая резистора, кратковременно соединять с "землей". 
В моменты соединения, на экране должны появляться знаки и группы знаков (так как контакт 10 - это строб прихода данных).
Какие именно знаки - зависит от того, какие контакты из 1..17 соединены с "землей". Если все контакты 1..17 не подключены, будет выводиться символ 0FFh, отображаемый обычно пробелом. В этом случае будет видно, как курсор текста "бежит" по экрану. Могут также появляться какие-нибудь знаки от наводок на пустые входы.
Если на экране ничего происходить не будет, значит принимающий порт не работает почему-то вообще. Проверьте настройку LPT в BIOS компьютера. Должен быть режим Bi-Dir, прерывание 7, базовый адрес 378h. (В некоторых БИОСах настраиваются не все эти параметры, тогда надо настроить те, которые есть).

Если порт находится на вставной карточке - нужно проверить, стоит ли на нем перемычка (джампер), отвечающая за включение прерывания (IRQ). Если есть еще джамперы, переключающие номер порта, то должно быть LPT1, а не 2.

Со своей стороны, я попробую соединение между компьютерами на работе (это может потребовать нескольких дней времени).

Отпишите, пожалуйста, о результатах проверки "в ручную".


Это сообщение отредактировал(а) JusTalionis - 27.8.2008, 21:04
PM MAIL   Вверх
JusTalionis
Дата 28.8.2008, 13:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 576
Регистрация: 11.7.2006

Репутация: 0
Всего: 17



Запустил утилиту на двух машинах, как положено. Утилита криво, но работала. Выяснилась небольшая, но очень каверзная ошибка. В ассемблере много тонких нюансов... я потратил 7 часов, пока нашел, в чем дело))))
Сейчас ошибка исправлена.
Выкладываю в этом посте исправленную версию утилиты. Эта версия у меня четко работала в реальных условиях на прием данных, передаваемых на печать другим компьютером.

Обе машины - под "чистой" ДОС от WIN98, вывод на печать был сделан командой F9 в режиме просмотра текста нортоновским вьюером (wpview).

Zerstroer, пожалуйста возьмите исправленную версию и проверьте у себя.



Это сообщение отредактировал(а) JusTalionis - 28.8.2008, 17:34

Присоединённый файл ( Кол-во скачиваний: 15 )
Присоединённый файл  test.com 1,11 Kb
PM MAIL   Вверх
Страницы: (3) Все 1 2 [3] 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программное обеспечение"
Deface
Akella

Запрещается!

1. Обсуждение крэков, кейгенов и других подобных программ

Пробуйте искать сами или обращайтесь в приват к участникам форума.

Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения.

Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...)

2. Давать ссылки на взломанные продукты

  • Пожалуйста, пользуйтесь поиском перед тем, как задать вопрос - возможно ответ уже есть на форуме.
  • Название темы должно отражать её суть
  • Действия модераторов можно обсудить здесь

С уважением, Akella, bartram.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программное обеспечение | Следующая тема »


 




[ Время генерации скрипта: 0.0792 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.