|
WitC
|
|
Помогите разобраться с LPT09.10.2006, 03:16. Показов 4556. Ответов 18
Метки нет (Все метки)
Всем доброго времени! (сразу спасибки, что не пропустили тему!)
Как-то раньше не задумывался над вопросом работы с внешними устройствами из ВБ, теперь встала проблема читать и записывать в порт ЛПТ данные, конфигурить его по своему усмотрению. Перебрал кучу ссылок в нете, каждый, этот вопрос, решает по-разному, кто *.длл подключает, а кто АПИ использует. Но у меня проблема с условием - мне не подходит работа с подключаемой *.длл. Мне надо чтобы это заключалось или с АПИ функциями, или с АСМ-вставками, или (где-то прочитал) работа с kernel.dll (что и есть АПИ, как я понимаю). АСМ-вставки отпадают, читал что ВБ не поддерживает такой подход, но народ как-то умудряется схитрить??? Остаются АПИ. Искал много, но не нашёл ни чего конкретного. Если кто знает - не обойдите вниманием, очень надо!!! Зарание спасибо, Wit! |
|
| 09.10.2006, 03:16 | |
|
Ответы с готовыми решениями:
18
Есть программа работы с LPT, не могу разобраться LPT программатор + PCI->LPT на NetMosChip nm9835cv Помогите разобраться |
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|
| 09.10.2006, 03:20 | |
|
Специльно для бездельников и лентяев:
http://www.yandex.ru/yandsearch?text=Visual+Basic+%F0%E0%E1%E E%F2%E0+%F1+LPT&stype=www http://www.yandex.ru/yandsearch?text=Visual+Basic+%F0%E0%E1%E E%F2%E0+%F1+LPT&stype=www и еще... потому как заранее линк знал: http://vbrussian.com/Article.asp?ID=81 http://vbrussian.com/Article.asp?ID=81
0
|
|
|
WitC
|
|
| 09.10.2006, 16:52 | |
|
Спасибо за ответ!
Вот опять об один и тот же камень..... Мне очень надо без подключаемых *.длл или АктивИКС, условия у меня такие. Если бы можно было подключить, всё было бы проще. А вот вторая ссылка лучше, я её тоже видел, когда инфу собирал. Речь идёт о KERNEL.DLL, она встроена в Винду и через неё можно работать с портом ЛПТ в ВинИксПи. Но встаёт другая проблема, драйвер есть, а как с ним начать работать????? Я не знаю???? Вот и обращаюсь к обществу, как говорится "... гуртом и батька бить легче ....", если есть умельцы, буду благодарен за любую помощь в этом вопросе! За ранее спасибо, Вит. |
|
|
WitC
|
||||||
| 10.10.2006, 04:35 | ||||||
|
Нашёл вот что:
CreateFile("LPT1",...,...,........) |
||||||
|
WitC
|
|
| 11.10.2006, 15:31 | |
|
Неужели ни кто не работа с железом на ВБ???
Дайте ссылку на описание АПИ-функции CreateFile, плизззз! |
|
|
0 / 1 / 3
Регистрация: 27.03.2012
|
|
| 11.10.2006, 15:44 | |
|
ну поискать ведь можно, вот например пример использования
http://www.tek-tips.com/faqs.cfm?fid=5243 http://www.tek-tips.com/faqs.cfm?fid=5243
0
|
|
|
WitC
|
||||||
| 13.10.2006, 03:29 | ||||||
|
Да, туго мне даётся работа с железом. Куча ссылок, море информации......
есть вот такой код, по ссылке которую дал Alexey:
В вызове меняю 4-й параметр ByVal CLng(0) на константу FILE_SHARE_WRITE , после небольшой задумчивости на экране появляетсязначёк кретического завершения приложения с предложением отправить отчёт в Майкрософт. Я бы очень был благодарен, если бы мне объяснили значение этих констант, критерий их значений и параметр вызова CreateFile - что за чем идёт????? |
||||||
|
Alex77
|
|
| 14.10.2006, 00:46 | |
|
Посмотри ещё статью на http://vbrussian.com/Article.asp?ID=81 http://vbrussian.com/Article.asp?ID=81
|
|
|
WitC
|
||||||
| 15.10.2006, 00:22 | ||||||
|
Спасибо, но опять не то.... Я На эту статью нарываюсь через каждую ссылку!!!!
У меня проблема: работать должно БЕЗ СТОРОННИХ *.ДЛЛ и АКТИВ_ИКС... или свой код дописывать в каждую последующую прогу - но так не даст работать WinXP, или использовать АПИ-функции. Пошёл по второму пути, есть АПИ-функция CreateFile, работу её понимаю, уже нашёл и описание к ней (только описание как создавать файлы и работать с ними), а описание как работать с объектом(в частности с ЛПТ) нету!!!! Пишу такой код:
А вот ещё, в области где идёт декларация функции етсть выражение "CreateFileA", а в некоторых примерах которые я просматривал пишут так "CreateFileW" - чем они отличаются???? Может тут загвоздка??? |
||||||
|
WitC
|
|
| 15.10.2006, 18:09 | |
|
Есть контакт!!!
При вызове CreateFile переменную хэндла объявляем не Byte а Long. При декларации АПИ-функции (где подключаем Kernel32) прописываем CreateFileW вместо CreateFileА (кстати вопрос ещё стоит чем они отличаются между собой) Да, и ещё.... АПИ-функции FileRead и FileWrite - описание плзззззз. |
|
|
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
|
|
| 15.10.2006, 18:22 | |
|
1) Не плодите лишние сообщения
2) Опять же - для лентяев и бездельников: http://www.google.com/search?hl=en&lr=&newwindow=1&q=API+funct ions http://www.google.com/search?hl=en&lr=&newwindow=1&q=API+funct ions
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2006
Сообщений: 29
|
|
| 15.10.2006, 19:38 | |
|
В Виндозе есть зарезервированные имена файлов, которые нельзя создать(LPT1,COMn и другие...)
Когда пользуешся функцией CreatFile имя файла нужно указывать с двуеточием ("LPT1:")!!! Попробуй! Если заработает, сообщи! Я тоже кодю железо на вб, только я использую длл. А про это открытие порта с ":" я еще помню из QB, открытие СОМ порта там так осуществляется!
0
|
|
|
WitC
|
|
| 16.10.2006, 00:14 | |
|
Спасибо. вот с открытием ужо разобрался, работает без ":", код выше, и приписка чуть ниже.....
А вот запись и чтение - вот это штука!!!! Функции WriteFile и ReadFile, а вот где различить с какого пина берём значение??? Или на какой пин пишем???? Есть предположение, что нам надо записать туда просто число, а оно само раскидает на соответствующие пины, например запишем число 3, а оно выдаст на пины такой код 00000011 (ну байт, в смысле). С этим согласен, где-то удобно. А мне надо установки записывать и читать соответственно на "База+2" и "База+1" (т.е. на втором и первом подрегистре)! А как до них добраться в этом случае??? |
|
|
0 / 0 / 0
Регистрация: 15.10.2006
Сообщений: 29
|
|
| 16.10.2006, 19:03 | |
|
Что-то не совсем ясно что за база1...база2....
Если есть опыт работы с XOR, AND,OR то тогда работать с ком портом будет одно удовольствие! Наппример 00110011 and 11001100 получается 11111111 11110011 xor 11000011 получиться(если я не ошибаюсь) 00110000 как действует OR пока так и не понял для понятности вопроса напиши, что должна делать твоя прога(как я понимаю у тебя должно получиться что-то вроде эмулятора.....)
0
|
|
|
2 / 2 / 0
Регистрация: 09.09.2009
Сообщений: 118
|
||
| 17.10.2006, 00:56 | ||
А если ЛПТ-порт используется для работы с каким-нибудь разрабатываемым устройством или уже готовым (например, я был свидетелем, как когда-то ребята, у которых я учился проги писать, разработали свой программатор ПЗУшек, используя ЛПТ-порт, сам программатор тоже они сделали <IMG style="CURSOR: pointer" onclick="AddSmileyIcon('smileys/smiley3.gif')" alt=Shocked src="http://conf.nautilus2001.ru/smileys/smiley3.gif" border=0>), ну вот здесь надо иметь в виду вот что. Разъем ЛПТ состоит из 25 штырьков. Из них 8 - это как раз тот байт данных, который посылается на принтер. Но дело в том, что эти выходы доступны только для записи, т.е. записать - передать байт можно, а вот принять через него нельзя. Это как раз порт 378Н. Есть еще 8 штырьков, которые поделены для использования 2-мя портами. Порт 37аН - управление принтером. Вот здесь как раз первые 5 бит этого порта (т.е. 5 штырьков разъема) как раз двунаправленные, т.е. можно записывать в них, при этом сигналы будут уходит в твоё устройство, или считывать биты из устройства. Порт 379Н - чтение состояния принтера. Здесь используются 3 старших бита (еще 3 штырька) Эти биты доступны только для чтения,т.е. принимают биты с твоего внешнего устройства. Остальные штырьки - это Gnd (т.е. Земля и Корпус) Для электронщика этого вполне хватает, чтобы кучу всяких устройств сделать <IMG style="CURSOR: pointer" onclick="AddSmileyIcon('smileys/smiley4.gif')" alt="Big smile" src="http://conf.nautilus2001.ru/smileys/smiley4.gif" border=0> Вот кстати ссылка, где расписаны штырьки и описывается устройство, разработанное на основе стандартного ЛПТ-разъема: http://imlab.narod.ru/Electron/Recorder/Recorder.htm http://imlab.narod.ru/Electron/Recorder/Recorder.htm
0
|
||
|
WitC
|
||||||
| 17.10.2006, 01:29 | ||||||
|
Ну вот, а я тут мучаюсь!!!! С портом всё ясно!!! Спасибо за содержание!
Вот только ЛПТ может работать в нескольких режимах (Centronics, SPP, ЕРР, ЕСР), режимы переключаются программно там надо писать в управляющие регистры, но с этим потом. Программа которая данна выше открывает порт (создаёт файл) с помощью CreateFile (API). С помощью WriteFile и ReadFile можно читать и записывать в порт (т.е. в файл). Я пишу следующее:
Программа мне нужна для управления нестандартным устройством, каким ещё сам не знаю, это демо попросили сделать, показать что умею, но с железом чёт не прёт, а время поджимает!!! СПАСИБО, есть ЛЮДИ которые время от времени напишут, направят!!!!!!! |
||||||
|
WitC
|
||||||
| 17.10.2006, 03:29 | ||||||
|
Прошу прощения у Alexey Spirin за подробное описание своих действий! Думаю в следующий раз Вам не придётся столь переутруждать себя для лентяев.
А на счёт чтения и записи - разобрался! Просто создал две функции и положил туда код - один на чтение, второй на запись, и после каждой обработки закрывал Хендл. Вот так:
У меня такая проблема была с WinSock, когда я писал Клиент-Сервер, при вызове Winsock.Send из одной функции несколько раз подряд, все данные склеивались в одно сообщение. Надо было Winsock.Send один раз вызвать и завершать функцию, потом если данне остались ещё раз вызывать одну и ту же функцию. Пришлось делать буфер, выдумывать формат пакета где бы указывалось число пакетов и т.д....... Вот и тут подобное надо делать будет. А теперь вопрос: КАК ПРОГРАММИРОВАТЬ СЛУЖЕБНЫЕ ДАННЫЕ (ДАННЫЕ СОСТОЯНИЯ)?????????????????? Да ещё, как вычислять какие пины окажутся "зажжёнными" при определённом коде, например 43??????????????????????? |
||||||
|
2 / 2 / 0
Регистрация: 09.09.2009
Сообщений: 118
|
|
| 17.10.2006, 04:14 | |
|
Хорошо, представьте себе, что я решу Вашу проблему за $1000 и разберусь во всех Ваших проблемах <IMG style="CURSOR: pointer" onclick="AddSmileyIcon('smileys/smiley1.gif')" alt=Smile src="http://conf.nautilus2001.ru/smileys/smiley1.gif" border=0>. Если это не устраивает, попробуйте вникнуть в процесс изучения проблемы, VB я оч.люблю, но ... для работы с портами лучше всего использовать Ассемблер, Си (++), да и Дельфи подойдет, но главное, вникнуть в физический смысл процесса записи в порт и чтения из порта.
ЗЫ. На сайте, который я рекомендовал есть проги на Дельфи, попробуй разобраться в них. ЗЫЫ. Это не означает, что это нельзя написать на VB, но просто я не стал бы мучить БГ, а попробовал бы использовать другие ресурсы. Удачи!<IMG style="CURSOR: pointer" onclick="AddSmileyIcon('smileys/smiley1.gif')" alt=Smile src="http://conf.nautilus2001.ru/smileys/smiley1.gif" border=0>
0
|
|
|
0 / 0 / 0
Регистрация: 15.10.2006
Сообщений: 29
|
|
| 17.10.2006, 16:40 | |
|
Переведи циферку 43 в бинарный код! получиться 00101011 т.е. включены d0,d1,d3,d5 - ножки
0
|
|
| 17.10.2006, 16:40 | |
|
Помогаю со студенческими работами здесь
19
Помогите разобраться. Подскажите литературу по матлабу по работе с комплексными числами ПОМОГИТЕ РАЗОБРАТЬСЯ Помогите разобраться с ЯД Помогите разобраться. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Загрузка PNG-файла с альфа-каналом с помощью библиотеки SDL3_image на Android
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|