📄 hidtoken.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 + -