📄 herclib.pas
字号:
unit HercLib;
interface
uses
Windows;
const
PACKETLEN = 1600;
MINPACKETSIZE = 60;
RETEATETIME = 100;
DEVICEMAX = 40;
FILELENGTH = 65536;
READLEN = 37;
type
TReturnCode = (
AFA_OK,
AFA_FAIL,
AFA_TONEMAP_FAIL,
AFA_WRONG_DEVICE_ID,
AFA_OPEN_FILE_FAIL,
AFA_CREATE_FILE_FAIL,
AFA_WRITE_FILE_FAIL,
AFA_WRITE_FILE_NOT_EQUAL,
AFA_READ_FILE_FAIL,
AFA_READ_FILE_NOT_EQUAL,
AFA_NO_RIGHT_NVRAM,
AFA_NO_NVRAM,
AFA_ERASE_FAIL,
AFA_WRITE_FAIL,
AFA_DETECT_FAIL,
AFA_READ_FAIL,
AFA_INVALID_FLASH,
AFA_SCAN_NETWORK_FAIL,
AFA_SYS_TIME_FAIL,
AFA_READ_MEMORY_FAIL,
AFA_WRITE_MEMORY_FAIL,
AFA_EXPIRE_TIME_FAIL,
AFA_INDEX_OUT_OF_RANGE,
AFA_USER_ABORT,
AFA_BUFFER_NOT_ENOUGH,
AFA_TONEMAP_TABLE_FAIL,
AFA_FIND_NICARD_FAIL,
AFA_OPEN_NICARD_FAIL,
AFA_PASSWORD_IS_NULL,
AFA_WRONG_NICARD_ID,
AFA_GET_STATISTICS_FAIL,
AFA_LOAD_FAIL,
AFA_Update_Tonemap_Table_Fail,
AFA_GET_LOCAL_NICARD_MAC_FAIL,
AFA_SET_DEV_NAME_FAIL,
AFA_GET_DEV_NAME_FAIL,
AFA_SET_LOCAL_FAIL,
AFA_SET_REMOTE_FAIL,
AFA_BUFFER_IS_NULL,
AFA_PARAMETER_VALUE_OUT_OF_RANGE,
AFA_READ_TE_SE_VALUE_FAIL
);
TNVRamType = (
NVRAM_NOT_DETECT,
NVRAM_NO_BOTH,
NVRAM_PMC_FLASH,
NVRAM_AT93C46_EEPROM,
NVRAM_AT93C55_56_EEPROM,
NVRAM_SST_FLASH
);
TModulationType = (
MODULATION_ROBO,
MODULATION_DBPSK,
MODULATION_DQPSK,
MODULATION_16QAM = 4,
MODULATION_64QAM
);
TFECRateType = (
FEC_RATE_0_5,
FEC_RATE_0_75
);
TDeviceState = (
DEVIC_NONE,
DEVIC_RUN_BOOT_CODE,
DEVIC_RUN_FIRMWARE
);
TContainerType = (
DEVICE_ARRAY = 1,
NIC_ARRAY = 2,
DEVICE_ARRAY_REMOTE = 4,
DEVICE_ARRAY_UPDATE = 8
);
PDeviceRec = ^TDeviceRec;
TDeviceRec = packed record
MACAddress: array[0..5] of Byte;
DevType: LongWord;
DevGroup: LongWord;
IsActive: Bool;
end;
PDeviceConfigRec = ^TDeviceConfigRec;
TDeviceConfigRec = packed record
ValidityCode: array[0..1] of Byte;
MACAddress: array[0..5] of Byte;
DefaultEncryptionKey: array[0..7] of Byte;
EncryptionKeySelect: Byte;
NetworkEncryptionKey: array[0..7] of Byte;
LCO: Byte;
ENCF: Byte;
TXPRIO: Byte;
RESPEXP: Byte;
TX_CONT: Byte;
CF_PRIO: Byte;
RSVD1: Byte;
RETRY_CTRL: Byte;
RSVD2: Byte;
NO_DFLT: Byte;
NO_UNENC: Byte;
BACKPRESSURE: Byte;
NO_EE_SAVE: Byte;
TXEKS: Byte;
MAXC0TXTMR: Word;
MAXC1TXTMR: Word;
MAXC2TXTMR: Word;
MAXC3TXTMR: Word;
MAXC3RXTMR: Word;
MAXC2RXTMR: Word;
MAXC1_0RXTMR: Word;
ESTAGETMR: Byte;
ETHERNETDOWN: Byte;
BRIDGELISTTMR: Byte;
NOTCHON: Byte;
TRANSMITPOWERLEVEL: Byte;
FAILTMR: Word;
VLAN_PRIO7: Byte;
VLAN_PRIO6: Byte;
VLAN_PRIO5: Byte;
VLAN_PRIO4: Byte;
VLAN_PRIO3: Byte;
VLAN_PRIO2: Byte;
VLAN_PRIO1: Byte;
VLAN_PRIO0: Byte;
RST_CNT: Word;
VenderID: array[0..1] of Byte;
ProductID: array[0..1] of Byte;
MaxModulation: Byte;
EhostResetTime: Word;
Length: Byte;
String2: array[0..31] of Byte;
end;
PFlashInfoRec = ^TFlashInfoRec;
TFlashInfoRec = packed record
IsValid: LongInt;
Version: array[0..3] of Byte;
VersionIntern: array[0..31] of Char;
end;
PToneMapEntryInfoRec = ^TToneMapEntryInfoRec;
TToneMapEntryInfoRec = packed record
Mode: LongWord;
FECRate: LongWord;
TimeStamp: LongWord;
Index: LongWord;
end;
PStatisticsRec = ^TStatisticsRec;
TStatisticsRec = packed record
TransmitACK: Word;
TransmitNACK: Word;
TransmitFail: Word;
TransmitContentionLoss: Word;
TransmitCollision: Word;
TransmitCA3Latency: Word;
TransmitCA2Latency: Word;
TransmitCA1Latency: Word;
TransmitCA0Latency: Word;
ReceiveCumulativeBytesPer40SymbolPacket: LongWord;
end;
PThresholdRec = ^TThresholdRec;
TThresholdRec = packed record
ModeRobo: LongWord;
ModeBpsk: LongWord;
ModeQpsk1: LongWord;
ModeQpsk2: LongWord;
Mode16Qam1: LongWord;
Mode16Qam2: LongWord;
Mode64Qam: LongWord;
end;
PDefaultEncryptionKey = ^TDefaultEncryptionKey;
TDefaultEncryptionKey = array[0..7] of Byte;
TScanProgressCallback = procedure (Percentage: LongWord; Abort: PLongWord); stdcall;
TFlashProgressCallback = procedure (Percentage: LongWord; Abort: PLongWord); stdcall;
var
ScanDevice: function(EnumOpt: LongWord; ScanOpt: LongWord; Devices: Pointer; Count: PLongWord): LongWord; stdcall;
ScanDeviceEx: function(EnumOpt: LongWord; ScanOpt: LongWord; DeviceListStr: PChar; Count: PLongWord): LongWord; stdcall;
SetScanProgressCallback: function(CallbackFunc: Pointer): LongWord; stdcall;
WriteFlash: function(DevID: LongWord; FileName: PChar): LongWord; stdcall;
SetFlashProgressCallback: function(CallbackFunc: Pointer): LongWord; stdcall;
ReadFlash: function(DevID: LongWord; FileName: PChar): LongWord; stdcall;
VerifyFlash: function(DevID: LongWord; FileName: PChar): LongWord; stdcall;
GetConfig: function(DevID: LongWord; DeviceConfig: PDeviceConfigRec): LongWord; stdcall;
SetConfig: function(DevID: LongWord; DeviceConfig: PDeviceConfigRec): LongWord; stdcall;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -