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

📄 hidtoken.pas

📁 Componente para Tratar USB
💻 PAS
字号:

unit HidToken;

{$WEAKPACKAGEUNIT}

interface

(*$HPPEMIT ''*)
(*$HPPEMIT '#include "hidtoken.h"'*)
(*$HPPEMIT ''*)

const
  HIDP_ITEM_LONG        = $FE;
  {$EXTERNALSYM HIDP_ITEM_LONG}
  HIDP_ITEM_LENGTH_DATA = $03;
  {$EXTERNALSYM HIDP_ITEM_LENGTH_DATA}

  // Main Items
  // Only main items with one byte data (bSize = 1) are supported.
  HIDP_MAIN_INPUT_1         = $81;
  {$EXTERNALSYM HIDP_MAIN_INPUT_1}
  HIDP_MAIN_INPUT_2         = $82;
  {$EXTERNALSYM HIDP_MAIN_INPUT_2}
  HIDP_MAIN_OUTPUT_1        = $91;
  {$EXTERNALSYM HIDP_MAIN_OUTPUT_1}
  HIDP_MAIN_OUTPUT_2        = $92;
  {$EXTERNALSYM HIDP_MAIN_OUTPUT_2}
  HIDP_MAIN_FEATURE_1       = $B1;
  {$EXTERNALSYM HIDP_MAIN_FEATURE_1}
  HIDP_MAIN_FEATURE_2       = $B2;
  {$EXTERNALSYM HIDP_MAIN_FEATURE_2}
  HIDP_MAIN_COLLECTION      = $A1;
  {$EXTERNALSYM HIDP_MAIN_COLLECTION}
  HIDP_MAIN_ENDCOLLECTION   = $C0;
  {$EXTERNALSYM HIDP_MAIN_ENDCOLLECTION}
  HIDP_MAIN_COLLECTION_LINK = $00;
  {$EXTERNALSYM HIDP_MAIN_COLLECTION_LINK}
  HIDP_MAIN_COLLECTION_APP  = $01;
  {$EXTERNALSYM HIDP_MAIN_COLLECTION_APP}

  // Global Items
  HIDP_GLOBAL_USAGE_PAGE_1   = $05;  // UsagePage of 1 byte
  {$EXTERNALSYM HIDP_GLOBAL_USAGE_PAGE_1}
  HIDP_GLOBAL_USAGE_PAGE_2   = $06;  // UsagePage of 2 bytes
  {$EXTERNALSYM HIDP_GLOBAL_USAGE_PAGE_2}
  HIDP_GLOBAL_USAGE_PAGE_4   = $07;  // UsagePage of 4 bytes
  {$EXTERNALSYM HIDP_GLOBAL_USAGE_PAGE_4}
  HIDP_GLOBAL_LOG_MIN_1      = $15;  // minimum value of size 1 byte.
  {$EXTERNALSYM HIDP_GLOBAL_LOG_MIN_1}
  HIDP_GLOBAL_LOG_MIN_2      = $16;  // minimum value of size 2 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_LOG_MIN_2}
  HIDP_GLOBAL_LOG_MIN_4      = $17;  // minimum value of size 4 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_LOG_MIN_4}
  HIDP_GLOBAL_LOG_MAX_1      = $25;  // maximum of size 1 byte.
  {$EXTERNALSYM HIDP_GLOBAL_LOG_MAX_1}
  HIDP_GLOBAL_LOG_MAX_2      = $26;  // maximum of size 2 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_LOG_MAX_2}
  HIDP_GLOBAL_LOG_MAX_4      = $27;  // maximum of size 4 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_LOG_MAX_4}

  HIDP_GLOBAL_PHY_MIN_1      = $35;  // minimum value of size 1 byte.
  {$EXTERNALSYM HIDP_GLOBAL_PHY_MIN_1}
  HIDP_GLOBAL_PHY_MIN_2      = $36;  // minimum value of size 2 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_PHY_MIN_2}
  HIDP_GLOBAL_PHY_MIN_4      = $37;  // minimum value of size 4 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_PHY_MIN_4}
  HIDP_GLOBAL_PHY_MAX_1      = $45;  // maximum of size 1 byte.
  {$EXTERNALSYM HIDP_GLOBAL_PHY_MAX_1}
  HIDP_GLOBAL_PHY_MAX_2      = $46;  // maximum of size 2 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_PHY_MAX_2}
  HIDP_GLOBAL_PHY_MAX_4      = $47;  // maximum of size 4 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_PHY_MAX_4}

  HIDP_GLOBAL_UNIT_EXP_1     = $55;  // Exponent of size 1 byte.
  {$EXTERNALSYM HIDP_GLOBAL_UNIT_EXP_1}
  HIDP_GLOBAL_UNIT_EXP_2     = $56;  // Exponent of size 2 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_UNIT_EXP_2}
  HIDP_GLOBAL_UNIT_EXP_4     = $57;  // Exponent of size 4 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_UNIT_EXP_4}
  HIDP_GLOBAL_UNIT_1         = $65;  // UNIT of size 1 byte.
  {$EXTERNALSYM HIDP_GLOBAL_UNIT_1}
  HIDP_GLOBAL_UNIT_2         = $66;  // UNIT of size 2 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_UNIT_2}
  HIDP_GLOBAL_UNIT_4         = $67;  // UNIT of size 4 bytes.
  {$EXTERNALSYM HIDP_GLOBAL_UNIT_4}

  HIDP_GLOBAL_REPORT_SIZE    = $75;  // Report size in bits
  {$EXTERNALSYM HIDP_GLOBAL_REPORT_SIZE}
  HIDP_GLOBAL_REPORT_ID      = $85;  // ID only size 1 byte supported
  {$EXTERNALSYM HIDP_GLOBAL_REPORT_ID}
  HIDP_GLOBAL_REPORT_COUNT_1 = $95;  // Number of data fields 1 byte
  {$EXTERNALSYM HIDP_GLOBAL_REPORT_COUNT_1}
  HIDP_GLOBAL_REPORT_COUNT_2 = $96;  // Number of data fields 2 bytes
  {$EXTERNALSYM HIDP_GLOBAL_REPORT_COUNT_2}
  HIDP_GLOBAL_PUSH           = $A4;  // The dreaded PUSH command
  {$EXTERNALSYM HIDP_GLOBAL_PUSH}
  HIDP_GLOBAL_POP            = $B4;  // And the dreaded POP command
  {$EXTERNALSYM HIDP_GLOBAL_POP}

  // Local Items
  HIDP_LOCAL_USAGE_1         = $09;
  {$EXTERNALSYM HIDP_LOCAL_USAGE_1}
  HIDP_LOCAL_USAGE_2         = $0A;
  {$EXTERNALSYM HIDP_LOCAL_USAGE_2}
  HIDP_LOCAL_USAGE_4         = $0B;
  {$EXTERNALSYM HIDP_LOCAL_USAGE_4}
  HIDP_LOCAL_USAGE_MIN_1     = $19;
  {$EXTERNALSYM HIDP_LOCAL_USAGE_MIN_1}
  HIDP_LOCAL_USAGE_MIN_2     = $1A;
  {$EXTERNALSYM HIDP_LOCAL_USAGE_MIN_2}
  HIDP_LOCAL_USAGE_MIN_4     = $1B;
  {$EXTERNALSYM HIDP_LOCAL_USAGE_MIN_4}
  HIDP_LOCAL_USAGE_MAX_1     = $29;
  {$EXTERNALSYM HIDP_LOCAL_USAGE_MAX_1}
  HIDP_LOCAL_USAGE_MAX_2     = $2A;
  {$EXTERNALSYM HIDP_LOCAL_USAGE_MAX_2}
  HIDP_LOCAL_USAGE_MAX_4     = $2B;
  {$EXTERNALSYM HIDP_LOCAL_USAGE_MAX_4}
  HIDP_LOCAL_DESIG_INDEX     = $39;  // Designators of byte size supported
  {$EXTERNALSYM HIDP_LOCAL_DESIG_INDEX}
  HIDP_LOCAL_DESIG_MIN       = $49;
  {$EXTERNALSYM HIDP_LOCAL_DESIG_MIN}
  HIDP_LOCAL_DESIG_MAX       = $59;
  {$EXTERNALSYM HIDP_LOCAL_DESIG_MAX}
  HIDP_LOCAL_STRING_INDEX    = $79;  // String indices of size byte supported
  {$EXTERNALSYM HIDP_LOCAL_STRING_INDEX}
  HIDP_LOCAL_STRING_MIN      = $89;
  {$EXTERNALSYM HIDP_LOCAL_STRING_MIN}
  HIDP_LOCAL_STRING_MAX      = $99;
  {$EXTERNALSYM HIDP_LOCAL_STRING_MAX}
  HIDP_LOCAL_DELIMITER       = $A9;
  {$EXTERNALSYM HIDP_LOCAL_DELIMITER}

function HidPIsMain        (x: Integer): Boolean;
function HidPIsMainItem    (x: Integer): Boolean;
function HidPIsGlobalItem  (x: Integer): Boolean;
function HidPIsLocalItem   (x: Integer): Boolean;
function HidPIsReservedItem(x: Integer): Boolean;

implementation

function HidPIsMain(x: Integer): Boolean;
begin
  Result := ((x and $0C) = 0);
end;

function HidPIsMainItem(x: Integer): Boolean;
begin
  Result := ((x and $0C) = 0);
end;

function HidPIsGlobalItem(x: Integer): Boolean;
begin
  Result := ((x and $0C) = $04);
end;

function HidPIsLocalItem(x: Integer): Boolean;
begin
  Result := ((x and $0C) = $08);
end;

function HidPIsReservedItem(x: Integer): Boolean;
begin
  Result := ((x and $0C) = $0C);
end;

end.

⌨️ 快捷键说明

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