Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > ОС и железо
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 14.10.2012, 06:28
firmwares firmwares вне форума
Прохожий
 
Регистрация: 30.06.2010
Сообщения: 6
Репутация: 10
Сообщение Работа со считывателем БСК MF-RW-USB

Всем доброго времени суток.

Суть вот в чем:
1. Есть считыватель БСК MF-RW-USB, который создает виртуальный COM порт средствами FT232.
2. Для общения со считывателес используется DLL библиотека, которая содержит в себе все необходимое.
3. Обмен данными со считывателем осуществляется с использованием проверки контрольных сумм по FCS алгаритму.

Функция W_IO: обмен данными со считывателем
Код:
function W_IO(Address, Cmd: char; BodyLen: integer; const CmdBody; var ReplyLen: integer; var Reply-Buffer): char; 
char W_IO(char Address, char Cmd, int BodyLen, void *CmdBody, int *ReplyLen, void *ReplyBuffer);
Описание:
Address адрес считывателя (0..3F)
Cmd команда
BodyLen длина дополнительных данных для команды
CmdBody буфер, содержащий дополнительные данные
ReplyLen длина данных, полученных от считывателя
ReplyBuffer буфер, в который будут помещены полученные данные.
При вызове функции в ReplyLen должен быть записан размер области памяти, отведенной под Reply-
Buffer. На выходе в ReplyLen будет записана длина фактически полученных данных.
Возвращаемое значение – код возврата, см. раздел «Константы» REPLY_XXXXX.

Пример из мануала к библиотеке:
Код:
procedure ReadEventLog;
var
  Ret: char;
  RL: integer;
  Event: TEvent;
begin
// до вызова этой функции должна быть вызвана функция W_SetPortParams
// читаем считыватель с адресом 3F
  repeat
    Ret := W_IO(#$3F, #$10, 0, '', RL, Event);
    if Ret = REPLY_OK then begin
//    Успешно прочитали событие, обрабатываем его…
      Ret := W_IO(#$3F, #$11, 0, '', RL, Event);
      if Ret <> REPLY_ACK then begin
//      Ошибка удаления последнего события – обрабатываем…
      end;
    end else begin
//    Ошибка чтения события – обрабатываем…
    end;
  until Ret <> REPLY_ACK; // выход из цикла чтения при ошибке
end;

Скажите пожалуйста, как сформировать запрос таким образом, чтобы ответ полученный от считывателя вписывался в Edit.
В Edit необходимо вывести данные из ReplyBuffer.

Еще было бы не плохо выкинуть настройки порта в ini
Код:
 t.Port:= 1;
 t.BaudRate:= 9600;
 t.WaitPortTimeout:= 200;
 t.ReadTotalTimeout:= 100;
 t.ReadNextByteTimeout:= 50;
 t.RecordSize:= 21;

Прошу, не пинайте, в работе с портами я ноль, а сделать необходимо.
Всем заранее огромное спасибо за помощь.
Вложения
Тип файла: rar DLL.rar (237.8 Кбайт, 9 просмотров)
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter