Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.12.2010, 19:10   #1
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
Вопрос iButton USB reader как обратится из Delphi

Есть устройство iButton USB reader и дрова к нему фирмы Алладин. Драйвер установлен, а как на устройство из Delphi выйти без понятия. Поделитесь пожалуйста информацией кто знает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 15.12.2010, 20:24   #2
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

прежде всего зайти на офсайт алладина, хотя бы на русский вариант и почитать их же форум... к примеру, API для Delphi Вы можете скачать здесь ftp://ftp.aladdin.com/pub/hasp/Senti...n-time_API.zip

...а еще почитать вот это http://www.aladdin-rd.ru/support/for...08#message1581
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 13.01.2011, 10:20   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Все оказалось очень просто. В ссылках от raxp есть примеры, но без этого драйвера, а с доступом через com порт. Ниже код для отладки
Код:
procedure TForm2.SpeedButton5Click(Sender: TObject);
const IBUTTON_READER_CDO_USER_DEVICE_NAME = '\\.\touchm0';
      IOCTL_TMDRV_PRESENCE_DETECT = $00226A90;
      HexDigits: array[0..15] of Char = '0123456789abcdef';
var xHandle: THandle;
    xErr,dwBytes: DWORD;
    bTmId: array[1..8] of Byte;
    i,j: Integer;
    s: String;
begin
  xHandle:=CreateFile(IBUTTON_READER_CDO_USER_DEVICE_NAME,
           GENERIC_READ,FILE_SHARE_READ,nil,
           OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
  if xHandle=INVALID_HANDLE_VALUE then begin
    xErr:=GetLastError;
    Edit1.Text:='CreateFile '+IntToStr(xErr);
    Exit;
  end;
  try
    if not DeviceIoControl(xHandle,IOCTL_TMDRV_PRESENCE_DETECT,
                           nil,0,@bTmId,8,dwBytes,nil) then begin
      xErr:=GetLastError;
      Edit1.Text:='PRESENCE_DETECT '+IntToStr(xErr);
      Exit;
      //xErr=3848273921 если нет iButton
    end;
    s:='';
    for i:=7 downto 2 do begin
      j:=bTmId[i] div 16;
      s:=s+HexDigits[j];
      j:=bTmId[i] mod 16;
      s:=s+HexDigits[j];
    end;
    Edit1.Text:='$'+s;
  finally
    CloseHandle(xHandle);
  end;
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.01.2011, 10:55   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

собственно, так и есть, открываем устройство как файл и далее парсим данные ...usb девайс создает виртуальный COM порт.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу устанвоить USB Key Card Reader СисТемникс Безопасность, Шифрование 5 27.08.2010 21:08
Как обратится к конкретной ячейке loki22208 БД в Delphi 8 03.05.2010 20:07
Delphi Reader - в помощь программисту ZuBy Софт 4 24.04.2009 14:27
Delphi и Adobe Reader 7.0 dagarik Общие вопросы Delphi 2 01.11.2007 14:55
как обратится HrenoV Общие вопросы C/C++ 1 16.02.2007 18:05