управление программой с помощью кнопки

Подключаем наши девайсы к компьютеру. Обсуждаются: порты, протоколы, драйвера, языки программирования и т.д.
Ответить
Мучитель микросхем
Аватара пользователя
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

доброе время суток Коты, недавно стал вопрос об управлении программой (скриптом, BAtником) с внешней кнопки, например нажал кнопку и запустился bat файл в котором написанно что с данного диска слить инфу на флешку, и результат например выводить загоранием светодиода. Но уточню что комп не имеет переферийных устройств то есть нет клавы мышки и монитора ибо работает автономно, если есть какие либо наработки или мысли то хотелось бы услышать. А то просто не пойму в какую сторону копать то ли HID устройства делать то ли на LPT порту копать :oops:
Реклама
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

larik писал(а): А то просто не пойму в какую сторону копать то ли HID устройства делать то ли на LPT порту копать :oops:
Смотря что конкретно вы хотите. :)
Знание - сила!
Реклама
Мучитель микросхем
Аватара пользователя
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

нажал на кнопку - запустилась прога, или определенный ярлык, а его успешное завершение отображал светодиод
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

larik писал(а):нажал на кнопку - запустилась прога, или определенный ярлык, а его успешное завершение отображал светодиод
Запустилась прога - это понятно. А кто ее запустит?

Проще всего так - прога уже висит в памяти и проверяет нажатие кнопки, висящей на ЛПТ-порту. Дешево и сердито. А уж этот резидент может и другую прогу вызвать, и батник.

А если надо, чтобы резидента не было, значит нужно делать что-то умное, что будет вызывать какие-то прерывания, чтобы ОСь могла чего-то запустить. Можно сделать устройство, которое будет засылать в клавиатурный порт ПС/2 какое-то нажатие, которое, положим, запускает некую прогу. Сложновато будет. Проще на ЛПТ.
Знание - сила!
Реклама
Эиком - электронные компоненты и радиодетали
Мучитель микросхем
Аватара пользователя
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

Пухич писал(а): Проще всего так - прога уже висит в памяти и проверяет нажатие кнопки, висящей на ЛПТ-порту. Дешево и сердито. А уж этот резидент может и другую прогу вызвать, и батник.
согласен на такое =) точней даже впрочем так и предполагал тока что за прога и с чем ее едят ?
потомучто проги которые я знаю они тока на вывод инфы а не на ввод
Реклама
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

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

Суть в следующем - в авторане висит простенькая прожка, она постоянно опрашивает ЛПТ-порт. Если на каком-то входе появляется ноль, значит кнопка нажата. Дальше что-то выполняется. Доступ к ЛПТ-порту можно в ХРюше получить через giveio. Распиновка ЛПТ-порта известна. Собсна все тут так просто, что даже думать нечего.
Знание - сила!
Реклама
Встал на лапы
Сообщения: 87
Зарегистрирован: Ср авг 26, 2009 15:59:39

Сообщение izmmisha »

На самом деле лучше не в автозапуск, а чтобы демон был (или служба на вендовый лад).
Вымогатель припоя
Аватара пользователя
Сообщения: 622
Зарегистрирован: Чт мар 05, 2009 05:31:16
Откуда: г. Кемерово

Сообщение Alexey1969 »

Служба для такой задачи, думаю слишком... И с ЛПТ наверное не стоит связыватся, доступные драйвера под WIN не всегда коррктно работают. Лучше использовать COM (если есть конечно), с прерываниями вопросов не возникает, если нужны, и доступ из любой программы без всяких драйверов. Вообще то задачка, более чем проста.
Контактная информация:
Мучитель микросхем
Аватара пользователя
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

задача да не спорю проста но сталкиваюсь в первый раз с этим поэтому и спрашиваю
P/S с програмированием не силен



с LPT портом разберусь впрочем че куда подключать а вот с прогой проблема то и есть
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18679
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

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

Мой уютный бложик... заходите!
Контактная информация:
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

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

Правда службой делать не буду, только обычным приложением. Лень мне со службой морочиться. Вам, впрочем, разницы ведь никакой, верно?
Знание - сила!
Мучитель микросхем
Аватара пользователя
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

да лижбы работала =)
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Вы с АРВ о чем-то договорились, или еще нужна подобная прога? Если нужна, то тогда попробую к завтрему добраться до Билдера. Переходничок уже нашел на ЛПТ-порт, чтобы проверить работу проги, и сами сорцы нашел.
Знание - сила!
Мучитель микросхем
Аватара пользователя
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

ну если ответил значит еше нужна, если речь конеш о $$$ не пойдет :oops:
P/S откуда у бедного студента они :))
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

larik писал(а):ну если ответил значит еше нужна, если речь конеш о $$$ не пойдет :oops:
P/S откуда у бедного студента они :))
Господи, при чем тут $$$? :o

Ладно, потерпите. Точно сделаю, раз так надо. :)
Знание - сила!
Мучитель микросхем
Аватара пользователя
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

пасиб большое =) буду рад любой помощи
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Короче, вот два архива - один с прогой, другой с драйвером giveio.sys (лень было вспоминать ВинАПИ, а на ассемблере я с закрытыми глазами напишу проверку ЛПТ-порта). Как драйвер ставить - там в файле написано. Дальше запускаешь прогу.

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

При запуске прога пытается открыть указанное приложение для чтения, чтобы проверить его наличие, если его нет, то выдается месседж. Затем подключается драйвер, если его нет - опять же месседж. Затем прога ждет нажатия кнопки, соединяющей 10 ногу ЛПТ-порта с сигнальной землей. Имеется в виду полное нажатие, с отпусканием (дребезг контактов устраняется примерно на 100 мс). Затем идет попытка запустить указанное приложение, и если оно не запускается (прав нет на исполнение, или еще чего), то выдается месседж. Затем прога вырубается.

Я только не понял, что из себя должна представлять сигнализация светодиодом, чего там надо проверять (и как вообще можно проверить исполнение батника?), поэтому тупо выводится на 9 ногу единица, если удалось запустить приложение. До этого там ноль. Только прямо на ногу порта светодиод не вешать, может погореть!

Прога сляпана из кусков других программ, по размеру не оптимизирована, так что уж не обессудьте. Если что-то надо переделать - пишите.
Вложения
8.rar
(215.45 КБ) 282 скачивания
Последний раз редактировалось Пухич Чт сен 24, 2009 17:45:10, всего редактировалось 1 раз.
Знание - сила!
Модератор
Аватара пользователя
Сообщения: 4673
Зарегистрирован: Вс июн 01, 2008 00:17:35
Откуда: Я всего лишь плод вашего воображения...

Сообщение Пухич »

Вот архив с драйвером.
Вложения
giveio.rar
(2.06 КБ) 291 скачивание
Знание - сила!
Мучитель микросхем
Аватара пользователя
Сообщения: 403
Зарегистрирован: Вс окт 12, 2008 00:19:25
Откуда: Подольск, Мос. Область

Сообщение larik »

пасиб, ша на работе буду дома буду пробовать =)
Встал на лапы
Сообщения: 87
Зарегистрирован: Ср авг 26, 2009 15:59:39

Сообщение izmmisha »

Пухич писал(а):и как вообще можно проверить исполнение батника?
батник как и любая программа может вернуть код завершения, если не возвращать самим батником явно через exit, результатом будет код завершения последней выполняемой команды. Вот пример батника:

Код: Выделить всё

@echo off
echo 123
exit /B 1
вот результат его выполнения:

Код: Выделить всё

C:\>test.bat
123

C:\>echo %errorlevel%
1
Ну и как принято если код завершения 0, то всё хорошо можно сигналить ;)


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

Вернуться в «Интеграция с ПК»