Delphi, работа с портами.
P.S Эта тема вроде бы уже обсуждалась на форуме.
Возми CPort263.zip это компонент работы с компортами для С++ и Delphi работает под всеми Windami
Еще есть сайт там много всяких примеров, может найдешь что-нибудь нужное
Реально драйвер нужен. Как железка прицеплена-то? (PC I /USB / COM /.?)
Если нужно записывать/читать из COM порта достаточно использоваться winapi функции СreateFile, ReadFile, WriteFile
В ответ на:
Communications Resources
The CreateFile function can create a handle to a communications resource, such as the serial port COM1. For communications resources, the dwCreationDisposition parameter must be OPEN_EXISTING, and the hTemplate parameter must be NULL. Read, write, or read/write access can be specified, and the handle can be opened for overlapped I/O. For more information about communications, see Communications.
Железка самодельная, для управления прибором, висит на ISA шине и использует свои порты от 0x300 до 0x30b. Так что работа с COM-портом не катит.
Это не я предлагал. Я предлагал драйвер писать. Это не слишком сложно. Хотя и несколько муторно.
Так собственно, на чём его писать то?
1. Oney, Walter. Programming the Microsoft Windows Driver Model.
В нашей сетке есть 1 и 2 издания. Must read, однозначно.
2. Art Baker, Jerry Lozano. The Windows 2000 Device Driver Book, A Guide for Programmers
Опять таки есть в сетке.
3. Gary Nabbet Windows NT Native API
Насчёт сетки не знаю, в инете точно где-то валялась.
4. Раздел "Низкоуровневое программирование" сайта .
Только сначала ищи по разделу, а потом спрашивай, а то местные гуру обижаются.
5. Сайт .
В добавок:
DDK есть на моей машине. Nu Mega Driver Studio (старенькая - для Win2k) 2.5 - там же.
В сетке вроде видел 2.6 (для XP годится). Как минимум SoftIce из комплекта DS must have.
Насчёт литературы.
Прочитать, конечно, всё это надо. для общего развития, но. Если железка не слишком сложная и драйвер не планируется массово распространять (проходить сертификацию в Microsoft и проч. то можно во всё это не вникать, а попробовать взять один из примеров из DDK / DS и подогнать его под свои нужны.
Огромное спасибо за подробнейшую инфу. Попробую сделать.
Оставить комментарий
Gasparfx
Народ, есть проблема: нужно в программе осуществить работу с портами (для работы с самодельной железкой). Я это делал через ассемблерные процедуры IN и OUT в тексте программы. Но это работает только в win 98/9x а в win 2000/XP отказывается работать, ругаясь при этом: "Privileged instructions".Мне посоветовали написать драйвер, но я в этом полный ламер и не знаю в чём его делать и как? Можно ли его написать в том же Delphi?