sergkhar писал(а):Во, велосипедисты. Чем родная TestCCNET не устроила?
На прилагаемом рисунке не змена стандартной TestCCNET, а лиш тестовая программа проверяющая работу объекта - который может быть использован в любом приложении, написаном на Delphi.
Заголовок объекта:
Код: Выделить всё
TCashCodeBillValidatorCCNET = class(TObject)
constructor Create();
destructor Destroy(); override;
private
FComFile : THandle; // Указатель на com порт
FProcessMesage:TProcessMessage;
FPolingBill:TPollingBill;
FCanPollingLoop:Boolean; // Признак цикла опроса
FNamberComPort:Byte;
FComConnected:Boolean;
FCommand:Array[0..255] of Byte; //Команда
FLengthCommand:Byte;
FAnswer:Array[0..255] of Byte; //Ответ
FLengthAnswer:Byte;
FData:Array[0..255] of Byte; //Данные ответа
FLengthData:Byte;
procedure ProcessMessage(CodeMess:integer;Mess:string);
procedure PolingBill(Nominal:word;var CanLoop:boolean);
//Выполнение сформированной команды
procedure ProcessComand();
// Формирование команды
procedure SendPacket(Command:Byte;Data:Array of Byte);
//Разбор команды
procedure ParseAnswer();
// Очистка команды
procedure ClearCommand();
// Очистка ответа
procedure ClearAnswer();
// Очистка данных
procedure ClearData();
public
//Инициализация com порта
function OpenComPort:Boolean;
// Закрываем ком порт
procedure CloseComPort();
// Основные команды валидатора
function Reset():Boolean; // Сброс купюро-приемника
function Identification(var Name,Namber:string):Boolean; //Номер и название купюроприемника
function GetStatus(var Nominal,Security:TNominal):Boolean; //Получение списка принимаемых купюр
function EnableBillTypes(Nominal:TNominal):Boolean; //Установка прнимаемых купюр
function SetSecurity(Nominal:TNominal):Boolean; //Установка повышенного контроля для определенных купюр
function Stack():Boolean; //Принимаем купюру ESCROW режим
function Return():Boolean; //Возврат купюры ESCROW режим
function SendASC():Boolean; //Подтверждаем получение
function SendNSC():Boolean; //Не подтверждааем получение
function Poll():boolean; //Опрос устройства
function PollingLoop(Sum:word;TimeLoop:LongWord):Word;
// Свойство для установки номера ком порта
property NamberComPort:Byte read FNamberComPort write FNamberComPort;
// Событие при любых сообщениях
property OnProcessMessage:TProcessMessage read FProcessMesage write FProcessMesage;
// Признак установки соединения с ком портом
property ComConnected:Boolean read FComConnected;
// Событие возникающее при приеме купюры, через переменную CanLoop можем прервать работу
property OnPolingBill:TPollingBill read FPolingBill write FPolingBill;
// Свойство проверяющее/устанавливающее цикл опроса
property CanPollingLoop:Boolean read FCanPollingLoop write FCanPollingLoop;
end;