⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 adprotcl.pas

📁 Async Professional 4.04
💻 PAS
📖 第 1 页 / 共 5 页
字号:
    procedure SetHonorDirectory(const NewOpt : Boolean);
    function GetIncludeDirectory : Boolean;
    procedure SetIncludeDirectory(const NewOpt : Boolean);
    function GetRTSLowForWrite : Boolean;
    procedure SetRTSLowForWrite(const NewOpt : Boolean);
    function GetAbortNoCarrier : Boolean;
    procedure SetAbortNoCarrier(const NewOpt : Boolean);
    function GetBP2KTransmit : Boolean;
    procedure SetBP2KTransmit(const NewOpt : Boolean);
    function GetAsciiSuppressCtrlZ : Boolean;
    procedure SetAsciiSuppressCtrlZ(const NewOpt : Boolean);
    function GetUpcaseFileNames : Boolean;
    procedure SetUpcaseFileNames(NewUpcase : Boolean);

    {Port close callback}                                              
    {procedure apwPortCallback (CP      : TObject;
                               Opening : Boolean);}
    procedure apwPortCallbackEx(CP : TObject; CallbackType : TApdCallbackType);
                               
    {Protocol event methods}
    procedure apwProtocolAccept(CP : TObject; var Accept : Boolean;
                                var FName : TPassString); virtual;
    procedure apwProtocolError(CP : TObject; ErrorCode : Integer); virtual;
    procedure apwProtocolFinish(CP : TObject; ErrorCode : Integer); virtual;
    procedure apwProtocolLog(CP : TObject; Log : Cardinal); virtual;
    procedure apwProtocolNextFile(CP : TObject; var FName : TPassString); virtual;
    procedure apwProtocolResume(CP : TObject;
                                var Resume : TWriteFailAction); virtual;
    procedure apwProtocolStatus(CP : TObject; Options : Cardinal); virtual;

  public
    PData             : PProtocolData;   {Protocol data}

    constructor Create(AOwner : TComponent); override;
      {-Create a TApdProtocol component}
    destructor Destroy; override;
      {-Destroy a TApdProtocol component}
    procedure Assign(Source : TPersistent); override;
      {-Assign fields from TApdProtocol object specified by Source}
    {.Z-}
    function EstimateTransferSecs(const Size : Longint) : Longint;
      {-Return the number of seconds to transmit Size bytes}
    function StatusMsg(const Status : Cardinal) : String;
      {-Return a status message for Status}
    procedure StartTransmit;
      {-Start a background transmit session}
    procedure StartReceive;
      {-Start a background receive session}
    procedure CancelProtocol;
      {-Cancel the background protocol session}


    {General properties}
    property ComPort : TApdCustomComPort
      read FComPort write SetComPort;

    {General protocol control properties}
    property ProtocolType : TProtocolType
      read FProtocolType write SetProtocolType;
    property DestinationDirectory : String
      read GetDestinationDirectory write SetDestinationDirectory;
    property FileMask : TFileName
      read GetFileMask write SetFileMask;
    property BlockCheckMethod : TBlockCheckMethod
      read GetBlockCheckMethod write SetBlockCheckMethod;
    property HandshakeRetry : Cardinal
      read GetHandshakeRetry write SetHandshakeRetry default awpDefHandshakeRetry;
    property HandshakeWait : Cardinal
      read GetHandshakeWait write SetHandshakeWait default awpDefHandshakeWait;
    property TransmitTimeout : Cardinal
      read GetTransmitTimeout write SetTransmitTimeout default awpDefTransTimeout;
    property FinishWait : Cardinal
      read GetFinishWait write SetFinishWait default awpDefFinishWait;
    property ActualBPS : Longint
      read GetActualBPS write SetActualBPS;
    property TurnDelay : Cardinal
      read GetTurnDelay write SetTurnDelay default awpDefTurnDelay;
    property Overhead : Cardinal
      read GetOverhead write SetOverhead default awpDefOverhead;
    property WriteFailAction : TWriteFailAction
      read GetWriteFailAction write SetWriteFailAction
      default awpDefWriteFailAction;

    {Option properties}
    property HonorDirectory : Boolean
      read GetHonorDirectory write SetHonorDirectory
      default awpDefHonorDirectory;
    property IncludeDirectory : Boolean
      read GetIncludeDirectory write SetIncludeDirectory
      default awpDefIncludeDirectory;
    property RTSLowForWrite : Boolean
      read GetRTSLowForWrite write SetRTSLowForWrite
      default awpDefRTSLowForWrite;
    property AbortNoCarrier : Boolean
      read GetAbortNoCarrier write SetAbortNoCarrier
      default awpDefAbortNoCarrier;
    property BP2KTransmit : Boolean
      read GetBP2KTransmit write SetBP2KTransmit
      default awpDefBP2KTransmit;
    property AsciiSuppressCtrlZ : Boolean
      read GetAsciiSuppressCtrlZ write SetAsciiSuppressCtrlZ
      default awpDefAsciiSuppressCtrlZ;
    property UpcaseFileNames : Boolean
      read GetUpcaseFileNames write SetUpcaseFileNames
      default awpDefUpcaseFileNames;

    {Read only properties}
    property Batch : Boolean
      read GetBatch;
    property BlockLength : Cardinal
      read GetBlockLength;
    property BlockNumber : Cardinal
      read GetBlockNumber;
    property ProtocolStatus : Cardinal
      read GetProtocolStatus;
    property ProtocolError : SmallInt
      read GetProtocolError;
    property FileLength : LongInt
      read GetFileLength;
    property FileDate : TDateTime
      read GetFileDate;
    property InitialPosition : LongInt
      read GetInitialPosition;

    {Status properties}
    property StatusDisplay : TApdAbstractStatus
      read FStatusDisplay write SetStatusDisplay;
    property ProtocolLog : TApdProtocolLog
      read FProtocolLog write SetProtocolLog;
    property StatusInterval : Cardinal
      read GetStatusInterval write SetStatusInterval default awpDefStatusInterval;
    property InProgress : Boolean
      read GetInProgress;
    property BlockErrors : Cardinal
      read GetBlockErrors;
    property TotalErrors : Cardinal
      read GetTotalErrors;
    property BytesRemaining : LongInt
      read GetBytesRemaining;
    property BytesTransferred : LongInt
      read GetBytesTransferred;
    property ElapsedTicks : LongInt
      read GetElapsedTicks;
    property FileName : String
      read GetFileName write SetFileName;

    {Xmodem/Ymodem properties}
    property XYmodemBlockWait : Cardinal
      read GetXYmodemBlockWait write SetXYmodemBlockWait
      default awpDefXYmodemBlockWait;

    {Zmodem properties}
    property ZmodemOptionOverride : Boolean
      read GetZmodemOptionOverride write SetZmodemOptionOverride
      default awpDefZmodemOptionOverride;
    property ZmodemSkipNoFile : Boolean
      read GetZmodemSkipNoFile write SetZmodemSkipNoFile
      default awpDefZmodemSkipNoFile;
    property ZmodemFileOption : TZmodemFileOptions
      read GetZmodemFileOption write SetZmodemFileOption
      default awpDefZmodemFileOption;
    property ZmodemRecover : Boolean
      read GetZmodemRecover write SetZmodemRecover default awpDefZmodemRecover;
    property Zmodem8K : Boolean
      read GetZmodem8K write SetZmodem8K default awpDefZmodem8K;
    property ZmodemZRQINITValue : LongInt                            
      read GetZmodemZRQINITValue write SetZmodemZRQINITValue
      default awpDefZmodemZRQINITValue;
    property ZmodemFinishRetry : Cardinal
      read GetZmodemFinishRetry write SetZmodemFinishRetry
      default awpDefZmodemFinishRetry;

    {Kermit properties}
    property KermitMaxLen : Cardinal
      read GetKermitMaxLen write setKermitMaxLen
      default awpDefKermitMaxLen;
    property KermitMaxWindows : Cardinal
      read GetKermitMaxWindows write SetKermitMaxWindows
      default awpDefKermitMaxWindows;
    property KermitSWCTurnDelay : Cardinal
      read GetKermitSWCTurnDelay write SetKermitSWCTurnDelay
      default awpDefKermitSWCTurnDelay;
    property KermitTimeoutSecs : Cardinal
      read GetKermitTimeoutSecs write SetKermitTimeoutSecs
      default awpDefKermitTimeoutSecs;
    property KermitPadCharacter : Char
      read GetKermitPadCharacter write SetKermitPadCharacter
      default awpDefKermitPadCharacter;
    property KermitPadCount : Cardinal
      read GetKermitPadCount write SetKermitPadCount
      default awpDefKermitPadCount;
    property KermitTerminator : Char
      read GetKermitTerminator write SetKermitTerminator
      default awpDefKermitTerminator;
    property KermitCtlPrefix : Char
      read GetKermitCtlPrefix write SetKermitCtlPrefix
      default awpDefKermitCtlPrefix;
    property KermitHighbitPrefix : Char
      read GetKermitHighbitPrefix write SetKermitHighbitPrefix
      default awpDefKermitHighbitPrefix;
    property KermitRepeatPrefix : Char
      read GetKermitRepeatPrefix write SetKermitRepeatPrefix
      default awpDefKermitRepeatPrefix;
    property KermitWindowsTotal : Cardinal
      read GetKermitWindowsTotal;
    property KermitWindowsUsed : Cardinal
      read GetKermitWindowsUsed;
    property KermitLongBlocks : Boolean
      read GetKermitLongBlocks;
    property AsciiCharDelay : Cardinal
      read GetAsciiCharDelay write SetAsciiCharDelay
      default awpDefAsciiCharDelay;
    property AsciiLineDelay : Cardinal
      read GetAsciiLineDelay write SetAsciiLineDelay
      default awpDefAsciiLineDelay;
    property AsciiEOLChar : Char
      read GetAsciiEOLChar write SetAsciiEOLChar
      default awpDefAsciiEOLChar;
    property AsciiCRTranslation : TAsciiEOLTranslation
      read GetAsciiCRTranslation write SetAsciiCRTranslation
      default awpDefAsciiCRTranslation;
    property AsciiLFTranslation : TAsciiEOLTranslation
      read GetAsciiLFTranslation write SetAsciiLFTranslation
      default awpDefAsciiLFTranslation;
    property AsciiEOFTimeout : Cardinal
      read GetAsciiEOFTimeout write SetAsciiEOFTimeout
      default awpDefAsciiEOFTimeout;

    {Protocol events}
    property OnProtocolAccept : TProtocolAcceptEvent
      read FOnProtocolAccept write FOnProtocolAccept;
    property OnProtocolError : TProtocolErrorEvent
      read FOnProtocolError write FOnProtocolError;
    property OnProtocolFinish : TProtocolFinishEvent
      read FOnProtocolFinish write FOnProtocolFinish;
    property OnProtocolLog : TProtocolLogEvent
      read FOnProtocolLog write FOnProtocolLog;
    property OnProtocolNextFile : TProtocolNextFileEvent
      read FOnProtocolNextFile write FOnProtocolNextFile;
    property OnProtocolResume : TProtocolResumeEvent
      read FOnProtocolResume write FOnProtocolResume;
    property OnProtocolStatus : TProtocolStatusEvent
      read FOnProtocolStatus write FOnProtocolStatus;
  end;

  {Abstract protocol status class}
  TApdAbstractStatus = class(TApdBaseComponent)
  protected {private}
    {.Z+}
    FDisplay         : TForm;
    FPosition        : TPosition;
    FCtl3D           : Boolean;
    FVisible         : Boolean;
    FCaption         : TCaption;                                      

    procedure Notification(AComponent : TComponent;
                           Operation: TOperation); override;

  protected
    FProtocol        : TApdCustomProtocol;

    procedure SetPosition(const NewPosition : TPosition);
    procedure SetCtl3D(const NewCtl3D : Boolean);
    procedure SetVisible(const NewVisible : Boolean);
    procedure SetCaption(const NewCaption : TCaption);               
    procedure GetProperties;
    procedure Show;

  public
    constructor Create(AOwner : TComponent); override;
      {-Create a TApdAbstractStatus component}
    destructor Destroy; override;
      {-Destroy a TApdAbstractStatus component}
    {.Z-}
    procedure UpdateDisplay(First, Last : Boolean); virtual; abstract;
      {-Update the status display with current data}
    procedure CreateDisplay; dynamic; abstract;
      {-Create the status display}
    procedure DestroyDisplay; dynamic; abstract;
      {-Destroy the status display}

    property Display : TForm
      read FDisplay write FDisplay;

  published
    property Position : TPosition
      read FPosition write SetPosition;
    property Ctl3D : Boolean
      read FCtl3D write SetCtl3D;
    property Visible : Boolean
      read FVisible write SetVisible;
    property Protocol : TApdCustomProtocol
      read FProtocol write FProtocol;
    property Caption : TCaption
      read FCaption write SetCaption;                                 
  end;

  {Builtin log procedure}
  TApdProtocolLog = class(TApdBaseComponent)
  protected {private}
    {.Z+}
    FDeleteFailed  : TDeleteFailed;
    FHistoryName   : String;
    FProtocol      : TApdCustomProtocol;

    procedure Notification(AComponent : TComponent;
                           Operation: TOperation); override;

  public
    constructor Create(AOwner : TComponent); override;
      {-Create a TApdProtocolLog component}
    {.Z-}
    procedure UpdateLog(const Log : Cardinal); virtual;
      {-Add a log entry}

  published
    property Protocol : TApdCustomProtocol
      read FProtocol write FProtocol;
    property DeleteFailed : TDeleteFailed
      read FDeleteFailed write FDeleteFailed default awpDefDeleteFailed;
    property HistoryName : String
      read FHistoryName write FHistoryName;
  end;

  {Protocol component}
  TApdProtocol = class(TApdCustomProtocol)
  published
    property ComPort;
    property ProtocolType;
    property DestinationDirectory;
    property FileMask;
    property BlockCheckMethod;
    property HandshakeRetry;
    property HandshakeWait;
    property TransmitTimeout;
    property FinishWait;
    property TurnDelay;
    property Overhead;
    property WriteFailAction;
    property HonorDirectory;
    property IncludeDirectory;
    property RTSLowForWrite;
    property AbortNoCarrier;
    property BP2KTransmit;
    property AsciiSuppressCtrlZ;
    property StatusDisplay;
    property ProtocolLog;
    property StatusInterval;
    property FileName;
    property XYmodemBlockWait;
    property ZmodemOptionOverride;
    property ZmodemSkipNoFile;
    property ZmodemFileOption;
    property ZmodemRecover;
    property Zmodem8K;
    property ZmodemFinishRetry;
    property KermitMaxLen;
    property KermitMaxWindows;
    property KermitSWCTurnDelay;
    property KermitTimeoutSecs;
    property KermitPadCharacter;
    property KermitPadCount;
    property KermitTerminator;
    property KermitCtlPrefix;
    property KermitHighbitPrefix;
    property KermitRepeatPrefix;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -